kostenloser Webspace werbefrei: lima-city


Mehrseitiges Formular mit PHP prüfen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    karpfen

    Kostenloser Webspace von karpfen

    karpfen hat kostenlosen Webspace.

    Hallo zusammen,

    stehe hier grad vor einem Problem mit einem Formular, dass sich über mehrere Seiten streckt. Da in diesem Formular einige Textfelder überprüft werden sollen, ob diese auch ausgefüllt sind, will ich dies mit PHP prüfen, da man JS ja deaktivieren kann. Nur fehlt mir grad die Idee, wie ich das realisieren kann. Denn ich kann das ja erst abprüfen, wenn ich eine Seite weiter bin, oder täusch ich mich?

    Würde mich über hilfreiche Tipps freuen.

    Gruß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Speicher Seite für Seite in eine Session. Diese kannst du dann auf der finalen Seite abfragen und gegebenenfalls eine Fehlermeldung ausgeben.

    So würde ich es regeln. Nachteil: Meistens müssen für soetwas Cookies aktiviert sein, weil die Session sonst nicht läuft. Dafür hätte ich ein System mit MySQL und $_GET Variablen im Angebot, aber das ist eigentlich unnötig.^^
  4. Autor dieses Themas

    karpfen

    Kostenloser Webspace von karpfen

    karpfen hat kostenlosen Webspace.

    Jo, die Möglichkeit gibt es, hat aber einen entscheidenden Nachteil.
    Der User müsste wieder alle Seiten zurückgehen, nur um einen Fehler auf Seite 1 des 4-5-seitigen Formulars zu korrigieren. Das bissel doof:thumb:

    Mit Session wollt ich das sowieso machen.

    Hab da nun eine Lösung gefunden, die mir taugt.

    Andere Frage:

    Kann ich ein Textfeld in ein Formular machen, welches nur Zahlen aufnimmt? In dem also keine Buchstaben und andere Zeichen erlaubt sind?

    Beitrag geändert: 17.9.2007 16:27:39 von karpfen
  5. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    karpfen schrieb:
    Andere Frage:

    Kann ich ein Textfeld in ein Formular machen, welches nur Zahlen aufnimmt? In dem also keine Buchstaben und andere Zeichen erlaubt sind?


    1) Willst du eins auf die Eingabe von Zahlen überprüfen, nachdem es abgeschickt wurde?
    2) Oder willst du direkt die Eingabe von Zahlen verhindern?

    zu 1): Kannst du problemlos mit PHP machen. Stichwort: Reguläre Ausdrücke
    zu 2): Du könntest es vielleicht mit JavaScript verhindern. Allerdings braucht der User dann nur JS auszuschalten und kann wieder alle Zeichen verwenden.
  6. Autor dieses Themas

    karpfen

    Kostenloser Webspace von karpfen

    karpfen hat kostenlosen Webspace.

    Dann muss ich es wohl nach dem Abschicken prüfen, denn auf JS wollte ich komplett verzichten.

    Dank dir ;)
  7. Dafür brauchst du eigentlich nichtmal unbedingt RegEx. Ich denke mit is_numeric() http://www.php-resource.de/manual.php?p=function.is-numeric sollte das einfacher gehen.
  8. ich würd einfach nach dem man auf der Formularseite aus den Weiter Button gedrückt hat wieder zur selben seite gehen und die Felder überprüfen lassen und wenn alles ok ist dann gehts automatisch weiter zur nächsten Seite mit header (location... ). Andernfalls kannst du dann die fehlerhaften felder markieren lassen oder was sonst dann passieren soll...

    Musst zwar auf jeder Formularseite das Überprüfungsscript reinschreiben, aber ist eine einfache Lösung.

  9. Autor dieses Themas

    karpfen

    Kostenloser Webspace von karpfen

    karpfen hat kostenlosen Webspace.

    Gut, diese Lösung hört sich erstmal auch nicht so verkehrt an.
    Mit header:location entsteht eine sichtbare Weiterleitung? Oder merkt der User davon nichts bis sehr wenig???
  10. Ich unterteile meine PHP Projekte generell in 2 Hälften:

    1. Hälfte: sogenannte Doings zum Bsp. Überprüfung ob eingaben richtig, Daten aus DB holen usw.
    2. Hälfte Anzeige von Daten

    Die index.php sieht dann in etwa so aus:
    <?
    	include_once(\'functions.inc.php\');	
    
    	switch(strtolower($_REQUEST[\'do\']))
    	{
    		case \'checkSeite1\':	checkInputSeite1(); break;
    		case \'checkSeite2\':	checkInputSeite2(); break;
    	}
    
    	showHtmlHeader();
    
    	switch(strtolower($_REQUEST[\'page\']))
    	{
    		case \'showSeite1\':	showSeite1();	break;
    		case \'showSeite2\':	showSeite2();	break;
    		case \'showSeite3\':	showSeite3();	break;
    		default:
    			showSeite1();
    	}
    
    	showHtmlFooter();
    ?>


    die Submits von den jeweiligen Seiten bekommen immer ein HiddenField mit do = checkSeite1 bzw. checkSeite2 usw.
    Dadurch kommen die Usereingaben immer in den Funktionen checkInputSeite1() usw. an.
    Dort mach ich dann die Kontrolle der Eingaben!
    Sollte die Eingabe richtig sein setze ich die Variable $_REQUEST[\'page\'] = showSeite2 (also zur nächsten Seite)
    sollte die Eingabe jedoch falsch sein, setze ich die Variable $error_eingabe1 = \"Hier bitte Zeichen eingeben\" und
    setze außerdem die Variabel $_REQUEST[\'page\'] = showSeite1 (also auf die gerade gezeigte Seite!


    In jeder showSeite Fkt. muß natürlich dann auch die Abfrage auf den $error_eingabe1 sein, sonst würde ja nicht der Fehler
    ausgegeben.
    Bsp.:
    function showSeite1()
    {
    	echo \"<form>\";
    	echo \'<div>\';
    	if (!empty($error_eingabe1)) { echo $error_eingabe1; }
    	echo \"<input name=\'text1\' value=\'\".$_REQUEST[\'text1\'].\"\'>\";
    	echo \"</div>\";
    	...
    
    	echo \"</form>\";	
    }


    Hoffe konnte ein wenig weiter helfen.
    Bei Fragen einfach nochmal fragen.

    Grüßle

    Beitrag geändert: 18.9.2007 15:11:01 von scout
  11. Autor dieses Themas

    karpfen

    Kostenloser Webspace von karpfen

    karpfen hat kostenlosen Webspace.

    Vielen Dank schonmal. Hilfreich war das mit Sicherheit. Werd es mir, sobald ich wieder etwas mehr Zeit habe mal anschauen. Klingt aber logisch. Ich bilde mir ein, schon mal so etwas ähnliches probiert zu haben, hatte aber nicht funktioniert (Kann aber auch sein, dass ICH da was falsch gemacht habe)
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!