Zurück tutorials.de > Programming > PHP

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


4 kostenlose Bücher bei unserer Buch-Verschenkaktion 03/2010
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 13.09.07, 15:22   #1 (permalink)
 
Benutzerbild von philishake  
 
Registriert seit: Apr 2004
Ort: Berlin
Beiträge: 171
Renommee-Modifikator: 0
philishake kann nur auf Besserung hoffen

Frage Fehler bei Formularübergabe

Hi liebe Community,

ich habe ein recht witziges Problem. Ich habe ein Formular für die Registrierung eines Browsergames. Da muss man Nickname, Passwort+Kontrolle, E-Mail+Kontrolle und Häuptlingsgeschlecht angeben. Nur Leider gibt er wenn ich es überliefere a) immer aus das keine E-Mailadresse angegeben wurde und b) meckert er nicht, dass das Häuptlingsgeschlecht nicht gewählt wurde.

Das Formular:
HTML-Code:
<form action="anmelden2.php" method="POST">
<table border=0>
<tr> <td> <input type="text" name="nick" size="20"> 			 </td> <td> Username*             </td> </tr>
<tr> <td> <input type="text" name="email" size="20"> 			 </td> <td> E-Mail Adresse        </td> </tr>
<tr> <td> <input type="text" name="email2" size="20"> 		 </td> <td> E-Mail Wiederholung   </td> </tr>
<tr> <td> <input type="password" name="password" size="20"> 	 </td> <td> Passwort              </td> </tr>
<tr> <td> <input type="password" name="password2" size="20"> </td> <td> Passwort Wiederholung </td> </tr>
<tr> <td> H&auml;uptling: </td> <td> <input type="radio" name="gender" value="male"> m&auml;nnlich  </td> </tr>
<tr> <td> <input type="submit" value="Anmelden" /> </td> <td> <input type="radio" name="gender" value="female"> weiblich     </td> </tr>
</table>
Das PHP-Skript:
PHP-Code:
$error = array();
$e 0;

if(
$_REQUEST['nick'] == "")                                    { $error[1] = "Nickname wurde nicht angegeben<br>";     $e 1; }

if(
$_REQUEST['email'] == "" OR $_REQUEST['email2'] == "") { $error[2] = "E-Mail wurde nicht angegeben<br>";       $e 1; }
if(
$_REQUEST['email'] != $_REQUEST['email2'])              { $error[3] = "E-Mails stimmen nicht &uuml;berein<br>"$e 1; }

if(
$_REQUEST['passowrd'] == "" OR $_REQUEST['passowrd2'] == "") { $error[4] = "Passwort wurde nicht angegeben<br>"$e 1; }
if(
$_REQUEST['password'] != $_REQUEST['password2'])              { $error[5] = "Passw&ouml;rter stimmen nicht &uuml;berein<br>"$e 1; }


if(isset(
$_REQUEST['gender'])) { $error[4] = "Kein H&auml;uptlingsgeschlecht gewählt<br>"$e 1; } 
                    
// Prüfe Nickname Länge
$check_nick_lenght strlen($_REQUEST['nick']);
if(
$check_nick_lenght 21) { $error[6] = "Nickname ist zu lang<br>"$e 1; }
if(
$check_nick_lenght 4)  { $error[7] = "Nickname ist zu kurz<br>"$e 1; }
// Prüfe Nickname auf Leerzeichen
$check_nick strrpos($_REQUEST['nick']," ");
if(
$check_nick == "") { $check_nick 0; }
if(
$check_nick >= 1)  { $error[8] = "Nickname enth&auml;lt Leerzeichen<br>"$e 1;  }
// Prüfe Mail auf @
$check_mail_at strrpos($_REQUEST['email'],"@");
if(
$check_mail_at == 1) { $check_mail_at 0; }
if(
$check_mail_at == "")  { $error[9] = "E-Mail enth&auml;lt kein \"@\"<br>"$e 1;  }
// Prüfe Mail auf .
$check_mail_dot strrpos($_REQUEST['email'],".");
if(
$check_mail_dot == 1) { $check_mail_dot 0; }
if(
$check_mail_dot == "")  { $error[10] = "E-Mail enth&auml;lt kein \".\"<br>"$e 1;  }


