Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich habe folgendes Php Script geschrieben um mich mit Mysql und php vertraut zu machen:

Soll so eine Art Gästebuch werden:

<html>

<body>

<?php

if($gesendet)

{

$db = mysql_connect(*********);

echo "Es befinden sich folgende Einträge in der Datenbank:<p>";

$res = mysql_db_query("*****","select * from guestbook");

$num = mysql_num_rows($res);

echo "$num Datensätze gefunden<br>";

echo "<br>";

echo "<br>";

for($i=0; $i<$num;$i++)

{

$nn = mysql_result($res, $i, "name");

$vn = mysql_result($res, $i, "vorname");

$em = mysql_result($res, $i, "email");

$ko = mysql_result($res, $i, "kommentar");

echo "$nn, $vn, $em, $ko <br>";

}

$sqlab = "insert guestbook";

$sqlab .= "(name, vorname, email, kommentar) values ";

$sqlab .= "('$Name', '$Vorname', '$Email', '$Kommentar')";

mysql_db_query("reinbacher", $sqlab);

$num = mysql_affected_rows();

if ($num>0)

echo "Es wurde 1 Datensatz hinzugefügt<p>";

else

{

echo "Es ist ein Fehler aufgetreten, ";

echo "es wurde kein Datensatz hinzugefügt<p>";

}

mysql_close($db);

}

?>

</head>

<body>

Bitte etwas eingeben und absenden:

<form action = "main.php" method = "post">

<input name = "Name"> Nachname <p>

<input name = "Vorname"> Vorname <p>

<input name = "Email"> E-Mail Adresse <p>

<input name = "Kommentar"> Dein Kommentar <p>

<input type = "submit" name = "gesendet">

<input type = "reset">

</form>

</body>

</html>

Dieses File ruft sich nach dem Abschicken selbst wieder auf.

Doch klickt man auf Abschicken, so bekommt man den eingegebenen Eintrag nicht zu Gesicht.

Klickt man auf Aktualisieren im Browser so wird der eintrag zwei mal in die DB geschrieben.

Was kann ich am Script ändern, damit ich nach der Eingabe und dem Abschicken den neuen Eintrag gleich sehe und nicht nur die alten Eintrage?

Und wie kann man es unterbinden, dass der User bei einem Feld nichts eingibt und das Formular trotzdem abschickt?

Besten Dank

Rain

Geschrieben
Originally posted by Rain

<input name = "Name"> Nachname <p>

Du musst auch den Wert setzen:

<input name="Name" value="<?php echo $Name ?>"> Nachname <p>

Das wiederholte speichern löst man, indem man beim ersten speichern eine Sessionvariable setzt, und deren Existenz bei jedem Seitenaufruf checkt. Ist die Variable gesetzt, wurde schon gespeichert.

Alternative:

Vorher in der Datenbank nachschauen ob der Datensatz schon drin ist.

Gruß Jaraz

Geschrieben

Wie kann ich konkret überprüfen ob die eingegebenen daten schon in der DB enthalten sind?

Würde mich über ein kleines Stück Source freuen da ich in Sachen Mysql noch ein ziemlicher Newbee bin.

Besten Dank

Rain

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...