27. maj 2003 - 14:51
Der er
25 kommentarer og 1 løsning
session variabler
jeg har en fil, hvor jeg sætter en SESSION variabel til at indeholde værdien "A" sådan: session_start(); $_SESSION['Username'] = "A"; nederst på samme side redirecter jeg til index.php sådan: header("Location: index.php"); øverst i index.php skriver jeg sådan: <?php session_start(); ?> og senere på index.php prøver jeg at udskrive SESSION variabelen og forventer at få et "A", sådan: echo $_SESSION['Username'] men der bliver intet udskrevet ! Hvad er der galt / hvad har jeg misforstået ?
Annonceindlæg fra Deloitte
umiddelbart ser det ikke ud til at være lavet forkert, du har ikke noget output før du sætter din session?
har du lidt mere kode at kigge på
Slettet bruger
27. maj 2003 - 15:02
#3
husk lige en ; efter echo $_SESSION['Username'] altså echo $_SESSION['Username'];
du mangler ikke ; vel? echo $_SESSION['Username'];
disse linjer står også øverst i index.php filen. Kan de forstyrre ? <link rel="stylesheet" type="text/css" href="main.css"> <script language="JavaScript" type="text/javascript" src="nav.js"></script>
hehe, skulle lige til at skrive det samme, men det er vel ikke nødvendigt nu*LOL*
prøv at sætte din session_start() som det absolout første i filen
jo jeg manglede ; men det hjalp ikke på resultatet
skal jeg sende hele koden ? 156 linjer
arrrr ok - lidt meget - får du ingen fejl medd??
checklogin.php filen: <?php $db = mysql_connect("hemmeligt", "hemmeligt", "hemmeligt"); mysql_select_db("hemmeligt",$db); $result = mysql_query("SELECT * FROM users WHERE Username = '$Username' AND Password = '$Password'",$db); if ($myrow = mysql_fetch_array($result)) { session_start(); $_SESSION['Username'] = "A"; } header("Location: index.php"); ?> index.php filen: <?php session_start(); ?> <HTML> <HEAD> <TITLE>Vælkomin til GLUGGA</TITLE> <link rel="stylesheet" type="text/css" href="main.css"> <script language="JavaScript" type="text/javascript" src="nav.js"></script> </HEAD> <BODY onLoad="init();" bgcolor="#E8E8E8"> <?php echo $_SESSION['Username']; ?> gfghg <div align="center"> <center> <table border="0" width="760" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <td width="140" valign="top" style="border: 1 solid #000080"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%">Kjak <p>Nýggjastu evnini:</p> <p>dfdsfdsfdfd</p> <p>dfdfdfdfdf</p> <p>dfdfdfdfdf</p> </td> </tr> <tr> <td width="100%"> <p><img border="0" src="images/olivant.jpg" width="130" height="41"></p> <p><img border="0" src="images/fds.gif"></p> </td> </tr> </table> <p align="center"> </p> </td> <td width="480" valign="top" style="border-right: 1 solid #000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" height="10"> <table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="#E8E8E8" height="90"> <tr> <td width="10" rowspan="4"> </td> <td width="90" height="90" rowspan="4"><a href="index.php"><img border="0" src="images/FDS2.gif" width="80" height="80"></a></td> </tr> <tr> <td width="380" align="center"><font color="#000080" face="Arial" size="7">G L U G G I</font></td> </tr> <tr> <td width="380" align="center"><font color="#000080" face="Arial" size="3">- portalurin hjá FDS-samstarvinum</font></td> </tr> <tr> <td width="380" align="center" height="5"></td> </tr> </table> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="25%" align="center" bgcolor="#808080"><font color="#FFFFFF" face="Arial"><b>Info</b></font></td> <td width="25%" align="center" bgcolor="#808080"><font color="#FFFFFF" face="Arial"><b>Vitan</b></font></td> <td width="25%" align="center" bgcolor="#808080"><a href="index.php?SID=uppg"><font color="#FFFFFF" face="Arial"><b>Uppgávur</b></font></a></td> <?php if ($_SESSION['Username'] == "A") { ?> <td width="25%" align="center" bgcolor="#808080"><a href="index.php?SID=nytStovna" onMouseOver="hideAll(); showLayer('layer1'); stopTime()" onMouseOut="startTime();"><font color="#FFFFFF" face="Arial"><b>Mín skrá</b></font></a></td> <?php } ?> </tr> <tr> <td width="100%" align="center" colspan="4" height="20"></td> </tr> </table> </td> </tr> <tr> <td width="100%" height="400" valign="top"> <?php echo $_SESSION['Username']; switch ( $SID ) { case "skraset": include ("skraset.php"); break; case "kjak": include ("kjak.php"); break; case "uppg": include ("uppg.php"); break; case "nytStovna": include ("nytStovna.php"); break; case "uppgStovna": include ("uppgStovna.php"); break; default: include ("nyt.php"); } ?> </td> </tr> </table> </td> <td width="140" valign="top" style="border-right: 1 solid #000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"> <form method="POST" action="checklogin.php"> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" colspan="2"><font face="Arial" size="2" color="#000080"><b> Online:</b></font></td> </tr> <tr> <td width="100%" colspan="2"><font face="Arial" size="2" color="#000080"> </font></td> </tr> <tr> <td width="100%" colspan="2" height="20"></td> </tr> <tr> <td width="50%" height="30"><font face="Arial" size="2"> Brúkari</font></td> <td width="50%" height="30"><input type="text" name="Username" size="6"></td> </tr> <tr> <td width="50%" height="30"><font face="Arial" size="2"> Loyniorð</font></td> <td width="50%" height="30"><input type="password" name="Password" size="6"></td> </tr> <tr> <td width="100%" colspan="2" height="30"> <p align="center"><input type="submit" value="Logga á" name="Login" style="font-family: Arial; font-size: 10 pt; background-color: #E8E8E8; border: 1 solid #000000"></p> </td> </tr> <tr> <td width="100%" colspan="2" height="30"> <p align="center"><font face="Arial" size="2"><a href="index.php?SID=skraset">Skráset</a></font></td> </tr> <tr> <td width="100%" colspan="2" height="30"> </td> </tr> </table> </form> </td> </tr> </table> </center> </div> <div id="layer1"> <a href="index.php?SID=nytStovna" onMouseOver="stopTime();" onMouseOut="startTime();"><font color="#000080"> Skráset tíðindi</font></a><br> <a href="index.php?SID=uppgStovna" onMouseOver="stopTime();" onMouseOut="startTime();"><font color="#000080"> Skráset uppgávu</font></a><br> </div> </BODY> </HTML>
ingen fejl meddelelser, nej
Måske skulle du lave noget validering på din databaseforbindelse. Session bliver jo kun sat hvis alt går efter planen der. Hvor får du iøvrigt $USERNAME og $PASSWORD fra?
nej dataforbindelsen er i orden jeg har testet dette inde i checklogin.asp, og der fungerer det fint at udskrive Username på denne måde: echo $_SESSION['Username']
Ja, hvis du kan udskrive $_SESSION['Username'] efter if sætningen, så må det jo være i orden, men jeg tror nu nok jeg vil foretrække noget fejlhåndtering alligevel. Jeg kan ikke se nogen grund til at du så ikke kan udskrive den i index.php.
Tillader lige at blande mig... >>>jeg har testet dette inde i checklogin.asp??? .asp... måske derfor det ik lige kører :P spøg til side... prøv evt.: <?php if(isset($Username) && isset($Password)) { $db = mysql_connect("hemmeligt", "hemmeligt", "hemmeligt"); mysql_select_db("hemmeligt",$db); $result = mysql_query("SELECT * FROM users WHERE Username = '$Username' AND Password = '$Password'",$db); if ($myrow = mysql_fetch_array($result)) { session_start(); $_SESSION['Username'] = "A"; header("Location: index.php"); } } else { echo "fejl...!!"; } ?> hvor får du de to vars fra? en form eller?
jeg tror du skal have session_start øverst i alle tilfælde: checklogin.php filen: <?php session_start(); //rettet HER $db = mysql_connect("hemmeligt", "hemmeligt", "hemmeligt"); mysql_select_db("hemmeligt",$db); $result = mysql_query("SELECT * FROM users WHERE Username = '$Username' AND Password = '$Password'",$db); if ($myrow = mysql_fetch_array($result)) { $_SESSION['Username'] = "A"; } header("Location: index.php"); ?>
Jeg har testet at de to variabler Username og Password indeholder værdier, som bliver sendt fra en formular forinden checklogin.php. Jeg har også sat session_start øverst i begge filer, men det hjælper ikke. Kan mit problem skyldes en indstilling i webserveren - eller muligvis i php.ini ?
kan det skyldes, at jeg ikke har brugt session_register(). skal det også bruges ?
kunne det måske godt... du kan jo prøve oplever selv nogle problemer med det engang imellem
jeg gik over til at bruge session_register, og nu ser det ud til at fungere. Jeg fik ikke nogen særlig hjælp her, men funti må gerne få poengene, hvis du skriver noget nu. (får ikke givet dig poengene nu)
hvad version af PHP kører du - det kan ikke være en af de nye??
det ved jeg faktisk ikke, men jeg kører Red Hat Linux 7.1, så det er den version, som følger med - hvis den da følger med Red Hat ?
lav en fil kald den phpinfo.php - put dette i den: <?php phpinfo(); ?> og kør drn så findr du ud af det ;o)
Vi tilbyder markedets bedste kurser inden for webudvikling