if(
$e == 1)
{
    print(
"<font color=yellow>");
    if(
$error[1] != "") { print($error[1]."<br>"); }
    if(
$error[2] != "") { print($error[2]."<br>"); }
    if(
$error[3] != "") { print($error[3]."<br>"); }
    if(
$error[4] != "") { print($error[4]."<br>"); }
    if(
$error[5] != "") { print($error[5]."<br>"); }
    if(
$error[6] != "") { print($error[6]."<br>"); }
    if(
$error[7] != "") { print($error[7]."<br>"); }
    if(
$error[8] != "") { print($error[8]."<br>"); }
    if(
$error[9] != "") { print($error[9]."<br>"); }
    if(
$error[10] != "") { print($error[10]."<br>"); }
    print(
"</font><br>"); 
Danke schon mal im vorraus, für alle Antworten.

MfG philishake
__________________
...holiday from happiness...

...be water...

visit: www.silent-wars.de
  philishake ist offline  
 
Alt 13.09.07, 16:40   #2 (permalink)
 
Benutzerbild von philishake  
 
Registriert seit: Apr 2004
Ort: Berlin
Beiträge: 171
Renommee-Modifikator: 0
philishake kann nur auf Besserung hoffen

AW: Fehler bei Formularübergabe

Mittlerweile gibt er alle Fehler richtig aus. Aber er sagt mir immer, dass kein 2tes PW oder MAIL angegeben wurde und das die nicht übereinstimmen. Und er meckert nun auch, wenn kein Häuptlingsgeschlecht gewählt wurde. Aber wie geasgt, der Rest stimmt nicht.
__________________
...holiday from happiness...

...be water...

visit: www.silent-wars.de

Geändert von philishake (13.09.07 um 16:42 Uhr).
  philishake ist offline  
 
Alt 13.09.07, 16:53   #3 (permalink)
Mitglied Bronze
 
Registriert seit: Feb 2007
Beiträge: 41
Renommee-Modifikator: 0
blade runner hat eine blütenweiße Weste

AW: Fehler bei Formularübergabe

Hallo,
erst einmal solltest Du das Formular schließen,
dann von (Geschlecht)
Code:
if(isset($_REQUEST['gender'])) { $error[4] = "Kein H&auml;uptlingsgeschlecht gewählt<br>"; $e = 1; }
nach
Code:
if(!isset($_REQUEST['gender'])) { $error[4] = "Kein H&auml;uptlingsgeschlecht gewählt<br>"; $e = 1; }
und von (Password)
Code:
if($_REQUEST['passowrd'] == "" OR $_REQUEST['passowrd2'] == "") { $error[4] = "Passwort wurde nicht angegeben<br>"; $e = 1; }
nach
Code:
if($_REQUEST['password'] == "" OR $_REQUEST['password2'] == "") { $error[4] = "Passwort wurde nicht angegeben<br>"; $e = 1; }
Die email läuft bei mir.
  blade runner ist offline  
 
Alt 13.09.07, 16:55   #4 (permalink)
 
Benutzerbild von philishake  
 
Registriert seit: Apr 2004
Ort: Berlin
Beiträge: 171
Renommee-Modifikator: 0
philishake kann nur auf Besserung hoffen

AW: Fehler bei Formularübergabe

Okay, ich bin wieder einen Schritt weiter. Nun werden nurnoch diese Fehler ausgegen, trotz korrekter Ausfüllung des Formulars:

HTML-Code:
E-Mail enthält kein "@"
E-Mailcheck enthält kein "@"
Passwort wurde nicht angegeben
Hier der aktuelle PHP-Code:

PHP-Code:
<?
$error 
= array();
$e 0;

if(
$_REQUEST['nick'] == "")                                    { $error[1] = "Nickname wurde nicht angegeben<br>";     $e 1; }

if(
$_REQUEST['email'] == "" OR $_REQUEST['email2'] == "") { $error[2] = "E-Mail wurde nicht angegeben<br>";       $e 1; }
if(
$_REQUEST['email'] != $_REQUEST['email2'])              { $error[3] = "E-Mails stimmen nicht &uuml;berein<br>"$e 1; }

if(
$_REQUEST['passowrd'] == "" OR $_REQUEST['passowrd2'] == "") { $error[4] = "Passwort wurde nicht angegeben<br>"$e 1; }
if(
$_REQUEST['password'] != $_REQUEST['password2'])              { $error[5] = "Passw&ouml;rter stimmen nicht &uuml;berein<br>"$e 1; }


if(isset(
$_REQUEST['gender'])) {  } 
else { 
$error[11] = "Kein H&auml;uptlingsgeschlecht gew&auml;hlt<br>"$e 1; }
                    
// Prüfe Nickname Länge
$check_nick_lenght strlen($_REQUEST['nick']);
if(
$check_nick_lenght 21) { $error[6] = "Nickname ist zu lang<br>"$e 1; }
if(
$check_nick_lenght 4)  { $error[7] = "Nickname ist zu kurz<br>"$e 1; }
// Prüfe Nickname auf Leerzeichen
$check_nick strrpos($_REQUEST['nick']," ");
if(
$check_nick == "") { $check_nick 0; }
if(
$check_nick >= 1)  { $error[8] = "Nickname enth&auml;lt Leerzeichen<br>"$e 1;  }
// Prüfe Mail auf @
$check_mail_at strrpos($_REQUEST['email'],"&");
if(
$check_mail_at == 1) { $check_mail_at 0; }
elseif(
$check_mail_at == "")  { $error[9] = "E-Mail enth&auml;lt kein \"@\"<br>"$e 1;  }
// Prüfe Mail auf .
$check_mail_dot strrpos($_REQUEST['email'],".");
if(
$check_mail_dot == 1) { $check_mail_dot 0; }
elseif(
$check_mail_dot == "")  { $error[10] = "E-Mail enth&auml;lt kein \".\"<br>"$e 1;  }
// Prüfe Mail2 auf @
$check_mail_at strrpos($_REQUEST['email2'],"&");
if(
$check_mail_at == 1) { $check_mail_at 0; }
elseif(
$check_mail_at == "")  { $error[12] = "E-Mailcheck enth&auml;lt kein \"@\"<br>"$e 1;  }
// Prüfe Mai2l auf .
$check_mail_dot strrpos($_REQUEST['email2'],".");
if(
$check_mail_dot == 1) { $check_mail_dot 0; }
elseif(
$check_mail_dot == "")  { $error[13] = "E-Mailcheck enth&auml;lt kein \".\"<br>"$e 1;  }



if(
$e == 1)
{
    print(
"<font color=yellow>");
    print(
$error[1]);
    print(
$error[6]);
    print(
$error[7]);
    print(
$error[8]);
    print(
$error[2]);
    print(
$error[3]);
    print(
$error[9]);
    print(
$error[10]);
    print(
$error[12]);
    print(
$error[13]);
    print(
$error[4]);
    print(
$error[5]);
    print(
$error[11]);
    print(
"</font><br>");

    
?>
    <form action="anmelden2.php" method="post">
    <table border=0>
    <tr> <td> <input type="text" name="nick" size="20" value=<?=$_REQUEST['nick']?>>     </td> <td> Username*             </td> </tr>
    <tr> <td> <input type="text" name="email" size="20" value=<?=$_REQUEST['email']?>> </td> <td> E-Mail Adresse        </td> </tr>
    <tr> <td> <input type="text" name="email2" size="20" value=<?=$_REQUEST['email2']?>>          </td> <td> E-Mail Wiederholung   </td> </tr>
    <tr> <td> <input type="password" name="password" size="20" value=<?=$_REQUEST['password']?>>      </td> <td> Passwort              </td> </tr>
    <tr> <td> <input type="password" name="password2" size="20" value=<?=$_REQUEST['password2']?>> </td> <td> Passwort Wiederholung </td> </tr>
    <tr> <td> H&auml;uptling: </td> <td> <input type=radio name=gender value=male> m&auml;nnlich  </td> </tr>
    <tr> <td> <input type="submit" value="Anmelden" /> </td> <td> <input type=radio name=gender value=female> weiblich     </td> </tr>
    </table>
    <br>
    *Maximal 4-21 Zeichen <br>
    *Erlaubt sind folgende Zeichen: a-z | A-Z | 0-1 | - und _<br>
    *Der Nickname darf <b>keine</b> Leerzeichen enthalten <br>
    </form>   
    <?php

}
else
{
    
//include ("anmelden_inc.php"); 
    
print("ALLES OK");
}
__________________
...holiday from happiness...

...be water...

visit: www.silent-wars.de
  philishake ist offline  
 
Alt 13.09.07, 17:22   #5 (permalink)
 
Benutzerbild von philishake  
 
Registriert seit: Apr 2004
Ort: Berlin
Beiträge: 171
Renommee-Modifikator: 0
philishake kann nur auf Besserung hoffen

AW: Fehler bei Formularübergabe

Ok, habs nun selbst hinbekomment. Hatte bei strpos() anstatt @ ein & eingesetzt. Das Password wurde nicht übergeben weil ich nach "passowrd" und nicht nach "password" fragt. Danke an BladeRunner
__________________
...holiday from happiness...

...be water...

visit: www.silent-wars.de

Geändert von philishake (13.09.07 um 17:25 Uhr).
  philishake ist offline  
 
Alt 13.09.07, 19:23   #6 (permalink)
 
Benutzerbild von Gumbo tutorials.de Moderator 
 
Registriert seit: Dec 2002
Ort: Trier
Beiträge: 17.511
Renommee-Modifikator: 96
Gumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes AnsehenGumbo genießt hohes Ansehen

AW: Fehler bei Formularübergabe

Du kannst es dir auch etwas bequemer machen, in dem du die Überprüfung der Werte automatisiert, beispielsweise:
PHP-Code:
<?php

    $errors 
= array();
    
$required = array(
        
'_POST' => array(
            
'nick'      => 'Nickname wurde nicht angegeben!',
            
'email'     => 'E-Mail wurde nicht angegeben!',
            
'email2'    => 'Wiederholung der E-Mail-Adresse wurde nicht angegeben!',
            
'password'  => 'Passwort wurde nicht angegeben!',
            
'password2' => 'Wiederholung des Passworts wurde nicht angegeben!',
            
'gender'    => 'Kein Häuptlingsgeschlecht ausgewählt!',
        ),
    );

    if( 
$_SERVER['REQUEST_METHOD'] == 'POST' ) {
        foreach( 
$required as $method => $args ) {
            if( isset(
$GLOBALS[$method]) {
                foreach( 
$args as $key => $val ) {
                    if( !isset(
$GLOBALS[$method][$key]) || trim($GLOBALS[$method][$key]) == '' ) {
                        
$errors[] = $val;
                    }
                }
            }
        }

        if( empty(
$errors) ) {
            if( 
$_POST['email'] != $_POST['email2'] ) {
                
$errors[] = 'Die angegebene E-Mail-Adresse und die Bestätigung dieser stimmen nicht überein!';
            }
            if( 
$_POST['password'] != $_POST['password2'] ) {
                
$errors[] = 'Das angegebene Passwort und die Bestätigung dieses stimmen nicht überein!';
            }
            
// Prüfe Nickname-Länge
            
$check_nick_lenght strlen($_POST['nick']);
            if( 
$check_nick_lenght 21 ) {
                
$errors[] = "Nickname darf höchstens 21 Zeichen lang sein!";
            }
            if( 
$check_nick_lenght ) {
                
$errors[] = "Nickname muss mindestens 4 Zeichen lang sein!";
            }
            
// Prüfe Nickname auf Leerzeichen
            
if( preg_match('/\s/'$_POST['nick']) ) {
                
$errors[] = "Nickname darf keine Leerzeichen enthalten!";
            }
            
// Prüfe E-Mail-Syntax
            
if( !preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,5}$/'$_POST['email']) ) {
                
$errors[] = 'E-Mail-Adresse muss das Muster <code>user@example.net</code> haben!";
            }
        }
    }

    if( !empty($errors) ) {
        echo '
<div class="note error"><ul>';
        echo '
<li>'.explode('</li><li>', $errors).'</li>';
        echo '
</ul></div>';
?>
    <form action="anmelden2.php" method="post"> 
    <table border=0> 
    <tr> <td> <input type="text" name="nick" size="20" value="<?php echo isset($_POST['
nick']) ? htmlspecialchars($_POST['nick']) : ''; ?>">     </td> <td> Username*             </td> </tr> 
    <tr> <td> <input type="text" name="email" size="20" value="<?php echo isset($_POST['
email']) ? htmlspecialchars($_POST['email]); ?>"> </td> <td> E-Mail-Adresse        </td> </tr> 
    <tr> <td> <input type="text" name="email2" size="20" value="">          </td> <td>Bestätigung der E-Mail-Adresse   </td> </tr>
    <tr> <td> <input type="password" name="password" size="20" value="">      </td> <td> Passwort              </td> </tr> 
    <tr> <td> <input type="password" name="password2" size="20" value=""> </td> <td> Bestätigung des Passworts </td> </tr> 
    <tr> <td> Häuptling: </td> <td> <input type="radio" name="gender" value="male"> männlich  </td> </tr> 
    <tr> <td> <input type="submit" value="Anmelden" /> </td> <td> <input type="radio" name="gender" value="female"> weiblich     </td> </tr>
    </table> 
    <br> 
    *Maximal 4-21 Zeichen <br> 
    *Erlaubt sind folgende Zeichen: a-z | A-Z | 0-1 | - und _<br> 
    *Der Nickname darf <b>keine</b> Leerzeichen enthalten <br> 
    </form>    
