[GastForen Programmierung/Entwicklung PHP und MySQL Formular mit Prüfung auf schon vorhandenen Nick

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 07:37
Beitrag # 1 von 13
Bewertung:
(4384 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen
Kann mir nicht helfen, verstehe es einfach nicht und finden tue ich auch nichts in der Richtung.
Also ich möchte ein Formular wo Leute sich Registrieren können und natürlich soll das ganze in eine DB, und das keine Probleme gibt muss geprüft werden ob der Nick oder Name schon vergeben ist.
Da wo ich hänge, ist bei der prüfung, hat jemand ein Beispiel oder einen Link wo es für einen Anfänger verständlich und anschaulich erklährt ist.
So ein Beispiel wie das Formular hier bei der Registrierung (hilfdirselbst.ch) wäre eine große hilfe.
Danke
X

Formular mit Prüfung auf schon vorhandenen Nick

randy
Beiträge gesamt: 436

29. Jun 2005, 08:48
Beitrag # 2 von 13
Beitrag ID: #174936
Bewertung:
(4378 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mach doch folgendes:

Du nimmst die Daten per GET oder POST und zuallerst machst Du ein SELECT über die DB a la

SELECT * from tab WHERE user ='$_POST['nick']

kommt ein Ergebnis zurück, dann existiert der Nick schon, wenn nicht, dann das Insert.

Um das weiter zu konkretisieren, benötigen wir etwas mehr.


als Antwort auf: [#174931]

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 10:02
Beitrag # 3 von 13
Beitrag ID: #174963
Bewertung:
(4372 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich müsste aber drei Felder pro Datensatz prüfen, wie mache ich das ...
Jetzt einmal muss ich das ausprobieren, danke


als Antwort auf: [#174936]

Formular mit Prüfung auf schon vorhandenen Nick

randy
Beiträge gesamt: 436

29. Jun 2005, 10:21
Beitrag # 4 von 13
Beitrag ID: #174973
Bewertung:
(4367 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
user ='$_POST['nick']' AND feld2='$_POST['feld2']' AND feld3='$_POST['feld3']


als Antwort auf: [#174963]

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 11:20
Beitrag # 5 von 13
Beitrag ID: #174988
Bewertung:
(4365 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, aber komm mit dem nicht klar, ist für mich nicht verständlich.
Hat vielleicht oder kennt jemand ein Link oder scrip wo man sowas genau nachvollziehen kann wie soetwas funk. evt. mit erklährung.

Es gibt ja haufenweise scripte mit erklährungen aber habe eben nicht eines in so einer Art gefunden, nehme an alle können es ja schon, aber was ist mit denen die gerade anfangen damit?
Naja, wenns nicht anders geht, muss man halt die großen scripte durchstudieren, verzweiflung!!!


als Antwort auf: [#174973]

Formular mit Prüfung auf schon vorhandenen Nick

randy
Beiträge gesamt: 436

29. Jun 2005, 14:25
Beitrag # 6 von 13
Beitrag ID: #175057
Bewertung:
(4344 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
SELECT * from tab WHERE user ='$_POST['nick']' AND feld2='$_POST['feld2']' AND feld3='$_POST['feld3']

Okay wenn Du mehrere Felder hast aus einem Formular die überprüft werden sollen dann funktioniert das wie folgt

Zur Erläuterung
im Formular gibt es ein Feld1 (name="formFeld1") und ein Feld2 (name="formFeld2") und ein Feld3 (name="formFeld3"
in der DB gibt es auch ein Feld1 (Spaltenname DBFeld1) und Feld2...

Jetzt sollen die Formularfelder gegen die DB Felder geprüft werden, das macht man mit einem SELECT und bindet die formFelder mittels $_POST in einen String ein, zur Sicherheite(sql-injection) schreibt man davor addslashes.

$sql= "SELECT * FROM myTabelle WHERE DBFeld1='.addslashes($_POST['formFeld1'])." AND DBFELD2='.addslashes($_POST['formFeld2']).' AND DBFeld3='.addslashes($_POST['formFeld3']).'";

Jetzt kommt der Ramsch mit dem mysq_query($sql);

okay?


als Antwort auf: [#174988]

Formular mit Prüfung auf schon vorhandenen Nick

Pozor
Beiträge gesamt: 892

29. Jun 2005, 17:35
Beitrag # 7 von 13
Beitrag ID: #175116
Bewertung:
(4340 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

verwendet nie die "rohen" Daten die vom Browser kommen!
-> SQL injection

mysql_escape_string() //Strings
intval() //integer
etc.


als Antwort auf: [#175057]

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 20:04
Beitrag # 8 von 13
Beitrag ID: #175156
Bewertung:
(4333 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke erstmal, aber irgendwo habe ich einen Hund drin, bekomme immer die Fehlermeldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\apachefriends\xampp\htdocs\filawelt_com\BildVerwaltung\inc\TMPo46gyius60.php on line 3

___1 ZEILE__<?php // name dieses script "personendaten_auslesen.inc.php"
___2 ZEILE__include ("tb_oeffnen.inc.php"); // DB öffnen
___3 ZEILE__$sql="SELECT * FROM tb_name_blindelinse WHERE Name_Nachname='.addslashes($_POST['strNachname']).' AND Name_Vorname='.addslashes($_POST['strVorname']).' AND Name_Zusatz='.addslashes($_POST['strZusatz']).'";
___4 ZEILE__$ergebnis=mysql_query($sql);
___5 ZEILE__?>

<?php // name dieses script "tb_oeffnen.inc.php
/*******/
$con_server = "localhost"; // Adresse des mySQL-Server
$con_user = "root"; // Benutzername
$con_pass = ""; // Passwort
$con_db = "filawelt_2"; // Datenbank
/*******/
$mysql_conn = @mysql_connect($con_server, $con_user, $con_pass);
if ($mysql_conn != TRUE)
{ echo "Es kommte keine Verbindung mit der Datenbank hergestellt werden! Fehlermeldung: <br /><br />".mysql_error();
die;
} mysql_select_db($con_db, $mysql_conn);
?>

<?PHP // name dieses script "personen_neuerror.inc.php
// einlesen von Post´s
$strNachname=htmlentities($_POST['strNachname']);
$strVorname=htmlentities($_POST['strVorname']);
$strZusatz=htmlentities($_POST['strZusatz']);
$strGeburtsdatum=htmlentities($_POST['strGeburtsdatum']);
$strGeburtsort=htmlentities($_POST['strGeburtsort']);
// error auf 0
$intError=0; ?>
<fieldset>
<legend>Neue Person überprüfen</legend>
<form name="input1" id="input1" method="post" action="<?PHP echo($PHP_SELF) ?>">
<label for="strNachname" class="left">Nachname:</label>
<?PHP if ($strNachname!="")
{ echo $strNachname;
?><input name="strNachname" type="hidden" value="<?PHP echo $strNachname; ?>" /><?PHP
}
else
{ $intError=1;
?><input type="text" name="strNachname" align="right" style="background: #ff0000;" /><?PHP
} ?>
<br />
<label for="strVorname" class="left">Vorname:</label>
<?PHP if ($strVorname!="")
{ echo $strVorname;
?><input name="strVorname" type="hidden" value="<?PHP echo $strVorname; ?>" /><?PHP
}
else
{ $intError=1;
?><input type="text" name="strVorname" align="right" style="background: #ff0000;" /><?PHP
} ?>
<br />
<label for="strZusatz" class="left">Zusatz:</label>
<?PHP
___ZEILE__include ("personendaten_auslesen.inc.php");
___ZEILE__if (($strZusatz!="")||($ergebnis=???)) /*******???????*******/
{ echo $strZusatz;
?><input name="strZusatz" type="hidden" value="<?PHP echo $strZusatz; ?>" /><?PHP
}
else
{ $intError=1;
?><input type="text" name="strZusatz" align="right" style="background: #ff0000;" /><?PHP
} ?>
<br />
<label for="strGeburtsdatum" class="left">Geburtsdatum:</label>
<?PHP if ($strGeburtsdatum=="")
{ $strGeburtsdatum=date('d.m.Y');
$intError=1
?><input name="strGeburtsdatum" type="text" size="10" maxlength="10" align="right" value="<?PHP echo $strGeburtsdatum; ?>" style="background: #ff0000;" /><?PHP
}
else
{ $arrDatePart=explode(".", $strGeburtsdatum);
if (checkdate($arrDatePart[1], $arrDatePart[0], $arrDatePart[2]))
{ echo ($strGeburtsdatum);
?><input name="strGeburtsdatum" type="hidden" value="<?PHP echo $strGeburtsdatum; ?>" /><?PHP
}
else
{ ?><input name="strGeburtsdatum" type="text" size="10" maxlength="10" align="right" value="<?PHP echo date('d.m.Y'); ?>" style="background: #ff0000;" /><?PHP
$intError=1;
}
} ?>
(MM.DD.YYYY)<br>
<label for="strGeburtsort" class="left">Geburtsort:</label>
<?PHP
if ($strGeburtsort!="")
{ echo $strGeburtsort;
?><input name="strGeburtsort" type="hidden" value="<?PHP echo $strGeburtsort; ?>" /><?PHP
}
else
{ $intError=1;
?><input type="text" name="strGeburtsort" align="right" style="background: #ff0000;" /><?PHP
}
?>
<br /><br />
<label for="" class="left"></label>
<?PHP if ($intError==1)
{ ?>
<input name="intStep" type="hidden" value="1" />
<?PHP
}
else
{ ?>
<input name="intStep" type="hidden" value="2" />
<?PHP
} ?>
<input name="strAction" type="hidden" value="new" />
<?PHP if ($intError==1)
{ ?>
<input type="submit" name="Submit" value="Berichtigen" class="button" />
<?PHP
}
else
{ ?>
<input type="submit" name="Submit" value="Speichern" class="button" />
<?PHP
} ?>
</form>
</fieldset>


als Antwort auf: [#175116]

Formular mit Prüfung auf schon vorhandenen Nick

Intermedia
Beiträge gesamt: 1287

29. Jun 2005, 20:19
Beitrag # 9 von 13
Beitrag ID: #175163
Bewertung:
(4323 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

glaub da ist ein Syntaxfehler, versuchs mal so:

$sql="SELECT * FROM tb_name_blindelinse WHERE Name_Nachname='".addslashes($_POST['strNachname'])."' AND Name_Vorname='".addslashes($_POST['strVorname'])."' AND Name_Zusatz="'.addslashes($_POST['strZusatz']).'";
Hoffe hab da nichts vergessen.;-)

Hier mal ein Beispiel wie es bei mir funktioniert:

$query="SELECT * FROM $int_db_benutzer where handie = '".addslashes($_REQUEST[handy])."' and bn = '".addslashes($_REQUEST[bn])."'";

Zumindest stimmt der Syntax.

Viel Erfolg!

Gruß Sven


als Antwort auf: [#175156]
(Dieser Beitrag wurde von Intermedia am 29. Jun 2005, 20:21 geändert)

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 20:29
Beitrag # 10 von 13
Beitrag ID: #175166
Bewertung:
(4316 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, und wie sieht das mit den zwei Zeilen aus, ganzer Code ist oben.

___ZEILE__include ("personendaten_auslesen.inc.php");
___ZEILE__if (($strZusatz!="")||($ergebnis=???)) /*******???????*******/

In der zweiten Zeile, keine Ahnung wie ich das schreiben soll!!


als Antwort auf: [#175163]

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 20:44
Beitrag # 11 von 13
Beitrag ID: #175168
Bewertung:
(4311 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das mit den """"" hat hingehaut, die Fehlermeldung ist weg, aber das ander da muss ich mich noch schlau machen, danke.


als Antwort auf: [#175166]

Formular mit Prüfung auf schon vorhandenen Nick

Intermedia
Beiträge gesamt: 1287

29. Jun 2005, 20:51
Beitrag # 12 von 13
Beitrag ID: #175171
Bewertung:
(4304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Na also, geht doch ;-)

Ich hab nur mal fix über den Code gesehen aber was passiert in der:
___ZEILE__include ("personendaten_auslesen.inc.php");

und was soll in $ergebnis stehen?
___ZEILE__if (($strZusatz!="")||($ergebnis=???)) /*******???????*******/

Hab leider diese Woche keine Zeit mich mal etwas näher damit zu beschäftigen. :-(

Vielleicht fällt hier noch jemanden was dazu ein.

Gruß Sven


als Antwort auf: [#175168]

Formular mit Prüfung auf schon vorhandenen Nick

blindelinse
Beiträge gesamt: 12

29. Jun 2005, 21:06
Beitrag # 13 von 13
Beitrag ID: #175175
Bewertung:
(4303 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Na also, geht doch ;-)

//Ich hab nur mal fix über den Code gesehen aber was passiert in der:
//___ZEILE__include ("personendaten_auslesen.inc.php");

Hier wird der oberste Script eingebunden, da ist auch der vorhin besprochene Code enthalten, keine Ahnung ob ich den an der richtigen stelle eingebunden habe, aber da sollte er spätestens prüfen ob alle drei Felder mit dem gleichen Eintrag, schon vorhanden sind.


//und was soll in $ergebnis stehen?
//___ZEILE__if (($strZusatz!="")||($ergebnis=???)) /*******???????*******/

Und hier sollte das ($ergebnis==wahr) zurückliefern, ansonsten wird es in die DB eingetragen.


als Antwort auf: [#175171]
X