kostenloser Webspace werbefrei: lima-city


Hilfe bei POST Check und Session

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    Hallo liebes Forum!

    Ich bin am verzweifeln ...
    ... wo liegt hier der Fehler?

    Das Formular auf den Registrirungs-'index.php' hat genau die selben POSt "names" im Formular ...

    $login = clean($_POST['username']);
    	$fname = clean($_POST['fname']);
    	$lname = clean($_POST['lname']);
            $mail = clean($_POST('email'));
            $mailw = clean($_POST('emailw'));
    	$password = clean($_POST['password']);
    	$cpassword = clean($_POST['cpassword']);
    	
            if($login == '') {
    		$errmsg_user[] = 'Benutzername wird benötigt!';
    		$errflag = TRUE;
            }
    	if($fname == '') {
    		$errmsg_fname[] = 'Vorname wird benötigt!';
    		$errflag = TRUE;
            }
    	if($lname == '') {
    		$errmsg_lname[] = 'Nachname wird benötigt!';
    		$errflag = TRUE;
            }
            if($mail == '') {
    		$errmsg_mail[] = 'E-Mail Adresse wird benötigt';
    		$errflag = TRUE;
            }
            if($mailw == '') {
    		$errmsg_mailw[] = 'E-Mail Wiederholen wird benötigt';
    		$errflag = TRUE;
            }
            if( strcmp($mail, $mailw) != 0 ) {
    		$errmsg_mailww[] = 'E-Mails stimmen nicht überein!';
    		$errflag = TRUE;
            }
    	if($password == '') {
    		$errmsg_pass[] = 'Passwort wird benötigt!';
    		$errflag = TRUE;
            }
    	if($cpassword == '') {
    		$errmsg_passw[] = 'Passwordwiederholung wird benötigt!';
    		$errflag = TRUE;
            }
            if( strcmp($password, $cpassword) != 0 ) {
    		$errmsg_passww[] = 'Passwörter stimmen nicht überein!';
    		$errflag = TRUE;
            }
            if($errflag) {
                    $_SESSION['ERRMSG_user'] = $errmsg_user;
                    $_SESSION['ERRMSG_userw'] = $errmsg_userw;
                    $_SESSION['ERRMSG_fname'] = $errmsg_fname;
                    $_SESSION['ERRMSG_lname'] = $errmsg_lname;
                    $_SESSION['ERRMSG_mail'] = $errmsg_mail;
                    $_SESSION['ERRMSG_mailw'] = $errmsg_mailw;
                    $_SESSION['ERRMSG_mailww'] = $errmsg_mailww;
                    $_SESSION['ERRMSG_pass'] = $errmsg_pass;
                    $_SESSION['ERRMSG_passw'] = $errmsg_passw;
                    $_SESSION['ERRMSG_passww'] = $errmsg_passww;
    		session_write_close();
    		header("location: index.php");
            }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. g******t

    Was bezweckst du mit diesem Stück von Code? Wie sieht der Rest aus?
    Was funktioniert denn nicht so, wie du es bezweckst?

    Was macht deine clean()-Funktion und meinst du ein session_close_write ist tatsächlich erforderlich?

    Beitrag zuletzt geändert: 23.3.2013 16:09:07 von glowsoft
  4. 1. verwende zum debuggen:
    ini_set('display_errors', 1);
        error_reporting(E_ALL);

    2. lasse dir den Inhalt des Superglobals $_POST() anzeigen:
    var_dump($_POST);

    3. lasse dir den Inhalt des Superglobals $_SESSION() anzeigen, bevor die Session geschlossen wird:
    var_dump($_SESSION);

    Die funktion clean() könnte auch fehlerbehaftet sein.
    Mal als Grundlage für den Anfang.

  5. Ein session_start() am Anfang vom Script wäre sicherlich auch nicht verkehrt.

    Lg cookies
  6. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    glowsoft schrieb:
    Was bezweckst du mit diesem Stück von Code? Wie sieht der Rest aus?
    Was funktioniert denn nicht so, wie du es bezweckst?

    Was macht deine clean()-Funktion und meinst du ein session_close_write ist tatsächlich erforderlich?


    Viel dank für die schnellen antworten :-)

    Folgender ablauf:
    Ich möchte mich auf meiner Seite neu registrieren, Das Formular schickt mich auf die init.php und überprüft dort oben etwas eigegeben wurde. Falls nichts eingetippt worden ist soll es mich auf die Registr php Seite zurück verweisen und über SESSION ausgeben was fehlt.



    session_start(); ist bereits in meiner Seite ganz oben vorhanden ;-)

    Beitrag zuletzt geändert: 23.3.2013 17:52:57 von bastitrial
  7. wichtiger zu wissen wäre:
    1. Fehlermeldungen.
    2. Inhalte von $_POST() und $_SESSION()

    Ein Mindestmaß an Infos braucht es schon.
    Der Hinweis, dass dein Script nicht funktioniert reicht alleine nicht aus, wenn dir geholfen werden soll.
  8. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    timebandit schrieb:
    wichtiger zu wissen wäre:
    1. Fehlermeldungen.
    2. Inhalte von $_POST() und $_SESSION()

    Ein Mindestmaß an Infos braucht es schon.
    Der Hinweis, dass dein Script nicht funktioniert reicht alleine nicht aus, wenn dir geholfen werden soll.


    Die Inhalte von Post sind oben korrekt geführt :-/

    Der Inhalt des obrigen Scriptes sind inhalte meine Mysql connect php seite. Ich möchte mit diesem Skcript Inhalte in meine Mysql Tabelle speichern. Der Mysql Part funktionierte mit einer stark vereinfachten Version meines zuerst geopsteten Scriptes. Da sollten also keine Fehler vorliegen :-/

    Das Ziel des Script stückes ist die eine jeweilige Fehlermeldung in SESSION zu speichern um die dann auf der Regstr Seite auszuspucken um genau sicher zu stellen was der Benutzer falsch gemacht hat ...
  9. Die Inhalte von Post sind oben korrekt geführt :-/

    Der Inhalt des obrigen Scriptes sind inhalte meine Mysql connect php seite. Ich möchte mit diesem Skcript Inhalte in meine Mysql Tabelle speichern. Der Mysql Part funktionierte mit einer stark vereinfachten Version meines zuerst geopsteten Scriptes. Da sollten also keine Fehler vorliegen :-/

    if($login == '') {
    		$errmsg_user[] = 'Benutzername wird benötigt!';
    		$errflag = TRUE;
            }
    	if($fname == '') {
    		$errmsg_fname[] = 'Vorname wird benötigt!';
    		$errflag = TRUE;
            }
    	if($lname == '') {
    		$errmsg_lname[] = 'Nachname wird benötigt!';
    		$errflag = TRUE;
            }
            if($mail == '') {
    		$errmsg_mail[] = 'E-Mail Adresse wird benötigt';
    		$errflag = TRUE;
            }
            if($mailw == '') {
    		$errmsg_mailw[] = 'E-Mail Wiederholen wird benötigt';
    		$errflag = TRUE;
            }
            if( strcmp($mail, $mailw) != 0 ) {
    		$errmsg_mailww[] = 'E-Mails stimmen nicht überein!';
    		$errflag = TRUE;
            }
    	if($password == '') {
    		$errmsg_pass[] = 'Passwort wird benötigt!';
    		$errflag = TRUE;
            }
    	if($cpassword == '') {
    		$errmsg_passw[] = 'Passwordwiederholung wird benötigt!';
    		$errflag = TRUE;
            }
            if( strcmp($password, $cpassword) != 0 ) {
    		$errmsg_passww[] = 'Passwörter stimmen nicht überein!';
    		$errflag = TRUE;
            }
            if($errflag) {
                    $_SESSION['ERRMSG_user'] = $errmsg_user;
                    $_SESSION['ERRMSG_userw'] = $errmsg_userw;
                    $_SESSION['ERRMSG_fname'] = $errmsg_fname;
                    $_SESSION['ERRMSG_lname'] = $errmsg_lname;
                    $_SESSION['ERRMSG_mail'] = $errmsg_mail;
                    $_SESSION['ERRMSG_mailw'] = $errmsg_mailw;
                    $_SESSION['ERRMSG_mailww'] = $errmsg_mailww;
                    $_SESSION['ERRMSG_pass'] = $errmsg_pass;
                    $_SESSION['ERRMSG_passw'] = $errmsg_passw;
                    $_SESSION['ERRMSG_passww'] = $errmsg_passww;
    		session_write_close();
    		header("location: index.php");

    Dann bleiben nur die Sessionvariablen, die zicken.
    Welche Inhalte hat $_SESSION() ?

  10. timebandit schrieb:
    Dann bleiben nur die Sessionvariablen, die zicken.
    Welche Inhalte hat $_SESSION() ?


    verwendest Du auch
    session_start();
    sowohl beim in Session-Variable schreiben
    ... sowie auch beim Auslesen ?

    hier mal ein einfaches Beispiel:

    ... die Funktion clean() ist hier auch nur grobes Beispiel
    besser wäre für eMail-Adressen eine Syntax Prüfung (und ggf. auch ob Email-Server erreichbar ist)
    für Links dann eben eine URL-Syntax Prüfung (und ggf. auch ob Ziel-Adresse erreichbar ist)
    für Username nur erlaubte Zeichen, usw. etc ... je nach Eingabe die "passende" Prüfung / Filter

    <?php 
    // ------------------------------------------------ 
    
    session_start(); 
    
    function clean($string) { 
      $string = trim($string); 
      $string = stripslashes($string); 
      $string = htmlentities($string); 
      return $string; 
    }
    
    
    if (!empty($_POST['email'])) { 
      $_SESSION['user_email'] = clean($_POST['email']); 
    }
    
    // ------------------------------------------------ 
    
    print "<h2>Anmeldung</h2>\n"; 
    print "<br />\n"; 
    
    // ------------------------------------------------ 
    
    if (isset($_SESSION['user_email']) { 
    
    print "<br /> OK .... User Email ist: ".$_SESSION['user_email']." \n"; 
    
    // ---- hier Code zum Lesen / Speichern in MySQL ---- 
    
    }
    else { 
    // ------------------------------------------------ 
    
    print "<br />Es wurde (noch) keine User Email eingetragen \n"; 
    print "<br />\n"; 
    
    print '
    <form name="form1" method="post" action="">
      Email-Adresse: <input type="text" name="email" size="30" maxlength="120" />
      OK: <input type="submit" name="senden" value="Absenden" />
    </form>
    '; 
    
    
    }
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    // ------------------------------------------------ 
    ?>


    Wichtig ist
    session_start();
    damit Du in $_SESSION schreiben kannst
    ... und auch damit Du die $_SESSION auslesen kannst

  11. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    Ich weiss jetzt wo mein Problem liegt :-)
    Alle Sessions werden angezeig - also genau so wie ich das gerne hätte :)
    Jedoch soll mich die init.php nach dem setzen von SESSION automatisch auf registr-index.php zurückleiten und dort die Fehler listen.
    Es klappt alles super bis zur header funktion ...


    session_write_close();
    header("location: ../index.php");
    exit();

    Das habe ich jetzt direkt unter dem ganzen SESSION Part kopiert...

    ... Wo ist der Fehler oder gibt es noch andere möglichkeiten ...?

    Beitrag zuletzt geändert: 24.3.2013 14:51:26 von bastitrial
  12. Am Anfang der index.php session_start() setzen.
    Für das Debugging: var_dump($_SESSION);

    Falls dein Editor in "UTF-8" kodiert, dann ändere die Kodierung in "UTF-8 ohne BOM".
  13. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    Okay!
    Vielen Danke - hat sich gelöst =)
  14. 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!