Hilfe: Gaestebuch

Fabi_the_real

Mitglied
Hallo!

Ich hab ein Problem mit einem Gästebuch-Script (stammt aus einem Tutorial). Nämlich funktioniert es im Grunde schon, aber wenn man auf neuen Eintrag klickt, passiert einfach nichts...

PHP:
<?php 
$id = "name"; 
$pw = "password";  
$host ="localhost"; 
$database = "databasename";
$table = "tabellenname"; 
$conn_id = mysql_connect($host,$id,$pw);
mysql_select_db($database,$conn_id); 
$action = $HTTP_POST_VARS[action]; 
if($action=="save") 
{ 
  $content = "Der user".$name."hat gerade einen eintrag in ihr gaestebuch vorgenommen!"; 
  $an = "e@mail.de";
  $betreff = "gaestebucheintrag"; 
  @mail($an,$betreff,$content,"From: ".$email); 
  $datum = time(); 
  $inhalt = $inhalt; 
  $name = ($name) ? $name : "unbekannt"; 
  mysql_query("INSERT INTO $table (name,email,hp,inhalt,datum) VALUES ('$name','$email','$hp','$inhalt','$datum')"); 
} 
echo "<td width=75% height=100% align=center valign=top>"; 
if($action==neu) 
{ 
 
  echo "<a href='index.php?page=Guestbook'>zum Guestbook<p></a>";
} 
else 
{ 
  echo "<p><a href='".$HTTP_SERVER_VARS[PHP_SELF]."?action=neu&page=Guestbook'>Neuer Eintrag<p></a>"; 
} 
if($action=="neu") 
{ 
   
?>
<style type="text/css">
<!--
.Stil3 {font-family: Arial, Helvetica, sans-serif; color: #000000; }
-->
</style>
 
<table> 
<form action="<?php echo '".$HTTP_SERVER_VARS[PHP_SELF]."?action=neu&page=Guestbook'; ?>" method=post> 
  <tr> 
   <input type="hidden" name="action" value="save"> 
   <td><span class="Stil3">Name:</span></td> 
   <td><input name=name type=text></td> 
  </tr> 
  <tr> 
   <td><span class="Stil3">Email:</span></td> 
   <td><input name=email type=TEXT></td> 
  </tr> 
  <tr> 
   <td><span class="Stil3">Homepage: http://</span></td> 
   <td><input name=hp type=text></td> 
  </tr> 
  <tr> 
   <td><span class="Stil3">Eintrag:</span></td> 
   <td><span class="Stil3">
	 <textarea name="inhalt" rows="6" cols="25"></textarea>
   </span></td>
  </tr> 
  <tr> 
   <td> </td> 
   <td><input type=submit value="eintragen"></td>
  </form> 
  </tr> 
</table> 
<?php 
  } 
  else 
  { 
  $query = "SELECT * FROM $table ORDER BY datum DESC LIMIT 0,50"; 
$result = mysql_query($query); 
if(mysql_num_rows($result)) 
{ 
  while($row=mysql_fetch_array($result))	 
  { 
   $name = $row['name']; 
   $email = $row['email']; 
   $hp = $row['hp']; 
   $inhalt = $row['inhalt']; 
   $datum = date("d.m.Y/H:i:s",$row['datum']); 
   echo "<table width='90%' valign='top' align='center'><tr><td width='75%' align='left'><b><a href=mailto:".$email.">".$name."</a></b></td><td align='right'>".$datum."</td></tr></table>"; //die ausgabe der daten 
   $inhalt = nl2br($inhalt); 
   echo "<table width='90%' align='center'><tr><td colspan='2'>".$inhalt; 
   echo "</td></tr></table>"; 
   if($hp=="") 
   { 
	echo "<tr><td>keine Homepage</td></tr></table><p>"; 
   } 
   else 
   { 
	echo "<table width='90%' align='center'><tr><td width='95%'><a href='http://".$hp."' target='new'>".$hp."</a></td><td align=center><a href='#top'>top</a></td></tr></table><p>"; 
   } 
   flush(); 
  } 
} 
else 
{ 
  echo "<b>Es sind noch keine Eiträge vorhanden!</b>";
} 
} 
if($action==neu) 
{ 
  echo "<a href='".$HTTP_SERVER_VARS[PHP_SELF]."?page=Guestbook'><p>zum Guestbook</a>"; 
} 
else 
{ 
  echo "<p><a href='".$HTTP_SERVER_VARS[PHP_SELF]."?action=neu&page=Guestbook'>Neuer Eintrag</a>"; 
} 
?>

Bitte helft mir

thx,

fabi
 
Hallo Fabi,

  • mit $action = $HTTP_POST_VARS[action]; greifst Du auf ein Array zu, das versendete Daten, z.B. aus nem Formular, enthält. Um Variablen aus nem Link zu erhalten brauchst Du ein $_GET["action"].
  • zwei mal fehlt in dieser Klammer was if($action==neu) ... was siehst aber selber, gell :)
  • bei Deinen Links ist meistens noch ein "page=Guestbook", mit der Du gar nix machst...
    den Wert könntest Du ja wie oben auslesen

das müsste eigentlich alles sein

vg Clemens
 
Zurück