Avatar billede kack Nybegynder
22. november 2006 - 16:42 Der er 18 kommentarer

session problem?

Hej alle eksperter. Jeg har et problem. Jeg er i gang med et login system. Men nu kan jeg af en eller anden grund ikke få det til at virke. Selvom jeg en masse andre gange har kunne få det til at virke.
Men mit problem er at jeg includer en menu, som der skifter hvis man er logget ind.
Men i stedet for at vise en menu når man ikke er logget ind, viser den: ingenting.

Hva er der galt med min kode?
<?
if ( isset( $_SESSION['email'] ) )
{
echo "Velkommen";
}
else
{
echo "     
<form action='login-ok.php' method='post'>
    <table align="center" class="bottom">
    <tr>
    <td align='center'>
    <form action='login-ok.php' method='post'>


    <font size='2' face='Verdana, Arial, Helvetica, sans-serif'>
    Email Adresse:
        <input name='email' type='text'  maxlength='50'>
                             
    Kodeord:<input type='password' name='kodeord'>
    </font
    <input type='submit' name='ok' value='Log mig ind'>
    </td>
    </tr>
    <tr>
    <td align='center'>
    <a href='makeuser.php'>Opret en ny GRATIS bruger</a>
    | <a href='extra.php'>Hvad får du ekstra?</a>
    </td>
    </tr>
    </table>

    </form>

    </td>";
    require_once ("footer.php");
    echo"
    </td>
";

}
?>
Avatar billede sw_red_6 Nybegynder
22. november 2006 - 16:46 #1
ikke for noget med hvorfor er der 2 <form>-tags? en copy-paste fejl?
Avatar billede sw_red_6 Nybegynder
22. november 2006 - 16:47 #2
hvor er den menu der skal inkluderes? er det footer.php?
Avatar billede udvikler Nybegynder
22. november 2006 - 16:50 #3
Det der er galt er at du har glemt session_start();

:-)
Avatar billede kack Nybegynder
22. november 2006 - 16:54 #4
sw_red_6: Er der to <form> tags? Hvor er det andet? Det er alt efter else { der skal vises hvis man ikke er logget ind.

udvikler: session_start(); har jeg i min index.php fil. Og index.php er den fil der includer den fil som i ser ovenfor.
Avatar billede kack Nybegynder
22. november 2006 - 16:55 #5
oh sw_red_6.. Har fundet det.. min fejl.
Avatar billede kack Nybegynder
22. november 2006 - 17:16 #6
Ingen der kan hjælpe?
Avatar billede zynzz Praktikant
22. november 2006 - 17:54 #7
Altså du includer den side vi ser nu i en anden hvor der er session_start() i?, og du er sikker på at din $_SESSION['email'] bliver sat ?
Avatar billede kack Nybegynder
22. november 2006 - 18:04 #8
Ja, det er helt korrekt. Ja det skulle jeg da mene.

Her sætter jeg min $_SESSION['email']

$result = mysql_query("SELECT * FROM ka_brugere WHERE kodeord = '".md5($_POST['kodeord'])."' AND email='".$email."'");
    if (mysql_num_rows($result) == 1) {
$_SESSION["email"] = $email;
Avatar billede kack Nybegynder
22. november 2006 - 18:04 #9
^ Det sker i login-ok filen.
Avatar billede zynzz Praktikant
22. november 2006 - 18:12 #10
Har du tjekket om din session bliver sat?
Avatar billede kack Nybegynder
22. november 2006 - 18:14 #11
jamen bliver den ikk det, i det kodestykke jeg lige har vist?
Avatar billede zynzz Praktikant
22. november 2006 - 18:14 #12
Jo, hvis sessionen bliver sat vil den skrive "Velkommen"
Avatar billede zynzz Praktikant
22. november 2006 - 18:15 #13
Hvor får du $email fra ?
Avatar billede kack Nybegynder
22. november 2006 - 18:16 #14
<meta http-equiv="refresh" content="0;url=index.php">
<?php
if(empty($_POST['ok'])) {
  echo "Denne side kræver login adgang";
} else {
  if(empty($_POST['email']) || empty($_POST['kodeord'])) {
    echo 'Et af felterne er tomme';
  } else {
    $connection = mysql_connect("localhost","**","**");
    mysql_select_db("**", $connection);
    $result = mysql_query("SELECT * FROM ka_brugere WHERE kodeord = '".md5($_POST['kodeord'])."' AND email='".$email."'");
    if (mysql_num_rows($result) == 1) {
$_SESSION["email"] = $email;
      echo "<img src='images/sending_progress.gif' width='150' height='5'>";
    } else {
      echo "forkert email eller kodeord";
  }
  }
}
?>

Det er hele min login-ok.php fil. Jeg får $email fra det personen har logget ind med i login.php filen.
Avatar billede zynzz Praktikant
22. november 2006 - 18:18 #15
$email= $_POST['email'];
Avatar billede zynzz Praktikant
22. november 2006 - 18:20 #16
Og nu ved jeg ikke om den side er includeret i en anden hvor der er session_start() i.., hvis ikke skal du have det i toppen...
Avatar billede kack Nybegynder
22. november 2006 - 18:22 #17
Det er nu ændret. Men det gør ikke noget ved at login.php ikke bliver vist i index.php filen. Det virkede fint indtil jeg begyndte at lave så der er to forskellige menuer (En for folk der er logget ind og en for folk der ikke er).
Avatar billede sw_red_6 Nybegynder
23. november 2006 - 08:50 #18
dvs at den ikke viser login formen?
hvis du bruger koden fra org. spørgsmål kan det være den her linie der bærer skylden:
<table align="center" class="bottom">

prøv at ændre " til ' som du har i resten af den kode
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