Problem mit Browserkompatibilität und Sessions



  • Wieso werden alle Texte beim IE viel kleiner angezeigt, als bei Firefox und Netscape??? Kann man da was anderes gegen machen, als JavaScript-e?
    Ich hab auch ein Problem mit Sessions und suche dazu gute Tutorials.

    mfg
    Glamdring



  • Das Problem mit der Browserkompatibilität besteht weiterhin, aber ich habe ein Tutorial über Google gefunden. ICh habe auf jeder Seite am Anfang (als erstes)
    session_start();
    In einer Datei schreibe ich das hier:
    $_SESSION["User"] = \_POST["Name"]; Wenn ich in einer anderen Datei (ebenfalls session_start()) folgendes schreibe: if(isset('_SESSION["User"]'))
    kommt immer false raus, egal, ob eingeloggt oder nicht.

    mfg
    Glamdring


  • Mod

    Glamdrink schrieb:

    if(isset('$_SESSION["User"]'))
    kommt immer false raus, egal, ob eingeloggt oder nicht.

    doku lesen.
    isset verlangt keinen string



  • Joa, stimmt, habs ausm Buch, dass noch PHP 3.???? verwendet 😃

    Ich habe auf meiner Homepage zwei Dateien, eine die man benutzt, wenn jemand eingeloggt ist und eine, die per default verwendet wird. Wenn man sich dann einloggt wird die Variable $_SESSION["User"] angelegt.

    Dann frage ich mit PHP ob $_SESSION["User"] gesetzt ist.
    Wenn ja wird die eine Datei mit include eingefügt, ansonsten die andere.

    Aber das funktioniert nicht. Es wird immer nur die geladen, die für uneingeloggte verwendet wird.

    ???

    mfg
    Glamdring



  • Wie Shade schon sagte: Du darfst nicht isset('\_SESSION["User"]') schreiben, sondern so: isset(_SESSION["User"])
    Falls das immer noch nicht klappt lass dir mal direkt $_SESSION["User"] ausgeben und schau nach, ob da das Richtige drin steht 😉



  • 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


Anmelden zum Antworten