einfache Fragen II einfache Antworten?

scrotum

Erfahrenes Mitglied
zum anfang will ich betonen, dass ich extremer php-neuling bin, also bitte bei den antworten umfassende erklärungen abgeben, sonst komm ich nicht draus. vielen dank.

also ich hab da ein login system, das ich von einem tutorial kopiert habe und das funktioniert auch.

nur wenn sich meine user registrieren, will ich das sie ihre emailadresse angeben müssen und ihr selber gewähltes passwort noch einmal wiederholen müssen.

Fragen:
wie kann ich prüfen ob eine mögliche emailadresse angegeben wurde? also wie kann ich überprüfen, ob ein @ und .com (oder .de oder sonst was) eingegeben wurde.

und wie kann ich überprüfen ob zweimal das gleiche passwort eingegeben worden ist? und wenn nicht das es dann eine fehlermeldung kommt?

und wie frage ich ab, ob alle benötigten felder (wie name, passwort, email) ausgefüllt worden sind?

vielen dank für die antworten schon im voraus.
 
Zuletzt bearbeitet:
1.) am besten überprüft man emailaddys mir einem regulären ausdruck in verbindung mit dem befehl preg_match() (http://de3.php.net/manual/de/function.preg-match.php).

der reguläre ausdruck für eine emailadresse ist folgender:
Code:
/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/

und wir so angewendet:
Code:
if(preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/",$emailadresse))
{
//Emailaddy ok
}
else
{
//Emailaddy fehlerhaft
}

2.) ein vergleich findet immer mit dem operator == statt:
Code:
if($passwd1 == $passwd)
{
//Passwort ok
}
else
{
//Passwörter stimmen nicht überein
}

bloddy
 
wie kann ich prüfen ob eine mögliche emailadresse angegeben wurde?
also wie kann ich überprüfen, ob ein @ und .com (oder .de oder sonst was) eingegeben
wurde.
Das erledigt dieses Codeschnippsel:
PHP:
if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$mail)){
echo "E-Mailadresse gültig!";
}
else {
echo "E-Mailadresse ungültig!";
}

und wie kann ich überprüfen ob zweimal das gleiche passwort eingegeben
worden ist? und wenn nicht das es dann eine fehlermeldung kommt?
Folgendermaßen:
Du überprüfst einfach die beiden Eingaben der Passwort-Felder gegeneinander:

PHP:
//zuerst die beiden Variablen mit dem Inhalt der beiden Form-Felder füllen
$passwd_1 = $HTTP_POST_VARS[passwd_1]; //passwd_1 ist der Name des Feldes für die erste Passwort-Eingabe
$passwd_2 = $HTTP_POST_VARS[passwd_2]; //passwd_2 ist der Name des Feldes für die Passwort-Wiederholung

//dann werden die beiden Felder gegeneinander überprüft
if ($passwd_1 == $passwd_2) {
echo "Passwortwiederholung richtig";
}
else {
echo "Passwortwiederholung falsch";
und wie frage ich ab, ob alle benötigten felder (wie name,
passwort, email) ausgefüllt worden sind?

In dem Du die Felder auf Inhalt überprüfst:

PHP:
//zuerst wieder die Variablen mit dem Inhalt der Form-Felder füllen
$feld1 = $HTTP_POST_VARS[feld1];
$feld2 = $HTTP_POST_VARS[feld2];

//dann auf Inhalt prüfen
if($feld1 == ""){
echo "Fehler: Feld1 nicht ausgefüllt!";
}
else{
echo "Alles in Butter";
}

if($feld2 == ""){
echo "Fehler: Feld2 nicht ausgefüllt!";
}
else{
echo "Alles in Butter";
}

Ich hoffe, ich konnte Dir auf die Sprünge helfen...

MfG
cyber
 
vielen dank für die antworten. habe jetzt noch ein problem. jetzt steht z.B. "falsche emailadresse" oder "Passwort nicht korrekt" auf der gleichen seite wie das ganze formular, wie kann ich machen, das man nur den text sieht "falsche emailadresse" ohne das ganze formular. also hier der code, den ich habe:

PHP:
<?php
$db = mysql_connect("localhost","root","");
$res = mysql_db_query("datenbank", "select * from register");

if ($eintragen) {
    $einfugen = mysql_query("INSERT INTO register (nachname, vorname, nickname, email, homepage, passwort, passwort2, id, datum) 
VALUES ('$nachname_send', '$vorname_send', '$nickname_send', '$email_send', '$homepage_send', '$passwort_send', '$passwort2_send', NULL, now())");
}

if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)){
echo "E-Mailadresse gültig!";
}
else {
echo "E-Mailadresse ungültig!";
}

mysql_close($db);
?>
 
Zuletzt bearbeitet von einem Moderator:
Also ich würd's so machen:

Die ganze Abfrageroutine an den Anfang des Scripts stellen.
Dann prüfen, ob die eMail-Adresse richtig ist.
Wenn nicht, wird einfach die Fehlermeldung ausgegeben, wenn die Adresse richtig ist,... keine Ahnung ... ;-)

Also so:

PHP:
<?php
$db = mysql_connect("localhost","root","");
$res = mysql_db_query("datenbank", "select * from register");

if ($eintragen) {
    $einfugen = mysql_query("INSERT INTO register (nachname, vorname,
 nickname, email, homepage, passwort, passwort2, id, datum) VALUES 
('$nachname_send', '$vorname_send', '$nickname_send', '$email_send', 
'$homepage_send', '$passwort_send', '$passwort2_send', NULL, now())");
}

if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)){
?>

Irgendwelches HTML oder vielleich tauch anderes PHP, das gemacht 
werden soll, wenn die Adresse richtig ist.

<?php
}
else {
?>


<html>
<head>
</head>
<body>
<h1>eMail falsch!!!</h1>
</body>
</html>


<?php
}
mysql_close($db);
?>

Hoffe, das hilft weiter.

MfG
cyber
 
ok, so viel quelltext ist das ja nicht, oder was meintest du? mehr als das braucht man ja nicht zu wissen, oder? das ist das ganze registrierungsformular mit php und html:

PHP:
<?php
$db = mysql_connect("localhost","root","");
$res = mysql_db_query("datenbank", "select * from register");

if ($eintragen) {
    $einfugen = mysql_query("INSERT INTO register (nachname, vorname,
 nickname, email, homepage, passwort, passwort2, id, datum) VALUES 
('$nachname_send', '$vorname_send', '$nickname_send', '$email_send', 
'$homepage_send', '$passwort_send', '$passwort2_send', NULL, now())");
}

?>
//html



also es soll:
1. bei den benötigten felder überprüfen ob etwas drin steht
2. überprüfen ob eine richtige emailadresse eingegeben worden ist (siehe oben)
3. passwort und passwort2 vergleichen, ob es das gleiche passwort ist.
 
Zuletzt bearbeitet von einem Moderator:
Zurück