Problem mit Browserkompatibilität und Sessions



  • steht nischts drin 😕

    mfg



  • Hast du PHP >= 4.1.0? Falls nicht kannst du es mal mit $HTTP_SESSION_VARS anstelle von $_SESSION versuchen (ist aber nicht autoglobal)



  • Ich hab eigendlich PHP 4.3.2, habs aber de4nnoch versucht, geht aber auch net

    mfg
    Glamdring



  • Dann poste mal etwas Code 😉



  • index.php:

    <?php 
    	session_start();
    ?>
    <?php echo "<?xml version=\"1.0\" encoding=\"iso-8859\" ?&gt;"; ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>
    Willkommen auf Daniel-Kalthoff.de
    </title>
    <link name="stil" type="text/css" rel="stylesheet" href="Style/style.css" />
    <script language="JavaScript" type="text/javascript" charset="iso-8859">
    </script>
    </head>
    <body class="body">
    <?php 
    	$Name="index.html";
    	include "navi.inc";
    	echo $HTTP_SESSION_VARS["User"];
    	if(isset($HTTP_SESSION_VARS['User']))
    	{	
    		include "loggedin.inc";
    	}
    	else
    	{	
    		include "unlogged.inc"; 
    	}
    ?>
    </body>
    </html>
    

    unlogged.inc und loggedin.inc enthalten ausschließlich HTML-Code.

    navi.inc

    <div id="menu">
    <center id="bigga">Login:</center><br/><br/>
    <form name="login" action="login.php" method="post">
    <table>
    <tr><td id="forinput">Name:</td><td><input name="Name" size="25" /></td></tr>
    <tr><td id="forinput">Password:&nbsp;</td><td><input type="password" name="PW" size="25" /></td></tr>
    </table><br /><br /><br />
    <center><img src="pics/submit.jpg" onclick="document.login.submit()" alt="einloggen" /></center>
    </form><br />
    <center id="bigga">Registrieren:</center><br /><br />
    <form name="regist" action="register.php" method="post">
    <table>
    <tr><td id="forinput">Name:</td><td><input name="Name" size="25" /></td></tr>
    <tr><td id="forinput">Password:</td><td><input name="PW" size="25" type="password" /></td></tr>
    <tr><td id="forinput">Password wiederh.</td><td><input name="PWa" size="25" type="password" /></td></tr>
    <tr><td id="forinput">E-mail:</td><td><input name="mail" size="25" /></td></tr>
    <tr><td id="forinput">E-mail wierderh.</td><td><input name="maila" size="25" /></td></tr>
    </table><br />
    <center><img src="pics\register.jpg" onclick="regist.submit()" alt="anmelden" /></center>
    </form>
    </div>
    

    login.php:

    <?php
    	session_start();
    ?>
    <?php echo "<?xml version=\"1.0\" encoding=\"iso-8859\" ?&gt;"; ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>
    Login Bereich
    </title>
    <link rel="stylesheet" href="style/style.css" />
    </head>
    <body>
    <form name="form" action="index.php" method="post">
    <P id="forinput">
    <?PHP 
    	$_POST["Name"] = htmlentities($_POST["Name"]);
    	$_POST["PW"] = htmlentities($_POST["PW"]);
    	$db = mysql_connect("localhost", "root", "");
    	if($db)
    	{
    		if($_POST["Name"] and $_POST["PW"])
    		{
    			mysql_select_db("member");
    			$data = mysql_query("SELECT * FROM member WHERE Name='".$_POST["Name"]."'");
    			if($data == "")
    			{	
    				echo "Ihr Benutzname stimmt nicht!<br />";
    				echo "<img src=\"pics/back.jpg\" onclick=\"form.submit()\" />";
    			}
    			else
    			{
    				$row = mysql_fetch_object($data);
    				if($row->PW == $_POST["PW"])
    				{
    					echo "Sie haben sich eingeloggt!<br />";	
    					echo "<img src=\"pics/back.jpg\" onclick=\"form.submit()\" />";
    					$HTTP_SESSION_VARS['User'] = $_POST["Name"];
    				}
    				else
    				{
    					echo "Sie haben das falsche Password eingegeben!<br />";
    					echo "<img src=\"pics/back.jpg\" onclick=\"form.submit()\" />";
    				}
    			}
    
    		}
    		else
    		{
    				echo "Bitte geben Sie sowohl einen Namen als auch ein Password an!<br />";
    				echo "<img src=\"pics/back.jpg\" onclick=\"form.submit()\" />";
    		}
    		mysql_close($db);
    	}
    	else
    	{
    		echo "Die Datenbank l&auml;sst sich nicht &ouml;ffnen!<br />";
    		echo "<img src=\"pics/back.jpg\" onclick=\"form.submit()\" />";
    	}
    ?>
    </p>
    </form>
    </body>
    </html>
    

    sodele das wars *ggg*

    mfg
    Glamdring



  • die inc Dateien, die nur HTML enthalten hättest du auch weglassen können (hab sie jetzt der Übersicht halber gelöscht) 😉
    Wenn du PHP >= 4.1.0 hast kannst du ruhig anstelle von $HTTP_SESSION_VARS wieder $_SESSION verwenden. Kommt er denn beim login in den "Sie haben sich eingeloggt!"-Zweig? Du könntest dir zuallererst mal mit echo session_id(); auf jeder Seite die Session-ID ausgeben lassen, die muss auf jeden Fall mal überall gleich lauten. Wenn sie das nicht tut hast du wohl auf irgend einer Zwischenseite der session_start() Aufruf vergessen 🤡



  • ist exakt die Selbe Session_id 😞

    mfg
    Glamdring



  • Aber am Ende von login.php ist $_SESSION['User'] gesetzt 😕



  • Nee, das ist ja genau das Problem, liegts vielleicht daran, dass ich ich $_SESSION["User"]; geschrieben habe (ich kanns mir net vorstellen).

    mfg
    Glamdring



  • Das ist eigentlich egal. Also ist die Variable jetzt nichtmal im login-Script selbst gesetzt, obwohl er in den if($row->PW == $_POST["PW"])-Block kommt 😕



  • Es ergibt zwar keinen Sinn, aber in login ist die Variable gesetzt, aber, trotz der selben Session_id nicht in index.php

    mfg und kanitfastan
    Glamdring



  • Setze mal´noch ein paar andere Session-Variablen und mach dann auf der Folgeseite ein var_dump($_SESSION);



  • flenders schrieb:

    var_dump($_SESSION);

    ???
    mfg
    Glamdring



  • Wo ist dein Problem? Ruf doch einfach nach deinem session_start() das mal auf und sag, was es ausgibt 😉



  • Dann sagt er:
    array(0) { }

    thx

    Glamdring


  • Mod

    Wenn er $_SESSION nicht kennt, hast du ne alte PHP Version.

    da verwendet man IIRC session_register
    siehe Doku



  • Er sagte doch, dass er PHP 4.3.2 hat. Allerdings scheinen dann die Session-Informationen nicht richtig gespeichert zu werden, wenn zwar die Session-ID, nicht jedoch die Session-Vars erhalten bleiben 😕



  • Meint ihr ich sollte mir mal die neueste PHP-Version herunterladen, oder bringt das nichts???

    mfg



  • Bekommst du evtl. Fehlermeldungen in dem Log-File von PHP?



  • Wo liegt die Datei? Hab sowas noch nie gebraucht, deshalb weis ichs net

    mfg


Anmelden zum Antworten