seit php 4.3.8 keine Einträge mehr

Methos

Erfahrenes Mitglied
Seit dem Update auf 4.3.8 klappen keine Gästebuch Einträge mehr. Er scheint die Daten einfach nicht mehr zu übergeben wollen.

hier der Code:
Code:
<?php 
// Speichert einen neuen Eintrag in der Datenabank ab 

if ($action=="save") { 
$datum = time(); 
$zeit = date("H:i:s"); 
$inhalt = $inhalt; 
$name = ($name) ? $name : "unbekannt"; 
mysql_query("insert into $table (name,email,open,hp,inhalt,datum,zeit) 
VALUES ('$name','$email','$open','$hp','$inhalt','$datum','$zeit')"); 
$betreff = "Es wurde ein Gdstebucheintrag vorgenommen!"; 
$empfaenger = "mail@web.de"; 
$betreffgast = "Ihr Gdstebucheintrag"; 
$danke = "Vielen Dank f|r Ihren Eintrag in meinem Gdstebuch. "; 
mail($empfaenger, $betreff, $inhalt, "From: test.de <webmaster@blackmirror.de>"); 
mail($email, $betreffgast, $danke, "From: test.de <webmaster@test.de>"); 
} 

// Hier beginnt die HTML Ausgabe 

if($action=="neu") 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?show=guestbook" method=post> 
<input type="hidden" name="action" value="save"> 
<table> 
<tr> 
<td>Name:</td> 
<td><input type=text name=name></td> 
</tr><tr> 
<td>Email:</td> 
<td><input type=TEXT name=email></td> 
</tr><tr> 
<td> </td> 
<td><input type=checkbox name=open checked value=1><font size=1>Soll die Emailadresse spdter im <br>Gdstebuch angezeigt werden?</font></td> 
</tr><tr> 
<td>Seite:</td> 
<td><input type=text name=hp value=http://></td> 
</tr><tr> 
<td>Text:</td> 
<td><textarea name="inhalt" rows="6" cols="25"></textarea></td> 
</tr><tr> 
<td> </td> 
<td><input type=submit class="button" value="In4s Gdstebuch eintragen"></td> 
</tr></table></form> 

</div> 
<div style= width:290> 

<table> 
<tr> 
<td> 

<?php 
if($lim == "") { $lim = 0; } 
$limi = bcadd($lim, 5); 
$backlim = bcsub($lim, 5); 
$server = "localhost"; 
$user = "test"; 
$passwort = "test"; 
$datenbank = "test"; 
$tabelle = "gast"; 



MYSQL_CONNECT($server, $user, $passwort) or die ( "<H3>Datenbankserver nicht erreichbar</H3>"); 
MYSQL_SELECT_DB($datenbank) or die ( "<H3>Datenbank nicht vorhanden</H3>"); 
$alles = mysql_query(" select * from $tabelle "); 

$zaehlen = mysql_num_rows($alles); 

$result=MYSQL_QUERY( "SELECT * FROM $tabelle ORDER by datum desc limit $lim,5"); 
if($zaehlen <1) { echo "Da hat wohl niemand etwas eingegeben! SORRY!"; } 
else { 

while($row = mysql_fetch_object($result)) { 
$nr = $row->nr; 
$name = $row->name; 
$open = $row->open; 
$email = $row->email; 
$hp = $row->hp; 
$inhalt = $row->inhalt; 
$kommentar = $row->kommentar; 
$datum = date("d.m.y",$row->datum); 
$zeit = $row->zeit; 

echo "<b>Eintrag </b>" .$nr; 
echo "<b> vom </b>" .$datum; 
echo "<b> um </b>" .$zeit. " Uhr"; 
echo "<br>"; 
echo "<b>Name: </b>" .htmlspecialchars($name); 
echo "<br>"; 
echo "<b>Emailadresse: </b>" .$email; 
echo "<br>"; 
echo "<b>Homepage: </b><a href='$hp' target='_blank'> $hp </a>"; 
echo "<br>"; 
echo "<b>Text: </b>" .htmlspecialchars($inhalt); 
echo "<hr>";

Ich hoffe ihr könnt mir hier ein wenig weiterhelfen, da mein PHP leider noch nicht so gut ist. Danke schon mal für eure Hilfe.
 
Hast Du also auch schon mitbekommen, dass register_globals seit der PHP-Version 4.2.0 defaultmäßig deaktiviert ist. Alle Variablen, die Du via Post erhälst, musst Du über $_POST['variablenname'] abrufen. Die Get-Variablen über $_GET['variablenname']. Oder alles über $_REQUEST['variablenname']. Für Dein konkretes Beispiel also:
PHP:
if ($_REQUEST['action'] == "save") {

snuu
 
danke dir, ich hatte zwar immer

$name = $_POST["name"];

usw. abgeändert. Aber an die beiden hatte ich nicht gedacht. Sorry
 
Wenn die Parameter in dem URL übertragen werden, dann musst Du $_GET verwenden, ebenso in einem Formular, bei dem method="GET" gesetzt wurde. Andernfalls $_POST, oder in jedem Fall $_REQUEST.

snuu
 
Aber das ist doch dann korrekt gewesen oder nicht? Ich meine ich hab doch als Method Post ausgewählt oder seh ich das Falsch?

Es hat jetzt auf jeden Fall geklappt. Gästebuch usw. funktioniert wieder. Werd aber trotzdem bei Zeiten mal den Code überarbeiten...
Ist irgendwie noch nicht so das richtige...
 
Zurück