Gästebuchproblem

Icenine

Grünschnabel
Hallo liebes tutorials team und alle anderen!
Ich habe ein Problem! Ich habe nach einem Tutorial ein Gästebuch erstellt, vorweg möchte ich sagen, dass ich mich erst seit ein paar Tage mit php beschäftige, und sogut wie nichts kann. Mein Gästebuch kann man sich unter http://www.icenine/gaestebuch.php ansehen.
Mein Prob, wenn ich auf senden klicke, dann passiert nichts, es wird blos die Seite neu geladen... . Ich habe auch schon den Fehler-Anzeife Code eingefügt, und es wird folgendes angezeigt:
Notice: Undefined variable: action in /usr/export/www/vhosts/funnetwork/hosting/icenine/gaestebuch.php on line 14
Ok, irgendeine Varibale funkzt nciht odeR? Jmd anders hat mir gesagt, ich solle erstmal lernen, was der unterschied zwischen $_Get und $_Post Variabeln sind, kann mir jmd das mal kurz erläutern? Das was in Zeile 14 bei mir Falsch ist, ist das hier:
if ($action == "add"){
Also, was fehlt in diesem Code? Und falls ihr mir nciht helfen könnt, habt ihr ein Tutorial was ist kapiere und was wirklich geht? Wäre mir eine große hilfe

MFG Icenine
 
Ne, das kann es nciht sein, denn dann sieht es so aus http://www.icenine/gaestebuch.php. Ich poste einfach mal den gesamten Quellcode:
Code:
<html>
  <head>
    <title>gaestebuch</title>
  </head>
  <body bgcolor="#FFFFFF">
<?php
if ($_GET['action'] == "add"){

if ($name == "" || $mail == "" || $text == ""){
echo "<b>Du hast nicht alle Felder ausgef&uuml;llt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else{

if ($www == ""){
$eintrag = "<a href=\"mailto:$mail\">$name</a><br>$text";
}
else{
$eintrag = "<a href=\"mailto:$mail\">$name</a>

<br><a href=\"$www\">$www</a>$text<hr><br><br>";
}

$datei =  fopen("gaestebuch.txt","w+");
 fputs($datei,$eintrag);
 fclose($datei);
echo "Danke <i>$name</i> f&uuml;r deinen Eintrag";

}

}
else{
?> 
<font face="Verdana" size="1">
<b>Eintragen in mein G&auml;stebuch</b><br>
<form action="eintragen.php?action=add" method="get">
Dein Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag:<br>
<textarea name="text" cols="35" rows="5"></textarea><br>
</form></font>
<?php
}
?> 




      <font face="Verdana" size="1" color="#000000"> 
        <center><b>Hier k&ouml;nnt ihr euch auf meiner Seite eintragen!         </b></center>
        <br />
        <br /> 
        <br />
        <br />
        <br />
        <center>
        <form action="gaestebuch.php?action=add" method="post"> 
          Dein Name: <input type="text" name="name" size="24"><br>
          E-Mail: <input type="text" name="mail" size="24"><br>
          Homepage: <input type="text" name="www" size="24"><br> 
        </font>
        <br />
        <font face="Verdana" size="1" color="#000000">Dein Eintrag:</font>
        <br />
        <textarea name:"text" cols="35" rows="5"</textarea>
        <br />
        <input value="Nachricht senden" type="submit"></form>
</center>
<br />

</body>
</html>

Hoffe du findest den Fehler! Ich wette das ich was mit den Variablen falsch gemacht habe.
Bitte sei den so nett, und poste die verbesserte Version!! Danke

PS: hab so eben selbst gesehen, dass ich bei textarea ne > vergessen habe, aber dass kanns ja nicht sein
 
Wieso sind da 2 schließende php-Tags aber nur ein öffnender? Und wieso gibts da 2 Eintragungsformulare? Eins mit get und eins mit post. Abgesehen davon, sollte man mit CSS formatieren
 
Beim Arbeiten mit deaktivierter register_globals-Konfigurationsoption geht es vor allem darum, die Herkunft der Werte klar zu benennen. Ist es beispielsweise ein Wert, der per Post-Methode übergeben wurde, wird die $_POST-Variable genommen, bei der Get-Methode die $_GET-Variable etc.
 
Sieht so aus als wäre register_globals in der php.ini auf off.

Du solltest die Variablen wie z.B. $name, $mail, usw. mal so aufrufen $_GET['name'], $_GET['mail'].

Außerdem solltest du ein Formular lieber mit der POST-Methode übertragen statt mit der GET-Methode.

Die Variablen rufst du dann entsprechend so auf: $_POST['name'], $_POST['mail'], usw.

greetz
daddz
 
Joa danke, ich hae selbst ne neue version gemacht:
Code:
<html>
  <head>
    <title>gaestebuch</title>
  </head>
  <body bgcolor="#FFFFFF">
    <?php
      $action = $_GET["action"];
      $name   = $_POST["name"];
      $mail   = $_POST["mail"];
      $text   = $_POST["text"];
      
      if ($action == "add"){

        if ($name == "" || $mail == "" || $text == ""){
          echo "<b>F&uuml;lle alle Felder aus! !</b><br>";
          echo "Klicke nochmal auf den zur&uuml;ck Button!";
        }

        else{

          if ($www == ""){
            $eintrag = "<a href=\"mailto:$mail\">$name</a><br>$text";
          }
          else{
            $eintrag = "<a href=\"mailto:$mail\">$name</a>

            <br><a href=\"$www\">$www</a>$text<hr><br><br>";
          }

          $datei = fopen("gaestebuch.txt","w+");
          fputs($datei,$eintrag);
          fclose($datei);
          echo "Danke <i>$name</i> f&uuml;r deinen Eintrag";
  
        }
      }

?> 




      <font face="Verdana" size="1" color="#000000"> 
        <center><b>Hier k&ouml;nnt ihr euch auf meiner Seite eintragen!         </b></center>
        <br />
        <br /> 
        <br />
        <br />
        <br />
        <center>
        <form action="gaestebuch.php?action=add" method="post"> 
          Dein Name: <input type="text" name="name" size="24"><br>
          E-Mail: <input type="text" name="mail" size="24"><br>
        </font>
        <br />
        <font face="Verdana" size="1" color="#000000">Dein Eintrag:</font>
        <br />
        <textarea name="text" cols="35" rows="5"></textarea>
        <br />
        <input value="Nachricht senden" type="submit"></form>
</center>
<br />

</body>
</html>

Und ne zeigen.php
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>gaestebuchzeigen</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
  <font face="Verdana" size="1">
<b>Mein G&auml;stebuch</b><br>
<a href="gaestebuch.php">Hier</a> kannst du dich eintragen<br>
<br>


    
  </body>
</html>

Wie stelle ich den kram jetzt dar?
 
Zurück