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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...