PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Gästebuch



CoolPolo
17-02-2006, 02:31
Hallo erstmal

Ich habe für mein Gästebuch eine seite erstellt mit der ich die Einträge editieren möchte. Die Einträge sind in einer mySQL-Datenbank gespeichert.
Ich habe eine Schaltfläche mit der ich den editierten Eintrag speichern will, das problem ist nur das dann nur der ursprüngliche Text erscheint und sonst nichts passiert. Ich finde im Code einfach keinen Fehler.

Ich hoffe Ihr könnt mir helfen.




//EDITIEREN
if($_POST['flag']==4 AND $_POST['IDgast'])
{
$_POST['absender'] = trim($_POST['absender']);
$_POST['email'] = trim($_POST['email']);
$_POST['betreff'] = trim($_POST['betreff']);
$_POST['message'] = trim($_POST['message']);

$_POST['absender'] = strip_tags($_POST['absender']);
$_POST['email'] = strip_tags($_POST['email']);
$_POST['betreff'] = strip_tags($_POST['betreff']);
$_POST['message'] = strip_tags($_POST['message']);

$_POST['absender'] = htmlentities($_POST['absender']);
$_POST['email'] = htmlentities($_POST['email']);
$_POST['betreff'] = htmlentities($_POST['betreff']);
$_POST['message'] = htmlentities($_POST['message']);

$link = mysql_connect("localhost", $benutzername, $benutzerpasswort);
mysql_select_db($datenbank, $link);
$sql = "UPDATE $tabellenname SET
absender = '".mysql_real_escape_string($_POST['absender'], $link)."',
email = '".mysql_real_escape_string($_POST['email'], $link)."',
betreff = '".mysql_real_escape_string($_POST['betreff'], $link)."',
message = '".mysql_real_escape_string($_POST['message'], $link)."',
WHERE ID = '".mysql_real_escape_string($_POST['IDgast'], $link)."'";
$result = mysql_query($sql, $link);
}

//EINTRÄGE AUSLESEN
$sql = "SELECT * FROM $tabellenname ORDER BY datum DESC ";
$link = mysql_connect("localhost", $benutzername, $benutzerpasswort);
mysql_select_db($datenbank, $link);
$result = mysql_query($sql, $link);

for($i = 0; $i < mysql_num_rows($result); $i++)
{
$ergebnis[$i] = mysql_fetch_array($result);
}

//AUSGABE
for($i = 0; $i < count($ergebnis); $i++)
{
echo "
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<input type=\"hidden\" name=\"flag\" value=\"4\">
<input type=\"hidden\" name=\"IDgast\" value=\"".$ergebnis[$i]['ID']."\">

<table border=\"0\" width=\"400\">
<tr>
<td width=\"300\" bgcolor=\"#B9B9B9\"> <input size=\"41\" type=\"text\" name=\"absender\" value=\"".$ergebnis[$i]['absender']."\">
</td>
<td width=\"100\" bgcolor=\"#B9B9B9\"> ".$ergebnis[$i]['datum']."</td>
</tr>";
echo "<tr><td colspan=\"2\" bgcolor=\"#B9B9B9\"> <input size=\"54\" type=\"text\" name=\"email\" value=\""
.$ergebnis[$i]['email']."\"> </td></tr>";
echo "<tr><td colspan=\"2\" bgcolor=\"#B9B9B9\"> <input size=\"54\" type=\"text\" name=\"betreff\" value=\""
.$ergebnis[$i]['betreff']."\"> </td></tr>";
echo "<tr><td colspan=\"2\" bgcolor=\"#CDCDCD\"> <textarea rows=\"10\" cols=\"54\" name=\"message\">"
.$ergebnis[$i]['message']."</textarea> </td></tr></table>";
echo "<input type=\"submit\" value=\"&Auml;ndern\"></table><hr width=\"410\"></form>";

Gaert
17-02-2006, 08:11
Hallo,

ich würd mal schauen was ein mysql_error ( http://de2.php.net/mysql_error ) nach den mysql_query() aufrufen ausgibt und ob der Inhalt von $sql so wie du ihn zusammenbaust korrekt ist.

Gruß,

Gaert

CoolPolo
17-02-2006, 13:26
Hallöle

Also mySQL giebt mit mysql_error() keine Fehlermeldung zurück. Aber trotzdem danke für den Tipp.

Ein Screenshot:
Screenshot (http://www.porscheseite.ch.vu/gastbuch/gastbuch.jpg)

Der gesamte Code:
Code (http://porscheseite.ch.vu/gastbuch/edit.txt)

MFG CoolPolo:cool:

rkauskh
17-02-2006, 18:41
Hi


if($_POST['flag']==4 AND $_POST['ID'])

Sicher das die Variable nicht IDgast heißen muß?

CoolPolo
17-02-2006, 21:42
Hallo

Du hast recht mit dem
$_POST['flag']==4 AND $_POST['IDgast']
Das Problem besteht aber trotzdem weiterhin.

CoolPolo
17-02-2006, 21:49
Hallo nochmal

Hab noch eine andere Frage.
mySQL speichert in der Tabelle automatisch das Datum. Die ausgabe im Gästebuch ist: 2006-02-17 . Wie kann ich die ins Vormat 17-02-2006 bringen?

Danke für Eure Hilfe.

MFG CoolPolo

ClausVB
18-02-2006, 11:02
Gästebuch ist: 2006-02-17 . Wie kann ich die ins Vormat 17-02-2006 bringen?

Mit
strftime (http://de2.php.net/manual/de/function.strftime.php)
und
strtotime (http://de2.php.net/manual/de/function.strtotime.php)

Beispiel mit der Funktion "date":

<?php
$date = '2005-12-25 00:56:27 GMT' ; // Note the timezone specification
$time = strtotime($date) ;
echo date('d/m/Y H:i:s', $time) ; // $date will be correctly localized
// ? 25/12/2005 01:56:27 ? for France
?> (Quelle: http://de2.php.net/manual/de/function.strtotime.php)

Gruß
Claus

PS: Ich persönlich benutzte vlibDate (http://lamp.clausvb.de/index/menuid/141/), weil ich damit Daten wie "2005-12-25" direkt in ein deutsches Format umwandeln kann.

BLUESCREEN3D
18-02-2006, 17:31
PS: Ich persönlich benutzte vlibDate (http://lamp.clausvb.de/index/menuid/141/), weil ich damit Daten wie "2005-12-25" direkt in ein deutsches Format umwandeln kann.
2005-12-25 ist doch schon ein deutsches Format... Ich würde sogar sagen, dass diese Schreibweise zu bevorzugen ist.
Siehe http://de.wikipedia.org/wiki/ISO_8601

CoolPolo
21-02-2006, 00:51
Hat keiner mer einen Vorschlag für mein Problem?

MFG CoolPolo :cool:

Gaert
21-02-2006, 07:40
Hat keiner mer einen Vorschlag für mein Problem?

MFG CoolPolo :cool:
Nur das, was bereits gesagt wurde, und dass du alle Variablen, die beim speichern involviert sind mal mit echo ausgibst und prüfst ob da auch das erwartete drinsteht.
Testen musst du schon alleine...