Registrieren der Session funktioniert nicht...

pauler

Grünschnabel
Ich habe bei meinem script folgendes Problem...
Wenn ich mich einlogge, wird der Zugang auf die darauffolgenden Seiten verweigert - so als ob sie jemand öffnet, der nicht eingeloggt ist.
Klicke ich nun auf den LOGOUT-Button wird der Logout durchgeführt und ich gelange wieder zum LOGIN.
Wenn ich mich aber nun anmelde, FUNKTIONIERT alles... Warum aber erst immer beim 2. mal?

das Script:

<?php

session_start();

include("../connect_db.php");

if($_POST['submit']) {


$password = md5($_POST['pw']);
$query = @mysql_query("SELECT ID, name, vorname, pw FROM 002_user WHERE vorname = '".$_POST['vorname']."'") or die('Error55');
$result = @mysql_fetch_array($query) or die(mysql_error().'Dieser Benutzername existiert nicht.');

if(!$_POST['vorname'] || $_POST['vorname'] = "") {
echo 'Bitte tragen Sie Ihren Benutzernamen ein!';
}
elseif(!$_POST['pw'] || $_POST['pw'] = "") {
echo 'Bitte geben Sie Ihr Passwort ein.';
}
elseif($result['pw'] != $password) {
echo "Passwort falsch!";
}

else {

$id = $result['ID'];
$name = $result['name'];
$vorname = $result['vorname'];
$password = $result['pw'];



session_register("name", "vorname", "id");
echo '<script language="javascript">location.href="log_index.php"</script>';

}
}

?>
 
Hi,
versuchs mal so:
PHP:
session_register("id", $id);
session_register("vorname", $vorname);
session_register("name", $name);
Gruß,
Snowowl
 
damit geht das einloggen dann gar nicht mehr...

vielleicht liegt es ja aber auch am Aufrufen der session...

das hab ich so gemacht:

<?php

session_start();

if(!session_is_registered('name') || $_SESSION['name'] == "") {

echo "text";
exit;

}
else {
echo "text";
}
?>
 
Hi, ich habe es bei mir so gelöst:
PHP:
<?php
session_start();
if($_SESSION['name']=="" || $_SESSION['seskennwort']=="" || $_SESSION['sesid']=="")
{
    if(isset($_POST["formular"]))
    {
        if($_POST['name']=="" || $_POST['pass']=="")
        {
            echo "Bitte alle Felder ausfüllen";
        }
        else
        {
            //Logincheck, sessions setzen
        }
    }
    else
    {
        //Das Formular
    }
}
else
{
    echo "Willkommen ".$_SESSION['name']."";
}
?>
Gruß,
Snowowl
 
pauler hat gesagt.:
damit geht das einloggen dann gar nicht mehr...

vielleicht liegt es ja aber auch am Aufrufen der session...

das hab ich so gemacht:

<?php

session_start();

if(!session_is_registered('name') || $_SESSION['name'] == "") {

echo "text";
exit;

}
else {
echo "text";
}
?>

Bitte benutz doch die BBCodes für php, dann ist der Code besser lesbar.
[ php] vor dem Codeschnipsel und [ /php ] danach (ohne die Leerzeichen dazwischen). Danke!



Gruß Radhad
 
Ein kleine Verbesserungsvorschlag zu Snowowls Vorschlag:
PHP:
<?php

	session_start();
	if( !isset($_SESSION['name']) || $_SESSION['name']== '' || !isset($_SESSION['seskennwort']) || $_SESSION['seskennwort'] == '' || !isset($_SESSION['sesid']) || $_SESSION['sesid'] == '' ) {

		if( isset($_POST['formular']) ) {
			if( !isset($_POST['name']) || $_POST['name'] == '' || !isset($_POST['pass']) || $_POST['pass'] == '' ) {
				echo 'Bitte alle Felder ausfüllen!';
			} else {
				// Logincheck, sessions setzen
			}
		} else {
			// Das Formular
		}

	} else {

		echo 'Willkommen '.$_SESSION['name'];

	}

?>
 
Zurück