<?php

    
} else {

        
// include ("anmelden_inc.php");
        
print("ALLES OK"); 
    }

?>
Ich hoffe es klappt.
__________________
Markus Wulftange
  Gumbo ist offline  
 
Alt 21.09.07, 12:46   #7 (permalink)
 
Benutzerbild von philishake  
 
Registriert seit: Apr 2004
Ort: Berlin
Beiträge: 171
Renommee-Modifikator: 0
philishake kann nur auf Besserung hoffen

AW: Fehler bei Formularübergabe

Wow, Danke Gumbo, vom ersten Überblick siehts es schonmal sehr gut aus. Ich werde mich mal ranmachen dies zu testen
__________________
...holiday from happiness...

...be water...

visit: www.silent-wars.de
  philishake ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
Prototype und Formularübergabe notebook20000 Javascript & Ajax 4 17.04.07 16:50
fehler bei tutorials ? fehler beim löschen einer zeile aus einer txt -GS-Master PHP 5 20.02.06 19:36
Formularübergabe an Datenbank und neuer Seite kippi01 PHP 2 03.06.05 13:55
Formularübergabe an Ergebnissseite und Reload HammerHe@rt PHP 1 05.08.04 09:58
Newbie Problem :: Formularübergabe Mojo Flash 3 17.10.01 20:30
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 138
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 265
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 154
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 104
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 195
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 80,61%
158 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 19,39%
38 Stimmen
Stimmen gesamt: 196
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,22274 Sekunden mit 26 queries