Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Tutorials und FAQ (https://www.gegen-bilderklau.net/board.php?boardid=45)
----- [PHP & MySQL] Automatisches Eintragen mit MySQL (https://www.gegen-bilderklau.net/thread.php?threadid=183166)


Geschrieben von Nanni am 28.01.2012 um 01:10:

  Automatisches Eintragen mit MySQL

Automatisches Eintragen mit MySQL


1 - Allgemeines
Automatisches Eintragen läuft so ab, dass Daten durch ein einfaches Formular eingegeben und in der MySQL-Datenbanktabelle gespeichert werden, von wo aus man gezielt mit ihnen arbeiten kann. Das Tutorial kann natürlich genauso auf das Eintragen und Verwalten von Pferden, Turniererfolgen, Turnierteilnehmern und vieles mehr angewandt werden.

Voraussetzung ist, dass ihr eure Hoster php unterstützt und MySQL-Datenbanken anbietet. Infos dazu findet ihr meist indem ihr euch bei dem jeweiligen Anbieter einloggt und im Benutzermenü nach "(MySQL-)Datenbanken" oder "phpmyAdmin" sucht. Dort steht dann auch der Link zu eurer persönlichen phpmyAdmin-Seite, mit der Datenbanken bzw ihr Inhalt (auch) verwaltet werden können.

2 - Tabelle erstellen
An sich ist phpmyAdmin durch seine aussagekräftigen Menüpunktbezeichnungen ziemlich selbsterklärend (ggf. Sprache auf Deutsch stellen..). Dieses Tutorial mit Screens erklärt das Erstellen einer Datenbanktabelle, hier nur ganz kurz was ihr für Mitglieder speziell braucht:
# ID, mit dem Typ INT (nur Zahlen möglich), Länge/Set muss die maximale Länge beinhalten ("5" bedeutet hier, die ID darf nur 5 Stellen lang sein, es können als 'nur' 99999 Mitglieder eingetragen werden). Als Index wird hier Unique angegeben, da eine ID nicht doppelt vorkommen darf, zudem wird auto_increment angehackt. Das bewirkt, sollte ein Mitglied ohne ID eingetragen werden, dass automatisch die nächsthöhere Zahl eingetragen wird.
# Der Name bekommt den Typ VARCHAR (Einzeiliges Eingabefeld) zugeordnet, bei Länge/Set wird meist ein Standartwert von 255 angegeben.
# Bei längeren Texten wie der Selbstbeschreibung wird daher der Typ TEXT verwendet, hier darf ausnahmsweise auch Länge/Set freibleiben.

Das Ausbauen der Mitgliedersteckbriefe überlasse ich euch, das Tutorial geht von ID, Name, Email und Selbstbeschreibung aus.

3 - Verbindung zwischen Homepage und Datenbank aufbauen

Das macht man meist mit einer eigenen Datei, welche in alle Seiten, in denen ihr auf die Datenbank zugreifen wollt (Steckbriefe, Übersichten,...), inkludiert wird [include("Datenbank.php");]. Dazu muss sie sich jedoch im selben Ordner befinden wie die Seiten, in welche sie inkludiert wird. In die Datenbank.php - Datei kommt folgender Inhalt:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php
$sqlhost "HOSTER";
$sqluser "USERNAME";
$sqlpassword "******";
$sqldb "DATENBANK";

mysql_connect($sqlhost,$sqluser,$sqlpassword) or die ("Keine Verbindung möglich");
mysql_select_db($sqldb) or die ("Die Datenbank existiert nicht");
?>


Den oberen Absatz müsst ihr anpassen.
# Hoster ist bei cwsurf "db4.cwsurf.de", bei bplaced sowie funpic "localhost". Bei lima-city war es, wenn ich mich richtig erinnere, "mysql.lima-city.de". Ihr seht, das ist von Hoster zu Hoster unterschiedlich.
# SQL-Name ist immer euer Username (z.B. Musterhof).
# Das Passwort ist meist das gewöhnliche Passwort, nur manche Hoster (lima-city, funpic) fragen bei der Einrichtung der Datenbank nach einem speziellen MySQL-Passwort. Dann dieses nehmen ;D
# Die erste Datenbank hat für gewöhnlich den Namen eures Usernamens, also wieder "Musterhof".

Auch hier findet ihr bei Unklarheiten meist auf der Webseite eures Anbieters alle Infos die ihr braucht!

4 - Anmeldeformular, erste Seite (Daten eingeben)

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php
echo "<form method="post" action="anmeldung2.php">

<table><tr><td valign="top">Name *</td><td><input name="name" value="$name">";
if($fehler1) { echo "$fehler1"; }

echo "</td></tr><tr><td valign="top">Alter *</td><td><input name="alter" size="3" value="$alter"> Jahre";
if($fehler2) { echo "$fehler2"; }

echo "</td></tr><tr><td valign="top">Email *</td><td><input name="email" value="$email">";
if($fehler3) { echo "$fehler3"; }

echo "</td></tr><tr><td colspan="2">Selbstbeschreibung</td></tr>
<tr><td colspan="2"><textarea cols="80" rows="6" name="selbstbeschreibung">$selbstbeschreibung</textarea></td></tr>
<tr><td colspan=2><P align=right><input type="Submit" value="Absenden"></td></tr></form></table>";
?>


# Wir öffnen PHP und schreiben die HTML-Tags in eine Echo-Ausgabe. Da diese bei " beginnt und bei " aufhört, müssten wir Anführungszeichen innerhalb der Echo-Ausgabe entsprechend kennzeichnen: Mit einem \. Der form-Tag selbst sagt uns, auf welche Datei nach dem Abschicken weitergeleitet werden soll.
# Nun beginnen wir mit der ersten Tabellenzeile, "Name" und Eingabefeld, value steht für einen Wert, der bereits vorgeschrieben ist. Der User kann das natürlich wieder weglöschen bzw umändern. Da die Variable $name noch nicht definiert ist, wird jedoch vorerst nichts angezeigt, den Sinn davon erfährt ihr erst in Schritt 2.
# Nun folgt jedoch nicht wie erwartet das Ende der Zeile, sondern eine if-Anweisung. Wenn $fehler1 (...gesetzt ist), soll der Inhalt dieser Variablen (natürlich eine Fehlermeldung) ausgegeben werden (geprüft wird auf Eingabe bzw auf erlaubte Zeichen). Vorerst haben wir noch das leere Formular und keinerlei Fehlermeldungen, die da stehen.
# Dann geben wir weiter aus - hier dürfen wir nicht vergessen, die Tabellenzeile zu beenden, ehe wir die nächste anfangen. Auch beim Alter und der Mailadresse wollen wir prüfen, ob das Feld ausgefüllt ist. Die Selbstbeschreibung (Textarea) ist freiwillig.
# Zum Schluss beenden wir die vorletzte Zeile und fügen mit "Submit" den Absendebutton ein. Danach müssen wir natürlich noch form-Tag, Tabelle und php schließen.

5 - Anmeldeformular, zweite Seite (auf Fehler prüfen & eintragen)

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<?php
  $name $_POST['name'];
  $alter $_POST['alter'];
  $email $_POST['email'];
  $selbstbeschreibung $_POST['selbstbeschreibung'];

if(preg_match("/[^a-zA-ZäöüÄÖÜß[:space:]]/"$name)) { $fehler1 "<br><FONT color=blue>Der Benutzername darf nur aus Buchstaben 
und Leerzeichen bestehen.</FONT>"; }

include("Datenbank.php");
$mitglieder mysql_query("SELECT * FROM Mitglieder WHERE Name = '$name'");
if(@mysql_num_rows($namen) > 0) { $fehler1 "<br><FONT color=blue>Der gewünschte Benutzername ist schon vergeben.</FONT>"; }

if(!$name) { $fehler1 "<br><FONT color=blue>Bitte einen Benutzernamen angeben.</FONT>"; }

if(!$alter) { $fehler2 "<br><FONT color=blue>Du hast kein Alter angegeben!</FONT>"; }

if(!$email) { $fehler3 "<br><FONT color=blue>Du hast keine Mailadresse angegeben!</FONT>"; }

if(($fehler1) OR ($fehler2) OR ($fehler3)) {
  include("anmeldung.php"); } else {
  $eintrag "INSERT INTO `Mitglieder` ( `ID` , `Name` , `Alter` , `Email` , `Selbstbeschreibung` ) VALUES ('', '$name', 
  '$alter', '$email', '$selbstbeschreibung')";
  $eintragen mysql_query($eintrag); 
  if($eintragen == "true") {
    echo "Du wurdest erfolgreich als Mitglied eingetragen"; } else {
    echo "<FONT color=red>Leider konnten deine Daten nicht eingetragen werden, probier es bitte erneut</FONT>";
    include("anmeldung.php"); }
  }
?>


# Hier fragen wir erstmal die geposteten Variablen ab, wie bei jedem Formular. Danach schauen wir mit preg_match, welche Zeichen in $name enthalten sind. Erlaubt sollen Buchstaben sowie Leerzeichen sein, diese geben wir an und legen mit ^ fast, dass geprüft wird ob etwas vorkommt das nicht den angegebenen Zeichen entspricht - das ist einfacher, als diverse Sonderzeichen aufzulisten, die blockiert werden sollen. Wenn preg_match solche Zeichen findet definieren wir die Fehlermeldung, die dann unter dem Namen angezeigt wird (siehe Seite eins).
# Dann inkludieren wir die Datenbank-Datei, damit wir Zugriff auf die Datenbank haben, das brauchen wir für den nächsten Schritt.
# Nun bauen wir eine kleine Abfrage ein, wir suchen das Mitglied $name in unserer Mitgliedertabelle. Dort steht es ja bis jetzt noch nicht, es sei denn, ein anderes Mitglied hat schon den Name. Dann ist das Suchergebnis > 0 und die Fehlermeldung, der Benutzname sei schon vergeben, wird definiert.
# Anschließend prüfen wir, ob der Name leer ist. Dann geben wir als diesen Fehler doch lieber aus, dass kein Name eingeben wurde!
# Bei Alter und Mailadresse prüfen wir, ob sie eingegeben wurden.

Wenn nun einer der Fehler gesetzt wurde - was ja nur passiert, wenn es einen Fehler gibt - wird das Formular includet. Es enthält nun in allen Feldern bereits die vorhin getätigten Eingaben des Users, da wir ja die Variablen $name, $alter usw definiert haben als das vom User eingegebene. Zudem erscheinen nun all jene Fehlermeldungen, die gesetzt wurden.

Wenn keiner der Fehler gesetzt wurde
# Erst definieren wir $eintrag mit einem MySQL-Query: Es besagt dass eine Zeile eingefügt werden soll (INSERT INTO), und zwar in die Datenbanktabelle "Mitglieder". Danach wird den angegebenen Feldern der Tabelle jeweils ein Inhalt zugewiesen. Die ' ' können frei bleiben (bei ID wird Dank auto_increment automatisch die nächsthöhere ID zugewiesen), eine Variable beinhalten oder auch einfach ein Wort (z.B. für das Feld Status: 'Probemitglied' o.ä.).
# Nun wird mit $eintragen der Query ausgeführt, MySQL liefert dann entweder true oder false zurück. Je nach dem soll ausgegeben werden, ob die Anmeldung gelungen ist oder nicht. Bei einem Fehler - was eigentlich nicht vorkommen sollte - wird neben der Fehlermeldung wieder die erste Datei (mitsamt Eingaben) inkludiert.


Ich hoffe, es klappt alles und hilft euch, ansonsten könnt ihr natürlich gerne hier nachfragen bzw wenn was unklar ist, einfach schreien großes Grinsen

LG Nanni



Geschrieben von Gretchen12 am 12.06.2012 um 16:35:

 

erstmal tolles tut smile und schön erklärt, ich hab jetzt alles soweit gemacht wie du beschrieben hast, allerdings wie benutzte ich das formular jetzt? wenn ich auf eine von meinen 2 seiten (also Anmeldung.php oder anmeldung2.php) gehge kommt beides mal nur eine komplett weiße seite :/



Geschrieben von Nanni am 12.06.2012 um 20:39:

 

Eigentlich sollte auf der anmeldung.php dein Formular, auf der anmeldung2.php das Formular inklusive sämtlicher Fehlermeldungen stehen. Dein Server unterstützt php? Dann kann ich dir nur anbieten, dass du deine Code reinstellst und ich schau, ob ich Fehler finde... :/



Geschrieben von Kathy am 12.06.2012 um 23:28:

 

Hey,
super tut. Bin total Begeistert. Hat beim erstellen und einrichten auch super geklappt und kam damit klar.

Doch dann als ich getestet habe, spuckt der mir immer eine Warnungen aus und am Ende sagt er mir
Du wurdest erfolgreich als Mitglied eingetragen. Die Datenbank bleibt aber weiterhin leer.

code:
1:
2:
3:
4:
 Warning: mysql_query(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /mnt/web8/53/79/51962779/htdocs/Pferdestall/V1/anmeldung2.php on line 16

Warning: mysql_query(): A link to the server could not be established in /mnt/web8/53/79/51962779/htdocs/Pferdestall/V1/anmeldung2.php on line 16


line 16 ist bei mir folgende Zeile:
code:
1:
2:
 $mitglieder = mysql_query("SELECT * FROM Mitglieder WHERE Name = '$name'";)
 

Hast du vielleicht eine Idee woran das liegen könnte? Also was ihm daran nicht gefällt???

Vielen Lieben Dank schon einmal für deine Antwort. Herz



Geschrieben von Nanni am 12.06.2012 um 23:35:

 

Oh. Ja *schäm* Ihm fehlt die Datenbank.
Das include("Datenbank.php"); muss natürlich über der sql-Abfrage (der Zeile, die du postest) stehen, werd das gleich mal im Tut ändern großes Grinsen Jedenfalls gut, dass du Bescheid sagst!



Geschrieben von Kathy am 12.06.2012 um 23:48:

 

ahhhhhh *bing licht auf gehen*

Vielen Dank für deine Hilfe smile
Nun klappt alles, zeigt alles an, zeigt keinen fehler mehr, sagt ich bin eingetragen ... nur meine Datenbank bleibt leer xDDD
Irgendwas mach ich falsch xD
Ich mach mich mal wieder an die Fehler suche ^^



Geschrieben von Gretchen12 am 13.06.2012 um 13:39:

 

also mein server is funpic

,,Anmeldung.php"
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<?php
echo "<form method="post" action="anmeldung2.php">

<table><tr><td valign="top">Name Reiter*</td><td><input name="reiter" value="$reiter">";
if($fehler1) { echo "$fehler1"; }

echo "</td></tr><tr><td valign="top">Pferd*</td><td><input name="pferd " size="3" value="$pferd">";
if($fehler2) { echo "$fehler2"; }

echo "</td></tr><tr><td valign="top">Email *</td><td><input name="hof" value="$hof">";
if($fehler3) { echo "$fehler3"; }

<tr><td colspan=2><P align=right><input type="Submit" value="Absenden"></td></tr></form></table>";
?>


anmeldung2.php
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
 <?php
  $reiter $_POST['reiter'];
  $pferd $_POST['pferd'];
  $hof $_POST['hof'];

if(preg_match("/[^a-zA-ZäöüÄÖÜß[:space:]]/"$reiter)) { $fehler1 "<br><FONT color=blue>Der Name darf nur aus Buchstaben 
und Leerzeichen bestehen.</FONT>"; }

if(!$name) { $fehler1 "<br><FONT color=blue>Bitte trage deinen Namen ein!</FONT>"; }

if(!$alter) { $fehler2 "<br><FONT color=blue>Bitte trage dein Pferd ein!</FONT>"; }

if(!$email) { $fehler3 "<br><FONT color=blue>Bitte geh deinen Heimathof an!</FONT>"; }

if(($fehler1) OR ($fehler2) OR ($fehler3)) {
  include("Anmeldung.php"); } else {
  include("Datenbank.php");
  $eintrag "INSERT INTO `Anmeldung` ( `reiter` , `pferd` , `hof` ) VALUES ('', '$reiter', 
  '$pferd', '$hof' )";
  $eintragen mysql_query($eintrag); 
  if($eintragen "true") {
    echo "Deine Nennung wurde erfolgreich eingetragen"; } else {
    echo "<FONT color=red>Leider konnten deine Daten nicht eingetragen werden, probier es bitte erneut</FONT>";
    include("Anmeldung.php"); }
  }
?> 


:/



Geschrieben von Nanni am 13.06.2012 um 14:24:

 

In Zeile 13 (Anmeldung.php) fehlt dir
code:
1:
echo "


ehe du mit der Ausgabe der Tabelle weiter machst.

Und Kathy, für das nicht-eintragen sehe ich eigentlich keinen Fehler.. :/



Geschrieben von Gretchen12 am 13.06.2012 um 14:29:

 

juhu jetzt zeigts wenistens was an smile smile
wenn ichs allerdings abschicken will kommt bei allen 3 sachen ,,bitte geb xy an" obwohl ich alles eingetragen hab



Geschrieben von Kathy am 13.06.2012 um 19:13:

 

Zitat:
Und Kathy, für das nicht-eintragen sehe ich eigentlich keinen Fehler.. :/


ich leider auch nicht... es funktioniert ja alles, zeigt keinen Fehler an nichts und dennoch bleibt die DB leer ...
ich will gleich die DB noch mal neu aufsetzten, in der Hoffnung das es dann klappt..



Geschrieben von Oli am 13.06.2012 um 19:40:

 

php:
1:
if($eintragen "true") {
Weist $eintragen den Wert "true" zu, und gibt außerdem "true" zurück, welches dann true ist. Trifft also immer zu, auch wenn das Eintragen in die Datenbank fehlgeschlagen wäre.

Ich denke mal beabsichtigt war:
php:
1:
if($eintragen == true){
Bzw. dann gleich:
php:
1:
if($eintragen){


Außerdem könnte man - zumindenst beim Entwickeln - noch den MySQL-Fehler ausgeben, damit man den Fehler schneller findet:
php:
1:
2:
3:
4:
5:
6:
7:
//...
if($eintragen) {
    echo "Deine Nennung wurde erfolgreich eingetragen"; } else {
    echo "<FONT color=red>Leider konnten deine Daten nicht eingetragen werden, probier es bitte erneut</FONT>";
    echo " Fehler: " mysql_error(); // MySQL-Fehler anzeigen
    include("Anmeldung.php"); }
//...



Geschrieben von Kathy am 13.06.2012 um 20:04:

 

Danke Oli !!
Dank deinem Tipp mit der Fehlerausgabe, habe ich ausprobiert und hab den Fehler gefunden.
Ich hab einen Buchstaben groß geschrieben der klein geschrieben wurde. traurig

Jetzt funktioniert alles!!
Danke auch an dich Nanni, ohne dich und dein Tut hätte ich es nicht geschafft.



Geschrieben von Nanni am 13.06.2012 um 20:29:

 

Oh, ja, das = hab ich wohl beim Lesen automatisch verdoppelt Zunge raus Habs im Tut geändert.

Und bitte Kathy, freut mich dass es dir genutzt hat (:



Geschrieben von ShivaChewy am 24.08.2012 um 18:11:

 

Wie kann ich da auch ein Datum eintragen lassen?
Hab das mal mit Varchar versucht, aber das Feld bleibt in der Datenbank immer leer, wenn ich ein Datum eingebe.



Geschrieben von Nanni am 24.08.2012 um 19:58:

 

Also - grundsätzlich sollte ein Datum auch mit varchar in der Datenbank eingetragen werden, vielleicht liegt der Fehler schon in der Datumsabfrage? Ansonsten gibts timestamp und, soweit ich weiß, date dafür (an Typen, statt varchar).



Geschrieben von brain_surgery am 25.08.2012 um 12:39:

 

Huhu!
Ich misch mich mal ein, sorry <3
Für ein Datum nimmst du am besten Timestamps und speicherst sie als INT in die Datenbank.
Eine kurze Google Suche kann dir sicher die notwendigen Funktionen liefern!
>Timestamp des derzeitigen Moments
>Timestamp zurück in ein Datum umwandeln



Geschrieben von Linda Krapf am 13.04.2014 um 17:34:

 

Hey smile

Danke erstmal für das tolle Tut!

Leider funktioniert es bei mir nicht ganz, wie gewünscht. Wenn ich versuche, das Formular ausgefüllt abzuschicken, erhalte ich immer die vorgegebene Fehlermeldung, dass die Daten nicht eingetragen werden konnten und vom eingebauten "MySQL-Fehler-Anzeiger":

code:
1:
Fehler: Column count doesn't match value count at row 1 


Hier mal meine flott aber korrekt(?) zusammengebastelten Dateien:

php:
1:
<?php echo "<form method="post" action="anmeldung2.php">  <table><tr><td valign="top">Name *</td><td><input name="Name" value="$Name">"; if($fehler1) { echo "$fehler1"; }  echo "</td></tr><tr><td valign="top">Alter *</td><td><input name="Alt" size="3" value="$Alt"> Jahre"; if($fehler2) { echo "$fehler2"; }  echo "</td></tr><tr><td valign="top">Email *</td><td><input name="Rufname" value="$Rufname">"; if($fehler3) { echo "$fehler3"; }  echo "</td></tr><tr><td valign="top">Geschlecht</td><td><input name="Geschlecht" value="$Geschlecht"> <td valign="top">Kurz</td><td><input name="Kurz" value="$Kurz">";  echo "</td></tr><tr><td valign="top">Rasse</td><td><input name="Rasse" value="$Rasse">";  echo "</td></tr><tr><td valign="top">Stockmas</td><td><input name="Stockmas" value="$Stockmas"> <td valign="top">Lebensnummer</td><td><input name="Lebensnummer" value="$Lebensnummer">";  echo "</td></tr><tr><td valign="top">Schwerpunkt</td><td><input name="Schwerpunkt" value="$Schwerpunkt"> <td valign="top">Training</td><td><textarea cols="40" rows="4" name="Training">$Training</textarea>";  echo "</td></tr><tr><td valign="top">Einsatz</td><td><input name="Einsatz" value="$Einsatz"> <td valign="top">Reiter</td><td><input name="Reiter" value="$Reiter">";  echo "</td></tr><tr><td valign="top">Z&uuml;chter</td><td><input name="Zuechter" value="$Zuechter"> <td valign="top">Vorbesitzer</td><td><input name="Vorbesitzer" value="$Vorbesitzer">";  echo "</td></tr><tr><td valign="top">Vater</td><td><input name="V" value="$V"> <td valign="top">Mutter</td><td><input name="M" value="$M">";  echo "</td></tr><tr><td valign="top">Vater-Vater</td><td><input name="VV" value="$VV"> <td valign="top">Vater-Mutter</td><td><input name="VM" value="$VM">";  echo "</td></tr><tr><td valign="top">Mutter-Vater</td><td><input name="MV" value="$MV"> <td valign="top">Mutter-Mutter</td><td><input name="MM" value="$MM">";  echo "</td></tr><tr><td valign="top">Verkauft</td><td><input name="verkauft" value="$verkauft"> <td valign="top">Neubesitzer</td><td><input name="Neubesitzer" value="$Neubesitzer"</td></tr>";  echo "</td></tr><tr><td colspan="2">Charakter</td></tr> <tr><td colspan="2"><textarea cols="80" rows="6" name="Charakter">$Charakter</textarea></td></tr> <tr><td colspan=2><P align=right><input type="Submit" value="Absenden"</td></tr></form></table>";  ?>


php:
1:
<?php   $Name $_POST['Name'];   $Rufname $_POST['Rufname'];   $Geschlecht $_POST['Geschlecht'];   $Kurz $_POST['Kurz'];   $Alt $_POST['Alt'];   $Rasse $_POST['Rasse'];   $Stockmas $_POST['Stockmas'];   $Lebensnummer $_POST['Lebensnummer'];   $Schwerpunkt $_POST['Schwerpunkt'];   $Training $_POST['Training'];   $Einsatz $_POST['Einsatz'];   $Reiter $_POST['Reiter'];   $Zuechter $_POST['Zuechter'];   $Vorbesitzer $_POST['Vorbesitzer'];   $V $_POST['V'];   $M $_POST['M'];   $VV $_POST['VV'];   $VM $_POST['VM'];   $MV $_POST['MV'];   $MM $_POST['MM'];   $verkauft $_POST['verkauft'];   $Neubesitzer $_POST['Neubesitzer'];   $Charakter $_POST['Charakter'];  if(preg_match("/[^a-zA-ZäöüÄÖÜß[:space:]]/"$name)) { $fehler1 "<br><FONT color=blue>Der Benutzername darf nur aus Buchstaben  und Leerzeichen bestehen.</FONT>"; }  include("datenbank.php"); $mitglieder mysql_query("SELECT * FROM Pferd WHERE Name = '$name'"); if(@mysql_num_rows($namen) > 0) { $fehler1 "<br><FONT color=blue>Der gewünschte Benutzername ist schon vergeben.</FONT>"; }  if(!$Name) { $fehler1 "<br><FONT color=blue>Bitte einen Benutzernamen angeben.</FONT>"; }  if(!$Alt) { $fehler2 "<br><FONT color=blue>Du hast kein Alter angegeben!</FONT>"; }  if(!$Rufname) { $fehler3 "<br><FONT color=blue>Du hast keine Mailadresse angegeben!</FONT>"; }  if(($fehler1) OR ($fehler2) OR ($fehler3)) {   include("anmeldung.php"); } else {   $eintrag "INSERT INTO `Pferd` ( `ID` , `Name` , `Rufname` , `Geschlecht` , `Kurz` , `Alt` , `Rasse` , `Stockmas` , `Lebensnummer` , `Schwerpunkt` , `Training` , `Einsatz` , `Reiter` , `Zuechter` , `Vorbesitzer` , `V` , `M` , `VV` , `VM` , `MV` , `MM` , `verkauft` , `Neubesitzer` , `Charakter` )  VALUES ('', '$Name', '$Rufname', '$Geschlecht', '$Kurz' '$Alt', '$Rasse', '$Stockmas', '$Lebensnummer' '$Schwerpunkt', '$Training', '$Einsatz', '$Reiter' '$Zuechter', '$Vorbesitzer', '$V', '$M' '$VV', '$VM', '$MV', '$MM' '$verkauft', '$Neubesitzer', '$Charakter')";   $eintragen mysql_query($eintrag);    if($eintragen == "true") {     echo "Du wurdest erfolgreich als Mitglied eingetragen"; } else {     echo "<FONT color=red>Leider konnten deine Daten nicht eingetragen werden, probier es bitte erneut</FONT>";     include("anmeldung.php");  echo " Fehler: " mysql_error(); // MySQL-Fehler anzeigen }   } ?>


Danke <3



Geschrieben von *Liv am 13.04.2014 um 18:17:

 

Hey! Magst du den Code so einstellen, dass er übersichtlich untereinander steht? Dann schaue ich mir das einmal an. Die Fehlereldung sagt eigentlich schon, dass sich da ein kleiner Fehlerteufel eingeschlichen hat smile smile



Geschrieben von Nanni am 13.04.2014 um 19:15:

 

Ich hab einen Fehler gefunden, an dieser Stelle hier:

php:
1:
2:
$mitglieder mysql_query("SELECT * FROM Pferd WHERE Name = '$name'");
if(@mysql_num_rows($namen) > 0) { [...] }


Du müsstest die Variablennamen noch aneinander anpassen, also entweder $mitglieder oder $namen für beide verwenden smile



Geschrieben von Linda Krapf am 13.04.2014 um 19:27:

 

Danke, das ist nett <3

Danke Nanni, leider wars das nicht =/

Wie mache ich das denn? Beabsichtigt war es nämlich natürlich nicht, dass der Code in einer Reihe steht *kopfkratz*

Ich kann den erweiterten Editor auf diesem Computer leider nicht nutzen, deswegen füge ich mal schnell den Code so ein, oder ist das auch noch zu wirr?


<?php
echo "<form method=\"post\" action=\"anmeldung2.php\">

<table><tr><td valign=\"top\">Name *</td><td><input name=\"Name\" value=\"$Name\">";
if($fehler1) { echo "$fehler1"; }

echo "</td></tr><tr><td valign=\"top\">Alter *</td><td><input name=\"Alt\" size=\"3\" value=\"$Alt\"> Jahre";
if($fehler2) { echo "$fehler2"; }

echo "</td></tr><tr><td valign=\"top\">Email *</td><td><input name=\"Rufname\" value=\"$Rufname\">";
if($fehler3) { echo "$fehler3"; }

echo "</td></tr><tr><td valign=\"top\">Geschlecht</td><td><input name=\"Geschlecht\" value=\"$Geschlecht\">
<td valign=\"top\">Kurz</td><td><input name=\"Kurz\" value=\"$Kurz\">";

echo "</td></tr><tr><td valign=\"top\">Rasse</td><td><input name=\"Rasse\" value=\"$Rasse\">";

echo "</td></tr><tr><td valign=\"top\">Stockmas</td><td><input name=\"Stockmas\" value=\"$Stockmas\">
<td valign=\"top\">Lebensnummer</td><td><input name=\"Lebensnummer\" value=\"$Lebensnummer\">";

echo "</td></tr><tr><td valign=\"top\">Schwerpunkt</td><td><input name=\"Schwerpunkt\" value=\"$Schwerpunkt\">
<td valign=\"top\">Training</td><td><textarea cols=\"40\" rows=\"4\" name=\"Training\">$Training</textarea>";

echo "</td></tr><tr><td valign=\"top\">Einsatz</td><td><input name=\"Einsatz\" value=\"$Einsatz\">
<td valign=\"top\">Reiter</td><td><input name=\"Reiter\" value=\"$Reiter\">";

echo "</td></tr><tr><td valign=\"top\">Z&uuml;chter</td><td><input name=\"Zuechter\" value=\"$Zuechter\">
<td valign=\"top\">Vorbesitzer</td><td><input name=\"Vorbesitzer\" value=\"$Vorbesitzer\">";

echo "</td></tr><tr><td valign=\"top\">Vater</td><td><input name=\"V\" value=\"$V\">
<td valign=\"top\">Mutter</td><td><input name=\"M\" value=\"$M\">";

echo "</td></tr><tr><td valign=\"top\">Vater-Vater</td><td><input name=\"VV\" value=\"$VV\">
<td valign=\"top\">Vater-Mutter</td><td><input name=\"VM\" value=\"$VM\">";

echo "</td></tr><tr><td valign=\"top\">Mutter-Vater</td><td><input name=\"MV\" value=\"$MV\">
<td valign=\"top\">Mutter-Mutter</td><td><input name=\"MM\" value=\"$MM\">";

echo "</td></tr><tr><td valign=\"top\">Verkauft</td><td><input name=\"verkauft\" value=\"$verkauft\">
<td valign=\"top\">Neubesitzer</td><td><input name=\"Neubesitzer\" value=\"$Neubesitzer\"</td></tr>";

echo "</td></tr><tr><td colspan=\"2\">Charakter</td></tr>
<tr><td colspan=\"2\"><textarea cols=\"80\" rows=\"6\" name=\"Charakter\">$Charakter</textarea></td></tr>
<tr><td colspan=2><P align=right><input type=\"Submit\" value=\"Absenden\"</td></tr></form></table>";

?>



___________________________________________________________________________
_____________________________



<?php
$Name = $_POST['Name'];
$Rufname = $_POST['Rufname'];
$Geschlecht = $_POST['Geschlecht'];
$Kurz = $_POST['Kurz'];
$Alt = $_POST['Alt'];
$Rasse = $_POST['Rasse'];
$Stockmas = $_POST['Stockmas'];
$Lebensnummer = $_POST['Lebensnummer'];
$Schwerpunkt = $_POST['Schwerpunkt'];
$Training = $_POST['Training'];
$Einsatz = $_POST['Einsatz'];
$Reiter = $_POST['Reiter'];
$Zuechter = $_POST['Zuechter'];
$Vorbesitzer = $_POST['Vorbesitzer'];
$V = $_POST['V'];
$M = $_POST['M'];
$VV = $_POST['VV'];
$VM = $_POST['VM'];
$MV = $_POST['MV'];
$MM = $_POST['MM'];
$verkauft = $_POST['verkauft'];
$Neubesitzer = $_POST['Neubesitzer'];
$Charakter = $_POST['Charakter'];

if(preg_match("/[^a-zA-ZäöüÄÖÜß[:spaceFreude ]/", $name)) { $fehler1 = "<br><FONT color=blue>Der Benutzername darf nur aus Buchstaben
und Leerzeichen bestehen.</FONT>"; }

include("datenbank.php");
$mitglieder = mysql_query("SELECT * FROM Pferd WHERE Name = '$name'");
if(@mysql_num_rows($mitglieder) > 0) { $fehler1 = "<br><FONT color=blue>Der gewünschte Benutzername ist schon vergeben.</FONT>"; }

if(!$Name) { $fehler1 = "<br><FONT color=blue>Bitte einen Benutzernamen angeben.</FONT>"; }

if(!$Alt) { $fehler2 = "<br><FONT color=blue>Du hast kein Alter angegeben!</FONT>"; }

if(!$Rufname) { $fehler3 = "<br><FONT color=blue>Du hast keine Mailadresse angegeben!</FONT>"; }

if(($fehler1) OR ($fehler2) OR ($fehler3)) {
include("anmeldung.php"); } else {
$eintrag = "INSERT INTO `Pferd` ( `ID` , `Name` , `Rufname` , `Geschlecht` , `Kurz` , `Alt` , `Rasse` , `Stockmas` , `Lebensnummer` , `Schwerpunkt` , `Training` , `Einsatz` , `Reiter` , `Zuechter` , `Vorbesitzer` , `V` , `M` , `VV` , `VM` , `MV` , `MM` , `verkauft` , `Neubesitzer` , `Charakter` )
VALUES ('', '$Name', '$Rufname', '$Geschlecht', '$Kurz' '$Alt', '$Rasse', '$Stockmas', '$Lebensnummer' '$Schwerpunkt', '$Training', '$Einsatz', '$Reiter' '$Zuechter', '$Vorbesitzer', '$V', '$M' '$VV', '$VM', '$MV', '$MM' '$verkauft', '$Neubesitzer', '$Charakter')";
$eintragen = mysql_query($eintrag);
if($eintragen == "true") {
echo "Du wurdest erfolgreich als Mitglied eingetragen"; } else {
echo "<FONT color=red>Leider konnten deine Daten nicht eingetragen werden, probier es bitte erneut</FONT>";
include("anmeldung.php");
echo " Fehler: " . mysql_error(); // MySQL-Fehler anzeigen
}
}
?>


Forensoftware: Burning Board, entwickelt von WoltLab GmbH