Eintragen v. Datensätzen
dadrian
- php
Ich habe folgenden Code gecoded:
<?php
include("dbconnect.php");
$beitrag=$_POST["beitrag"];
$datum=strftime("%d.%m.%Y | %H:%M", time());
$kommentar=htmlentities($beitrag);
$kommentar=str_replace("\n", "<br>", $beitrag);
$kommentar=stripslashes($beitrag);
$kommentar=addslashes($beitrag);
$name=htmlentities($_POST["name"]);
$eintrag="INSERT INTO tipps (Name, EMail, Beitrag, AmUm)
VALUES ('$name', '$_POST[email]', '$kommentar', '$datum')";
$eintragen=mysql_query($eintrag);
$abfrage="SELECT * FROM tipps";
$ergebnis=mysql_query($abfrage);
include("tipps.php");
?>
Irgendetwas scheint aber daran nicht zu stimmen ---> er funktioniert nicht
hi,
Irgendetwas scheint aber daran nicht zu stimmen ---> er funktioniert nicht
Nutze mysql_error, bei _jeder_ Aktion, die du mit der Datenbank machst.
Und lasse dir die s´dynamisch generierten Query-Strings zur Kontrolle ausgeben.
gruß,
wahsaga
echo $begrüßung;
$beitrag=$_POST["beitrag"];
Ein Umkopieren von Einträgen aus den $_POST- und $_GET-Arrays in eine weitere Variable ist im Allgemeinen nicht notwendig.
$datum=strftime("%d.%m.%Y | %H:%M", time());
MySQL möchte das Datum in einer anderen Formatierung übergeben bekommen, falls es sich um ein DATE bzw. DATETIME-Feld handelt.
$kommentar=htmlentities($beitrag);
$kommentar=str_replace("\n", "<br>", $beitrag);
$kommentar=stripslashes($beitrag);
$kommentar=addslashes($beitrag);
Du überschreibst jedes Mal den Inhalt von $kommentar mit einer anderen Version des immer noch gleich gebliebenen Inhalts von $beitrag. Außerdem sind deine Aktionen überflüssig bis unsinnig, wenn es darum geht, etwas in eine Datenbank einzutragen. Du solltest dabei noch keine Rücksicht auf das später verwendete Ausgabemedium nehmen. Diese Formatierungen stören möglicherweise irgendwann einmal, wenn man die Daten an ein anderes Medium mit anderen Formatier- und Maskiervorschriften ausgeben möchte. Maskieren sollte man immer erst, wenn es zur Ausgabe geht, nicht schon in einem früher stattfindenden Verarbeitungsschritt.
Wenn du ein Problem mit eingeschalteten Magic Quotes hast, deaktiviere sie entweder per Konfiguration oder mach ihre Auswirkungen einmalig, für alle Werte und am Scriptanfang rückgängig. Verwende zum Maskieren von Werten die zum Ausgabemedium (hier die MySQL-Datenbank) passenden Funktionen, z.B. mysql_real_escape_string().
$eintragen=mysql_query($eintrag);
wahsaga erwähnte es schon. Die mysql_*-Funktionen geben Fehlerzustände über ihren Rückgabewert bekannt. Ignoriere diesen nicht, sondern werte ihn aus und reagiere angemessen.
echo "$verabschiedung $name";