if-anweisung mit leerem textfeld wird nicht ausgeführt
wtf
- php
Hallo, ich habe ein Formular, dessen Inhalt in einer Datenbank gespeichert werden soll.
Wenn ich die Seite aufrufe, wird jedoch allein dabei schon ein leerer Satz in der Datenbank gespeichert.
Also sollte eine if-Anweisung dafür sorgen, dass nur etwas gespeichert wird, wenn in dem Textfeld Inhalt ist.
if ($data != "")
{
$insert = "INSERT INTO Marker(Inhalt, lat, lng) VALUES ('$data', '$lat', '$lng')";
mysql_query($insert, $connection) or die(mysql_error());
}
Funktioniert aber nicht.
Ebenso, dass er die Inhalte der Variablen gar nicht erst übernimmt und immer nur leere Zeilen in der DB speichert.
Weiß da jemand einen Rat???
MfG
Hi,
Frag mal so:
if ($data != null)
Hmm dann fügt er nicht mal mehr leere Zeilen in die DB wenn ich in meinem Formular auf Submit klicke.
Viell liegt das Problem ja darin, dass er den Inhalt der Textvariablen gar nicht bei INSERT INTO verarbeiten kann.
Mit
echo $_GET["data"]
kann er den Inhalt aber ausgeben.
Hi,
Schreib das mal vor deine Abfrage.
$data = $_GET["data"];
Super geil!
Danke!
Das mit dem $data = $_GET["data"]; davor hatte ich vorhin schon mal probiert, aber da war der ganze Rest wahrscheinlich noch irgendwie anders....
Tausend Dank :-)
Mahlzeit wtf,
Das mit dem $data = $_GET["data"]; davor hatte ich vorhin schon mal probiert, aber da war der ganze Rest wahrscheinlich noch irgendwie anders....
Lass das mit dem $data = $_GET["data"];
mal lieber weg - Du siehst ja, was das für Probleme bringen kann: im späteren Verlauf des Skripts wird überhaupt nicht mehr klar, was nun eigentlich in welchen Variablen steht und warum und woher welcher Inhalt stammt und ob da überhaupt was drin ist.
Darüberhinaus sollte Dein Skript absolut nichts und niemandem vertrauen: ALL INPUT IS EVIL! Das bedeutet aber auch, dass es keinerlei Benutzereingaben bzw. Formulardaten ungeprüft in irgendwelche Datenbankabfragen übernimmt - wer weiß schon, was da drin steht?
Ich würde Dir folgendes vorschlagen:
$insert = sprintf("INSERT INTO Marker(Inhalt, lat, lng) VALUES ('%s', '%s', '$s')",
mysql_real_escape_string($_GET['data']),
mysql_real_escape_string($_GET['lat']),
mysql_real_escape_string($_GET['lng']));
Das sieht zwar auf den ersten Blick komplizierter aus und es erfordert auch mehr Tipparbeit ... dafür kann aber jeder, der sich den Code anschaut (auch Du, mein Sohn Brutus, nächstes Jahr oder übernächsten Monat), genau erkennen, welche Daten dort wie verwurstet werden.
MfG,
EKKi