zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden preg_match | zwei parameter überprüfen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 23.05.2009, 17:41
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2008
Beiträge: 20
noScale befindet sich auf einem aufstrebenden Ast
Standard preg_match | zwei parameter überprüfen

Tach zusammen,

ich möchte in einem Formular ein input Feld überprüfen ob wirklich nur Buchstaben eingeben wurden. Der Ansatz sieht so aus:

PHP-Code:
    if (preg_match("/[^a-zA-Z]/"$vorname)){
        echo 
"Bitte verwenden Sie für den Vornamen bitte nur Buchstaben";
    }
        if (
preg_match("/[^a-zA-Z]/"$nachname)){
        echo 
"Bitte verwenden Sie für den Nachnamen bitte nur Buchstaben";
    } 
Klappt ja soweit. Nur habe ich ja dann das Problem, wenn jemand in beide Felder Sonderzeichen und Zahlen eintippt, bekomme ich ja beides ausgegeben. Mir würde ja reichen, wenn da nur steht: Bitte nur Buchstaben verwenden. Kann ich irgendwie zwei Variablen gleichzeitig überprüfen?

Grüße
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 23.05.2009, 18:05
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
if (preg_match("/[^a-zA-Z]/"$vorname) || preg_match("/[^a-zA-Z]/"$nachname)){
        echo 
"Bitte verwenden Sie nur Buchstaben";
    } 
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 23.05.2009, 18:09
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2008
Beiträge: 20
noScale befindet sich auf einem aufstrebenden Ast
Standard

Ja perfekt vielen dank. Hatte es mit && probiert... aber...
DANKESCHÖN!

Mit Zitat antworten
  #4 (permalink)  
Alt 23.05.2009, 18:18
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Du müsstest die Fehler erst sammeln und nachher prüfen, welche Fehler aufgetreten sind. Dann kannst du später darauf Bezug nehmen. So etwas wie:
PHP-Code:
$fehler = array(
    
'nicht-nur-buchstaben' => array(),
);
if (
preg_match("/[^a-zA-Z]/"$vorname)) {
    
$fehler['nicht-nur-buchstaben'][] = 'Vornamen';
}
if (
preg_match("/[^a-zA-Z]/"$nachname)){
    
$fehler['nicht-nur-buchstaben'][] = 'Nachnamen';
}

if (!empty(
$fehler['nicht-nur-buchstaben'])) {
    echo 
"Bitte verwenden Sie für den ";
    echo 
$fehler['nicht-nur-buchstaben'][0];
    foreach (
array_slice($fehler['nicht-nur-buchstaben'], 1, -1) as $bezeichner) {
        echo 
', '$bezeichner;
    }
    if (
count($fehler['nicht-nur-buchstaben']) > 1) {
        echo 
' und '$fehler['nicht-nur-buchstaben'][count($fehler['nicht-nur-buchstaben'])-1];
    }
    echo 
" bitte nur Buchstaben";

__________________
Markus Wulftange
Mit Zitat antworten
  #5 (permalink)  
Alt 24.05.2009, 09:44
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.01.2008
Beiträge: 20
noScale befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank. Muss jetzt gleich weg und werde es mir heute Abend mal genauer anschauen. Gestern noch soweit gekommen...:

PHP-Code:
<?php

$ok 
TRUE;
if (
'POST' == $_SERVER['REQUEST_METHOD']) {    
    if (!isset(
$_POST['vorname'], $_POST['nachname'], $_POST['email'], $_POST['senden'])) {
        echo 
"Nicht alles vorhanden";
        
$ok FALSE;
    } 
    if (!
ereg("^.+@.+\\..+$"$_POST['email'])) {
        echo 
"Die eingegebene Emailadresse ist nicht korrekt!<br />"
        
$ok FALSE;
    } 
    if ((
$vorname trim($_POST['vorname'])) == '' OR
            (
$nachname trim($_POST['nachname'])) == '' OR
            (
$email trim($_POST['email'])) == '') {
        echo 
"Bitte alle Felder ausfüllen";
        
$ok FALSE;
    } 
    if (
preg_match("/[^a-zA-Z]/"$vorname) || preg_match("/[^a-zA-Z]/"$nachname)){
        echo 
"Bitte verwenden Sie nur Buchstaben";
        
$ok FALSE;
    } 
    if (
md5$_POST['sicherheit'] ) != $_SESSION['captcha_code']) {
        
$ok FALSE;
        echo 
'captcha ist falsch';
    }
    if (
$ok) {
    echo 
'das formular wurde korrekt ausgefüllt';
    }

?>

<form id="newsletter" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <fieldset>
        <legend>Tragen Sie sich bitte in unser Newsletter ein</legend>
            <ol>
                <li>
                <label for="vorname">Vorname: </label>
                <input type="text" name="vorname" id="vorname"  />
                </li>
                
                <li>
                <label for="nachname">Nachname: </label>
                <input type="text" name="nachname" id="nachname" />
                </li>
                
                <li>
                <label for="email">E-Mail: </label>
                <input type="text" name="email" id="email" />
                </li>
                
                <li>
                <!-- Start Captcha -->
                <img src="inc/captcha.inc.php" alt="Sicherheitscode" title="Sicherheitscode" width="80" height="25" /><br />
                <label for="sicherheit">Sicherheitscode eingeben: </label>
                <input type="text" name="sicherheit" id="sicherheit" />
                <!-- End Captcha -->
                </li>
                
                <li>
                <input name="senden" id="senden" type="submit" value="Abschicken" class="button" />
                </li>
            </ol>
    </fieldset>
</form>
Also das ist das Script bis jetzt. Ich weiss, das es bestimmte bessere Lösungsansätze gibt (für einen Hinweis wäre ich dankbar), aber das habe ich schonmal alles verstanden. Wie gesagt, das Script schau ich mir dann heute Abend nochmal an. Tausend Dank.

Mit Zitat antworten
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Korrekte Elemente für Beschreibende Parameter Cu Chullain (X)HTML 26 21.09.2010 06:54
getElementById ohne Parameter java_alpdreamer Javascript & Ajax 10 19.09.2010 22:44
Probleme mit Parameter... webseite_freaky Serveradministration und serverseitige Scripte 2 20.02.2009 15:00
[JS] Undefinierten Parameter aufrufen markuskoehler Javascript & Ajax 11 27.11.2008 08:45
No encoding declaration was found in the 'charset' parameter hyperterminal (X)HTML 6 03.02.2005 19:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:33 Uhr.