Avatar billede peturkirke Novice
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 ?
Avatar billede ztyxx Nybegynder
27. maj 2003 - 14:58 #1
umiddelbart ser det ikke ud til at være lavet forkert, du har ikke noget output før du sætter din session?
Avatar billede ztyxx Nybegynder
27. maj 2003 - 14:59 #2
har du lidt mere kode at kigge på
Avatar billede Slettet bruger
27. maj 2003 - 15:02 #3
husk lige en ; efter echo $_SESSION['Username']

altså echo $_SESSION['Username'];
Avatar billede avminarm Juniormester
27. maj 2003 - 15:02 #4
du mangler ikke ; vel?

echo $_SESSION['Username'];
Avatar billede peturkirke Novice
27. maj 2003 - 15:03 #5
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>
Avatar billede ztyxx Nybegynder
27. maj 2003 - 15:03 #6
hehe, skulle lige til at skrive det samme, men det er vel ikke nødvendigt nu*LOL*
Avatar billede ztyxx Nybegynder
27. maj 2003 - 15:04 #7
prøv at sætte din session_start() som det absolout første i filen
Avatar billede peturkirke Novice
27. maj 2003 - 15:05 #8
jo jeg manglede ; men det hjalp ikke på resultatet
Avatar billede avminarm Juniormester
27. maj 2003 - 15:06 #9
lad os se lidt mere kode
Avatar billede peturkirke Novice
27. maj 2003 - 15:10 #10
skal jeg sende hele koden ? 156 linjer
Avatar billede avminarm Juniormester
27. maj 2003 - 15:17 #11
arrrr ok - lidt meget - får du ingen fejl medd??
Avatar billede peturkirke Novice
27. maj 2003 - 15:18 #12
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%">&nbsp;
            <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">&nbsp;</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">&nbsp;</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>&nbsp;Online:</b></font></td>
          </tr>
          <tr>
            <td width="100%" colspan="2"><font face="Arial" size="2" color="#000080">&nbsp;
            </font></td>
          </tr>
          <tr>
            <td width="100%" colspan="2" height="20"></td>
          </tr>
          <tr>
            <td width="50%" height="30"><font face="Arial" size="2">&nbsp;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">&nbsp;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">&nbsp;Skráset tíðindi</font></a><br>
  <a href="index.php?SID=uppgStovna" onMouseOver="stopTime();" onMouseOut="startTime();"><font color="#000080">&nbsp;Skráset uppgávu</font></a><br>
</div>

</BODY>
</HTML>
Avatar billede peturkirke Novice
27. maj 2003 - 15:18 #13
ingen fejl meddelelser, nej
Avatar billede detox Nybegynder
27. maj 2003 - 17:32 #14
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?
Avatar billede peturkirke Novice
27. maj 2003 - 17:37 #15
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']
Avatar billede detox Nybegynder
27. maj 2003 - 19:07 #16
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.
Avatar billede funti Nybegynder
28. maj 2003 - 02:12 #17
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?
Avatar billede avminarm Juniormester
28. maj 2003 - 08:56 #18
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");
?>
Avatar billede peturkirke Novice
28. maj 2003 - 10:42 #19
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 ?
Avatar billede peturkirke Novice
28. maj 2003 - 11:29 #20
kan det skyldes, at jeg ikke har brugt session_register().

skal det også bruges ?
Avatar billede funti Nybegynder
28. maj 2003 - 12:00 #21
kunne det måske godt... du kan jo prøve oplever selv nogle problemer med det engang imellem
Avatar billede peturkirke Novice
28. maj 2003 - 12:45 #22
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)
Avatar billede funti Nybegynder
28. maj 2003 - 12:47 #23
hej
Avatar billede avminarm Juniormester
29. maj 2003 - 00:23 #24
hvad version af PHP kører du - det kan ikke være en af de nye??
Avatar billede peturkirke Novice
29. maj 2003 - 00:30 #25
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 ?
Avatar billede avminarm Juniormester
30. maj 2003 - 23:04 #26
lav en fil kald den phpinfo.php - put dette i den:

<?php
phpinfo();
?>

og kør drn så findr du ud af det ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester