brockerdocker: Variablen mit post übergeben und auslesen

Hallo,
ich habe mit PHP ein Adressbuch geschrieben. Die Scripte testete ich lokal mit xampp (mit PHP Version 5.0.5).
Jetzt habe ich das ganze hochgeladen und siehe da: Auf dem Server funktioniert es nicht:(

Hier das Problem:
Ich will mit einem Link noch eine Variable weitergeben, dies hab ich so gemacht:

  
<a href='2.php?t=2'>...</a>  

PHP-Teil in 2.php:

  
<?php  
if (!empty($t)) {  
echo "Tu dies";  
}  
else {  
echo "Tu das";  
}  
?>  

Unter xampp wurde, wenn über den Link mit t=2 die Datei 2.php aufgerufen wurde immer "Tu dies" geschrieben, da ja die Variable definiert war.
Auf dem Server ist das jetzt nicht mehr der Fall. Es wird immer "Tu das" geschrieben, dabei müsste die Variable doch da sein.

Ich wäre euch also dankbar, wenn ihr mir sagen könntet was da los ist,
vielen Dank schonmal brockerdocker

  1. Hallo brockerdocker,

    auf dem Server ist register_globals=off. Das heißt, dass übergebene Parameter _nicht_ automatisch als Variable angelegt werden. Du müsstest also vorher schreiben:

    $t = $_GET['t']

    Beste Grüße
    Richard

    1. Vielen Dank erstmal,
      das funktioniert jetzt. Ich habe nun aber ein neues Problem:

      Ich möchte eine Datenbankabfrage machen. Dabei wird eine Zeile ausgelesen. Das sieht so aus:

        
      @mysql_connect("localhost", "root", "") or die("Verbindung zum MySQL - Server fehlgeschlagen");  
      @mysql_select_db("team") or die("Verbindung zur Datenbank fehlgeschlagen");  
      $sql = "SELECT * FROM adressen WHERE id = $_GET[id]";  
      $result = mysql_query($sql);  
      $zeilen = mysql_num_rows($result);  
      $row = mysql_fetch_assoc($result);  
      
      

      Anschließend kommt ein HTML-Formular, in das die ausgelesenen Werte eingetragen werden sollen. Dies mache ich so:

        
      <input type="Text" value="<?php if($_GET['t']==1){echo $row[Wert];}?>">  
      
      

      Nun soll die Datenbank wieder geschlossen werden:

        
      mysql_close();  
      
      

      Es ist wieder dasselbe, mit xampp geht das, aufm Server nicht. Ich habe herausgefunden, dass das ganze auch auf dem Server funktioniert, wenn ich das so mache:

        
      @mysql_connect("localhost", "incredible", "mark536") or die("Verbindung zum MySQL - Server fehlgeschlagen");  
      @mysql_select_db("incredible") or die("Verbindung zur Datenbank fehlgeschlagen");  
      $sql = "SELECT * FROM adressen";  
      $result = mysql_query($sql);  
      $zeilen = mysql_num_rows($result);  
      while ($row = mysql_fetch_assoc($result)) {  
      ?>  
      HTML-Formular  
      <?php  
      }  
      mysql_close();  
      ?>  
      
      

      Da ich aber möchte, dass unter bestimmten Umständen in dem Formular nichts angezeigt wird, kann ich es so nicht machen, denn wenn ich nur das HTML Formular haben will, wird es nicht mehr angezeigt.

      Das verwundert mich auch, weil es ja nur von PHP-Code umgeben ist, nicht aber durch echo oder so ausgegeben wird.

      OK, das wars, vielen Dank schonmal,
      brockerdocker

      1. hi,

        $sql = "SELECT * FROM adressen WHERE id = $_GET[id]";

        Du solltest im Manual bzgl. Strings den Abschnitt über Variablen-Analyse (parsing) noch mal lesen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }