interocitor Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Hallo, manche user machen es sich anscheinend zum Hobby, leere Datensätze an meine SQL Datenbank zu schicken. Die müssen dann alle per Hand via mysql gelöscht werden. Gibt es eine Möglichkeit einzustellen, dass bestimmte Felder in der Eingabemaske ausgefüllt werden MÜSSEN? Es soll eine Fehlermeldung erscheinen, wenn eines dieser Felder leer bleibt. DANKE für Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 WAS steht denn vor deiner Datenbank? Ich nehme mal an PHP? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 Was da steht? Das ist php, richtig Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
janosch_de Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Gibt es eine Möglichkeit einzustellen, dass bestimmte Felder in der Eingabemaske ausgefüllt werden MÜSSEN? Du könntest beim anlegen der Tabelle angeben, welche Felder ausgefüllt sein müssen. Beispiel: CREATE TABLE T_Benutzer ( ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Vorname VARCHAR(50) NOT NULL, Nachname VARCHAR(50) NOT NULL, Herkunftsland VARCHAR(50) NULL, PRIMARY KEY(ID), ) ENGINE=INNODB; Die Felder Name und Vorname dürfen bzw. können jetzt bei einem neuen Datensatz nicht leer sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Jo aber dann kommt nur ne hässlige SQL Exception, wenn mich nciht alles täuscht. Du solltest es am besten mit PHP Code verhindern. Ich habe es in meinem Gästebuch damals so gemacht: if(isset($_POST['gbeintrag_write'])) //wenn der Button der Form gedückt wurde { $gbE = $_POST['gbeintrag']; //Text des Eintrages $gbE = trim($gbE); //trim zieht die Leerzeichen ab $gbU = $_POST['gbUeberschrift']; $gbU = trim($gbU); //s.o if ($gbE == "" OR $gbU == "") //ne Fehlermeldung wenn es vorkommt { $meldung = "Bitte alle Felder füllen!"; } else { //SQL Query zum einfügen des gbEintrags mit neuladen der Seite mysql_query ('INSERT INTO gbook (F_ID_user, Ueberschrift, gbooktext, Datum, Uhrzeit) VALUES ('.$userid['P_id_user'].',"'.mysql_real_escape_string($gbU).'","'.mysql_real_escape_string ($gbE).'","'.$datum.'","'.$uhrzeit.'")'); header("Location: ../src/gbook.php"); } } [/PHP] Ich hoffe es hilftdir etwas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 und wie wird es bei html gemacht? sehe gerade, dass es sich ursprünglich um eine html Datei handelt, die nur als *.php gespeichert wird. hab das ganze mal mit frontpage geöffnet, aber keine Funktion gefunden, wie man eine Eingabe in ein bestimmtes Feld erzwingen kann... Ich habe auch noch die submit.php, die so aussiet: <? include("dbconnect.php"); $dienst = $_POST["dienst"]; $freq = $_POST["freq"]; $station = $_POST["station"]; $itu = $_POST["itu"]; $lang = $_POST["D1"]; $date = $_POST["T1"]; $time = $_POST["time"]; $sonstiges = $_POST["sonstiges"]; $receiver = $_POST["receiver"]; $antenna = $_POST["antenna"]; $qth = $_POST["qth"]; $SINPO = $_POST["SINPO"]; $betriebsart = $_POST["betriebsart"]; $user = $_POST["user"]; $empfangsland = $_POST["empfangsland"]; $datum = explode(".",$date); $date = $datum[2]."-".$datum[1]."-".$datum[0]; $eintragen = mysql_query("INSERT INTO qrgdb (freq, station, itu, lang, date, time, sonstiges, receiver, antenna, qth, SINPO, betriebsart, user,empfangsland, dienst) VALUES ('$freq','$station','$itu','$lang','$date','$time','$sonstiges','$receiver','$antenna','$qth','$SINPO','$betriebsart','$user','$empfangsland','$dienst')"); ?> <font face="Arial" color="#C0C0C0"> <b><i>Your data has been posted successfully to our database.<br> Thank you very much for your support.</i><br> </b>Ihre Daten wurden erfolgreich an die Datenbank übermittelt.<br> Vielen Dank für Ihre Unterstützung.<br> </font><p> <font color="#C0C0C0" face="Arial"><i><b><a href="index.php"> <font color="#C0C0C0">Enter new data</font></a></b></i><br> <a href="index.php"><font color="#C0C0C0">Neuen Datensatz eingeben</font></a><br> <br> <i><b><a href="suche.php"><font color="#C0C0C0">Start new search</font></a></b></i><br> <a href="suche.php"><font color="#C0C0C0">Neue Suche starten</font></a></font></p> <hr color="#C0C0C0" size="1"> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <font face="Arial" color="#C0C0C0"> <b><i>Your data has been posted successfully to our database.<br> Thank you very much for your support.</i><br> </b>Ihre Daten wurden erfolgreich an die Datenbank übermittelt.<br> Vielen Dank für Ihre Unterstützung.<br> </font><p> <font color="#C0C0C0" face="Arial"><i><b><a href="index.php"> <font color="#C0C0C0">Enter new data</font></a></b></i><br> <a href="index.php"><font color="#C0C0C0">Neuen Datensatz eingeben</font></a><br> <br> <i><b><a href="suche.php"><font color="#C0C0C0">Start new search</font></a></b></i><br> <a href="suche.php"><font color="#C0C0C0">Neue Suche starten</font></a></font></p> <hr color="#C0C0C0" size="1"> Kann das nicht da festgelegt werden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 schau dir einfach mal meinen Code an und schrieb die if schleife um dein sql query, dann passt es... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 jo, vielen Dank. hab deinen Eintrag erst gesehen, als ich neu gepostet hatte. habe das jetzt nur auf zwei Felder angewendet, also das "OR" belassen. bekomme allerdings diese Fehlermeldung arse error: syntax error, unexpected $end in /home5/www/b32/geoo/test3/submit.php on line 71 wenn ich meine PHP Datei so habe: <? include("dbconnect.php"); $dienst = $_POST["dienst"]; $freq = $_POST["freq"]; $station = $_POST["station"]; $itu = $_POST["itu"]; $lang = $_POST["D1"]; $date = $_POST["T1"]; $time = $_POST["time"]; $sonstiges = $_POST["sonstiges"]; $receiver = $_POST["receiver"]; $antenna = $_POST["antenna"]; $qth = $_POST["qth"]; $SINPO = $_POST["SINPO"]; $betriebsart = $_POST["betriebsart"]; $user = $_POST["user"]; $empfangsland = $_POST["empfangsland"]; $datum = explode(".",$date); $date = $datum[2]."-".$datum[1]."-".$datum[0]; if ($freq == "" OR $user == "") //ne Fehlermeldung wenn es vorkommt { $meldung = "Bitte alle Felder füllen!"; } else { $eintragen = mysql_query("INSERT INTO qrgdb (freq, station, itu, lang, date, time, sonstiges, receiver, antenna, qth, SINPO, betriebsart, user,empfangsland, dienst) VALUES ('$freq','$station','$itu','$lang','$date','$time','$sonstiges','$receiver','$antenna','$qth','$SINPO','$betriebsart','$user','$empfangsland','$dienst')"); ?> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 wo ist zeile 71?^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 das ist die letzte Zeile (habe ich nicht mitkopiert, da sind nur die Schriftarten etc. festgelegt). Zeile 71 ist übrigens leer Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 dir fehlt ein "}" für das else würde ich jetzt mal tippen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Du solltest es am besten mit PHP Code verhindern. Ich habe es in meinem Gästebuch damals so gemacht: Am allerbesten solltest du das (ohne dass du den PHP-Teil wegläßt) per Javascript vor dem Absenden des Formulars prüfen lassen. Dann muss das Formular nicht erst an den Server gesendet werden, um dann wieder zurück zum Client zu kommen, mit der Meldung, dass da ein Fehler in den Daten ist. Das ging glaub ich so: ... <form name="NeuerEintrag" action="some/url.php" onsubmit="return(checkForm());"> ... </form> ... [/php] wobei checkForm eine Funktion ist, die True oder False zurückgibt.Bei False wird kein Submit ausgeführt und du musst halt eine Meldung anzeigen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Am allerbesten solltest du das (ohne dass du den PHP-Teil wegläßt) per Javascript vor dem Absenden des Formulars prüfen lassen. Dann muss das Formular nicht erst an den Server gesendet werden, um dann wieder zurück zum Client zu kommen, mit der Meldung, dass da ein Fehler in den Daten ist. Das ging glaub ich so: ... <form name="NeuerEintrag" action="some/url.php" onsubmit="return(checkForm());"> ... </form> ... [/php] wobei checkForm eine Funktion ist, die True oder False zurückgibt.Bei False wird kein Submit ausgeführt und du musst halt eine Meldung anzeigen. Sehr gute Idee.... Erspart dir traffic und Zeit wenn du nen kostenlosen DB Anbieter hast. :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 mmh.... nur zu dumm, dass das Eingabeformular ein als *.php abgespeicherter html-file ist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dakingno1 Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 was soll das denn heißen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
interocitor Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 sorry, dachte wir sprechen von einer anderen Datei. Bzgl. dieses codes hier: ... <form name="NeuerEintrag" action="some/url.php" onsubmit="return(checkForm());"> ... </form> ... wie muss ich den in die Seite einbauen? <? include("dbconnect.php"); $dienst = $_POST["dienst"]; $freq = $_POST["freq"]; $station = $_POST["station"]; $itu = $_POST["itu"]; $lang = $_POST["D1"]; $date = $_POST["T1"]; $time = $_POST["time"]; $sonstiges = $_POST["sonstiges"]; $receiver = $_POST["receiver"]; $antenna = $_POST["antenna"]; $qth = $_POST["qth"]; $SINPO = $_POST["SINPO"]; $betriebsart = $_POST["betriebsart"]; $user = $_POST["user"]; $empfangsland = $_POST["empfangsland"]; $datum = explode(".",$date); $date = $datum[2]."-".$datum[1]."-".$datum[0]; $eintragen = mysql_query("INSERT INTO qrgdb (freq, station, itu, lang, date, time, sonstiges, receiver, antenna, qth, SINPO, betriebsart, user,empfangsland, dienst) VALUES ('$freq','$station','$itu','$lang','$date','$time','$sonstiges','$receiver','$antenna','$qth','$SINPO','$betriebsart','$user','$empfangsland','$dienst')"); ?> und durch was muss dieses "some/url.php" ersetzt werden, bzw. wofür steht es? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.