[PHP & MySQL] Formular mit automatischem eintragen

Kullakeeeks
Hallöchen...

Es gab in der Homepagehilfe mal ein Tutorial zum erstellen von Formularen. Hat das Script noch irgendwer? Einiges weiß ich selbst, aber bei mir ist immernoch irgendwas falsch und dieses Tut wäre da sehr hilfreich!


Vielen Dank schonmal!


LG


/edit: Vielleicht sollte ich dazu sagen, dass das was im Formular ausgefüllt wird direkt eingetragen und ausgegeben werden soll...
Kullakeeeks
Okay, habs selbst rausgefunden smile
Saskia
Kannst du vielleicht einen link zu dem tut schreiben ?
Kullakeeeks
Dazu gibts kein Tut mehr, soweit ich weiß...
Aber ich kann heute Abend mal versuchen es dir zu erklären...smile
Saskia
danke fröhlich
Kullakeeeks
Ich versuchs dann mal...xD
Also zunächst bastelst du dir ein ganz normales Formular und speicherst es dir z.B. unter formular.php oder anmeldung.php ab.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<html>
<head>
  <title>Dein Titel</title>
</head>
<body>
<form method="post" action="form_send.php">
...
<input name="name"
 size="26" maxlength="255" type="text">
...
 <p align="center"><input value="absenden"
 name="irgendein Name" type="submit"></p>
</form>
</body>
</html>

Damit hast du dann erstmal das Formular erstellt, ich hoffe du weißt da genau wie das geht, sonst melde dich deswegen nochmal...
Nun sollen alle eingegebenen Daten mit einem Klick auf "absenden" ja direkt in deine Datenbank eingetragen werden. Das machst du mithilfe der Datei form_send.php, s.o..
Also erstellen wir die Datei form_send.php.
Es gibt ja zwei Möglichkeiten die Datenbank einzubinden.
1. auf "deine" Art:
php:
1:
2:
3:
4:
5:
6:

<?php
mysql_connect("localhost""tsreichenbach","******") or die ("Keine Verbindung moeglich");
mysql_select_db("tsreichenbach") or die ("Die Datenbank existiert nicht.");
?>

oder aber
2. wie ich es immer mache:
php:
1:
2:
3:

<?php include('db.php'); } ?>

dazu muss jedoch die Datei db.php existieren.

Ich erklär dir das jetzt mithilfe der zweiten Variante, da ich es immer so mache, müsste aber eigentlich mit der ersten genauso gehen:
Eigentlich brauchst du dafür nur den <head></head>-Teil, der Vollständigkeit halber füge ich aber immer den BODY-tag noch hinten an
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:

<head>
<?php include('db.php'); 
$name $_POST['name']; 
$pferd $_POST['pferd'];
$aktion $_POST['aktion']; 
###damit gibst du zunächst an, welche Felder alle in die Datenbank eingetragen werden sollen. Wichtig ist, dass alle Namen mit den Namen aus der formular.php übereinstimmen.###

if( ($name=='') OR ($pferd=='') OR ($aktion=='') ) {echo "<b>Error</b><br> Bitte fülle alle Felder aus!<br><br> Bitte gehe <a href="javascript:%20history.back(-2)" target="_self">zurück</a>"; } 
###das bedeutet, dass es eine Fehlermeldung gibt, wenn eins der vorgegebenen Felder nicht ausgefüllt ist. Du kannst dadurch festlegen, welche Felder ausgefüllt werden müssen###

else { $eintrag "INSERT INTO `Datenbankname` ( `ID` , `Name` , `Pferd` , `Aktion` ) VALUES ('', '$name', '$pferd', '$aktion')"$eintragen mysql_query($eintrag); if($eintragen==true) { echo "Deine Daten wurden erfolgreich eingetragen"; } else { echo "Fehler!"; include('formular.php'); }
###nun der wichtige Teil des automatischen Eintragens: datenbankname muss natürlich durch deine Datenbank ersetzt werden und auch `ID` , `Name` , `Pferd` , `Aktion` muss angepasst werden (achte auf Groß- und Kleinschreibung), die values müssen wiederum mit denen oben übereinstimmen###

?>
  <title>Dein Titel</title>
</head>
<body>
<br>
<br>
</body>


So, das wärs eigentlich, ich denke wie man dann aus der PHP-Datei ausgibt weißt du selbst, wenn nicht kannst du auch da einfach nochmal nachfragen.
ich hoffe du hast das verstanden und kannst er umsetzen, ist aber eigentlich nicht sonderlich schwierig!


LG
callous.
Gehört zwar nicht so wirklich zum Thema, aber warum zwischen <head> und </head>?? Ist doch eigentlich schnuppe, wo's steht. Aber ich mach es immer in den <body>-Tag, wo auch normalerweise der Text hinkommt.
Kullakeeeks
Ja das geht auch, aber ich machs in den <head>...
Hab ich mir so angewöhnt...smile
Oli
Hi,

gemäß HTML-Spezifikation dient der <head> nur für Informationen über das Dokument (die Seite) selbst (z.B. Titel, Zeichensatz, Formatierungsanweisungen, etc.) und der <body> für die Inhalte dieser Seite.

Wenn nun also Inhalte in <head> stehen, ist nicht garantiert, dass diese überhaupt angezeigt werden, da dies dann vom Verhalten des Browsers abhängt (der Standard gibt nicht vor, wie Browser dies handhaben sollen - jeder Browser könnte sich anders verhalten).

Also: Seiteninhalte immer in den <body>.

LG
Kullakeeeks
Okay, alles klar, merk ich mir...smile
Danke!