Brauche hilfe bei PHP-Code

05/12/2011 21:01 StyLeZZz09#1
Hey Leute
ich habe ein Problem mit einem PHP-Code
PHP Code:
<table width="745" border="0" cellpadding="0" cellspacing="0">

<tr>
    <td>
    
        <table align="center">
        <tr>
            <td align="center">
                <?php
                $site
=$_GET['site'];
                if (
$site !="")
                {
                include(
$site.".php");
                }
                else
                {
                
$site ="info";
                include(
$site.".php");
                }
                
?>
            </td>
        </tr>
        </table>
        
    </td>
</tr>
</table>
Notice: Undefined index: site in C:\xampp\htdocs\styles\default\content.php on line 11



Mir wird immer wieder angezeigt das dort zwischen Zeile 10-18 was falsch ist
aber ich finde da keine Fehler .. :confused:
Wäre echt nett wen ihr mir sagen könntet wo der Fehler steckt bzw die Verbesserung posten würded :)
Ihr bekommt auch THX :D
05/12/2011 21:21 False#2
normal sollte es nicht stören da es nur eine Notiz ist geht es den was es machen soll:D?
05/12/2011 21:48 hen!#3
Wenn $_GET['site'] undefiniert ist, dann ist $site auch undefiniert.

Du musst überprüfen ob GET überhaupt gesetzt wurde.
PHP Code:
if(isset($_GET['site']) && $_GET['site'] !=""
{
$site=$_GET['site']; 
05/13/2011 18:52 JacK le chilla#4
wo wird das site beschrieben postest du des aus ner form ? dann <form action="dahinsollgepostetwerden.php" method="post">

thx wenn ich geholfen habe bitte :)
05/15/2011 09:24 LostHope.#5
Quote:
Originally Posted by StyLeZZz09 View Post
PHP Code:
<table width="745" border="0" cellpadding="0" cellspacing="0">

<tr>
    <td>
    
        <table align="center">
        <tr>
            <td align="center">
                <?php
                $site
=$_GET['site'];
                if (
$site !="")
                {
                include(
$site.".php");
                }
                else
                {
                
$site ="info";
                include(
$site.".php");
                }
                
?>
            </td>
        </tr>
        </table>
        
    </td>
</tr>
</table>
Was soll das if ($site !="") sein?
Ich würde dabei strlen verwenden also so: if(strlen($site)<1).
05/18/2011 15:37 Poortom#6
moin moin, jaja die Datentypen :>

Fehlermeldung genau lesen! "Undefined index: site"

$_GET['site'] ist NULL wenn nicht gesetzt und kein Leerstring ("").

also entweder
if($_GET['site'] != null)

oder
if(isset($_GET['site']))
wie hen! bereits schrieb.

In php musst Du keinen Datentyp vorgeben für deine Variablen, undefiniert ist erstmal alles NULL. Du kannst also nicht von einem Leerstring ausgehen auch wenn normalerweise ein string darin stehen soll...

php is nicht sehr wählerisch...
$bla = "fasel";
$bla = 1;
$bla = true;
$bla = null;
"Passt" alles in die gleiche Variable.

@JacK le chilla
Mit method=POST kann eine $_GET-Variable nicht gefüllt werden.

hoffe ich konnte trotz meiner Vorposter noch was helfen :)
Grüße!
05/18/2011 22:18 Syc0n#7
sehr unsicheres Skript... durch einfache Veränderung der $site variable im header kann man damit jedes php Skript includen!

Bei Includes würd ich sowieso lieber auf Whitelists setzen.

kleiner Tipp noch:
Else-Befehle weitesgehend vermeiden!