variable in MySQL einfügen

German hat gesagt.:
PHP:
$sql="INSERT INTO $tabellenname (absender, email, message, datum) values ('".$absender."', '".$email."', '".$message."', now())";

oO was soll den der Mist da? Lies mal ein Tutorial über escapen was du bei google findest :rolleyes:

@Threadersteller schon mal geprüft ob deine Variablen überhaupt richtig was drinnen stehen haben?
 
Ok Sicaine, hier mal der ganze Quelltext, wär nett wenn ihr nochmal nach Fehlern schaut.


PHP:
<?
if($flag=='1')
{
//Leerzeichen für die Textdatei werden entfernt
$absender=trim($absender);
$email=trim($email);
$message=trim($message);

//HTML tags aus dem Text entfernen
$absender=strip_tags($absender);
$email=strip_tags($email);
$message=strip_tags($message);

//Fehlermeldungen ausgeben
if(!$absender){$fehler="Bitte geben Sie einen Namen ein ";}
if(!$email){$fehler="Bitte geben Sie eine korrekte email Adresse ein ";}
if(!$message){$fehler="Bitte geben Sie einen Text ein ";}

if($fehler)
{
$meldung="<h2><font color=red>".$fehler."</font></h2>";
unset($flag);
}
//SQL String
$tabellenname="gaestebuch";
$sql="INSERT INTO $tabellennname(absender, email, message, datum) values
('$name', '$email', '$message', now())";
// verbinden zur Datenbank
$link=mysql_connect("localhost", "root", "3105");
mysql_select_db("forum", $link);
mysql_query($sql, $link);
$meldung="<h2><font color=red>Ihre Angaben wurden aufgenommen und werden in kürze in unserem Gästebuch eingetragen</font></h2>";

//Ausgabe der Meldung
echo $meldung;
}
else
{
$tabellenname="gaestebuch";
$sql="INSERT INTO $tabellenname (absender, email, message, datum) VALUES ('$absender', '$email', '$message', now())";
$link = mysql_connect("localhost", "root" ,"Passwort");
mysql_select_db("forum", $link);
mysql_query($sql, $link);
$meldung="<h2><font color=red>Ihre Daten wurden ins Gästebuch aufgenommen</font></h2>";
echo $absender;
echo $email;
echo $message;
}//Ende der flag==1 schleife


if(!$flag)
{
?>
<form action='<? echo $PHP_SELF; ?>' method=post>
<input type=hidden name=flag value=1>
<div align="center"><p>Ihr Name<br></div>
<div align="center"><input type=text name=absender><? $absender; ?></div>
<div align="center"><p>Ihre Email Adresse<br></div>
<div align="center"><input type=text name=email ><? $email; ?></div>
<div align="center"><p>Ihre Nachricht<br></div>
<div align="center"><textarea name=message cols="45" rows="15">
<? echo $message; ?>
</textarea>
<br>
<input type="Submit" name="" value="abschicken">
<?//<input type=submit>
?>
</form>
<?
}
?></div>
</body></html>
 
Zuletzt bearbeitet:
Und auch hier wieder ein typisches Problem.. Ist bei dir zufällig register_globals auf off? Falls ja, wäre das ein geeigneter Suchbegriff hier.. Oder auch in die FAQ schauen, warum du nicht auf deine Variablen aus einem Formular zugreifen kannst.
 
tja Timbonet, danke für die Hilfe, aber es klappt immer noch nciht. Hab register_globals auf on gestellt und neu gestartet.

Hat noch jemand einen Tipp?

Falls es hilft, ich benutze XAMPP.
 
Zuletzt bearbeitet:
Öhm wo sind den die echos? Wo gibtst du den Zwischenwerte aus um den Fehler einzugrenzen?
 
$meldung="<h2><font color=red>Ihre Daten wurden ins Gästebuch aufgenommen</font></h2>";

darunter, also nachdem es abgeschickt wird, ich hoffe das ist richtig so. Wie gesagt bin Anfänger.
 
Sicaine hat gesagt.:
oO was soll den der Mist da? Lies mal ein Tutorial über escapen was du bei google findest
Laut http://de3.php.net/manual/de/function.echo.php werden Variablen innerhalb Singlequotes nicht als Variablen sondern als Text behandelt, dass dies innerhalb '( )' anders ist war mir absolut neu und wird im Manual auch nicht erwähnt. Also kein Grund, mich in so einem Ton anzumachen.

BTW
Google ist mit Sicherheit die erste Wahl, wenn ich was über PHP wissen will, vor allem wenn sich mir eine Frage noch gar nicht gestellt hat.

@ Mr Mr Mazen

ändere mal die 3 Zeilen:
PHP:
$absender=trim($_POST['absender']);
$email=trim($_POST['email']);
$message=trim($_POST['message']);
 
ok ich werds nochmal ausprobieren, hab aber Heute keine Zeit mehr. Ich danke Euch erstmal für Eure Tipps. Ach ja und bitte nicht streiten, ich wollte nur Hilfe und keinen verbalen Kampf zwischen den Tutorials Mitgliedern :)
 
German hat gesagt.:
Laut http://de3.php.net/manual/de/function.echo.php werden Variablen innerhalb Singlequotes nicht als Variablen sondern als Text behandelt, dass dies innerhalb '( )' anders ist war mir absolut neu und wird im Manual auch nicht erwähnt. Also kein Grund, mich in so einem Ton anzumachen.

Die Teile stehen nicht in Singelqutes sondern in doublequtes nur mal so gaaanz nebenbei. Da nämlich dank den " das ' als "text" gewertet wird und so ignoriert wird. Das hat absolut garnix mit () oder sonst was zu tun.
 
Zurück