php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2008, 16:20  
vyo
Benutzer
 
Registriert seit: 13.11.2008
Beiträge: 47
vyo befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Validierung mit Arrays

Hallo,

ich arbeite quasi zum ersten Mal mit Arrays und möchte eine Validierung eines Registrierungs-Formulars vornehmen.

Dies ist der Code bisher:

PHP-Code:
if ($_POST['register'] AND strlen($prename) < 2) { $a=1; }
if (
$_POST['register'] AND strlen($surname) < 2) { $b=1; }
if (
$_POST['register'] AND !eregi('^[A-Z]+(-?.?[0-9A-Z]+)+@{1}([0-9A-Z-]+.{1})+([A-Z]{2,4})$',$mail_1)) { $c=1; }
if (
$_POST['register'] AND $mail_2 != $mail_1) { $d=1; }
if (
$_POST['register']) { $count mysql_fetch_array(mysql_query("SELECT COUNT(id) FROM users WHERE email='$mail_1'")); }
if (
$_POST['register'] AND !empty($count[0])) { $e=1; }
if (
$_POST['register'] AND empty($gender)) { $f=1; }
if (
$_POST['register'] AND empty($day) AND empty($month) AND empty($year)) { $g=1; }
if (
$_POST['register'] AND empty($agb)) { $h=1; }

# Array zur Validierung #
$validate = array(=> "$a","$b","$c","$d","$e","$f","$g","$h");

foreach (
$validate as $error) { echo "$error"; }

if (
$_POST['register'] AND empty($validate)) { echo "Keine Fehler"; }
else { 

echo 
"Fehler:"
foreach (
$validate as $error) { echo "$error"; }


Ich setze also immer die Variable $a, $b, $c, usw., wenn es einen Fehler gibt bei der Eingabe. Dann wollte ich die jeweiligen Fehler dem Array zuordnen, dass ich mit

PHP-Code:
if ($_POST['register'] AND empty($validate)) 
die Fehler-Variablen dem Array zuordne, doch funktioniert das nicht so wirklich. Ich kriege komischerweiße außerdem immer die Ausgabe des echo's "Fehler:", auch wenn $_POST['register'] (Also das Klicken auf den Sende-Button) garnicht ausgeführt wurde.

Hoffe mir kann jemand helfen bzw. Alternativen vorschlagen!

LG
vyo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.12.2008, 16:51  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Lass Die das Feld $validate mal mit
PHP-Code:
echo '<pre>'var_dump($validate); echo '</pre>'
ausgeben.
Du wirst sehen, dass das Feld auch dann Elemente hat, wenn $a,$b... leer sind.

Du brauchst die einzelnen Variablen nicht. Du kannst auch dem Feld direkt und nur bei Bedarf Elemente hinzufügen.
PHP-Code:
if ($_POST['register'] AND strlen($prename) < 2) {
    
$validate[] = 'Vorname fehlt';
}
if (
$_POST['register'] AND strlen($surname) < 2) {
    
$validate[] = 'Nachname fehlt';
}
if (
$_POST['register'] AND !eregi('^[A-Z]+(-?.?[0-9A-Z]+)+@{1}([0-9A-Z-]+.{1})+([A-Z]{2,4})$',$mail_1)) {
    
$validate[] = 'ungültige EMail-Adresse';
}

foreach (
$validate as $error) {
    echo 
$error"<br />";

Warum benutzt Du eigentlich $_POST['register'] aber nicht $_POST['prename'], $_POST['surname'] usw?

"$error" ist unnötig, einfach $error.
eregi() ist veraltet, benutzt besser pcre.
David ist offline  
Alt 27.12.2008, 17:11  
vyo
Benutzer
 
Registriert seit: 13.11.2008
Beiträge: 47
vyo befindet sich auf einem aufstrebenden Ast
Standard

Stimmt, das ist viel sinnvoller!

Ja, ich kriege immer NULL als Ergebnis, wenn noch keine Eingabe gemacht wurde.

Das mit dem $_POST vor den Variablen hatte ich zuerst nur aus Testzwecken hinzugefügt. Davor hatte $register auch kein $_POST, aber es ist wahrscheinlich besser alle mit $_POST zu versehen.

Wie überprüfe ich denn, ob das Array leer ist oder nicht?
vyo ist offline  
Alt 27.12.2008, 18:08  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Mit empty() oder count().
PHP-Code:
<?php
$x 
= array();
$y = array(1,2,3);

echo 
count($x);
if (empty(
$x)) echo " x is empty.<br />\n";

echo 
count($y);
if (empty(
$y)) echo " y is empty.<br />\n";
David ist offline  
Alt 27.12.2008, 18:39  
vyo
Benutzer
 
Registriert seit: 13.11.2008
Beiträge: 47
vyo befindet sich auf einem aufstrebenden Ast
Standard

Danke, du hast mir sehr geholfen!
vyo ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
3 Arrays als return für eine Funktion? aha_01 PHP Tipps 2009 16 08.12.2009 12:19
Mehrere Arrays summieren buggybugga PHP-Fortgeschrittene 8 22.07.2008 11:51
If-Abfrage mit mehrdimensionalen Arrays fehlerhaft aherzog PHP Tipps 2008 19 23.06.2008 08:16
Größe des Arrays oder der MySQL-Abfrage in Bytes? Gumfuzi PHP Tipps 2006 10 03.10.2006 16:48
Arrays sortieren, Bezeichnung, Preis Ticos PHP Tipps 2006 4 07.09.2006 19:37
Arrays kreuzen PHP Tipps 2006 13 08.03.2006 11:36
2 Arrays kombinieren Transmitter PHP Tipps 2006 5 02.01.2006 16:16
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
Objektorientierter Zugriff auf Multidimensionale Arrays PHP-Fortgeschrittene 31 26.11.2005 21:46
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Zwei mehrdimensionale arrays "verbinden"? Heart PHP Tipps 2005 13 21.06.2005 20:05
zweidimensionale Arrays für Templates aufbereiten? PHP Tipps 2005 6 22.03.2005 20:49
Erkennung von Arrays in Strings PHP-Fortgeschrittene 15 07.12.2004 13:00
2 arrays in abhängigkeit ??? PHP Tipps 2004 2 11.08.2004 21:19
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if($_post[\'\'] !=, validierung der array, if($_post

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum