Avatar billede mibu Nybegynder
01. oktober 2013 - 19:26 Der er 8 kommentarer og
1 løsning

Min session virker ikke

Måske er det mig der er blind og dum,men jeg har et login script som virker, nu vil jeg så gerne vise navnet på den der er logget ind. men det kan jeg ikke få til at virker, der skrives simpelthen ikke noget ud.

Mit login script ser sådan her ud:

<?php

ob_start();

include ("siteconfig.php");

// Connect to server and select databse.

include ("connekt.php");


// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];



// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:index2.php");
}

else {
header("location:wrong.php");

}

ob_end_flush();
?>

Myusername vil jeg så gerne bruge på denne side som er include på min index:

<?php
session_start();

$u_name = $_SESSION['myusername'];

$result = mysql_query ("SELECT * FROM members WHERE username = '$u_name'");


while($row = mysql_fetch_array($result))
  {
  echo "<div style='text-align:center'>Hej ";
  echo "" . $row['name'] . "</div>";

}

?>

Er der nogen forslag?
01. oktober 2013 - 20:03 #1
session_register er depreciated, http://php.net/manual/en/function.session-register.php .  Jeg har normalt held med noget i denne retning:

session_start();
$_SESSION['myusername'] = $myusername;
o.s.v.

Så skulle du kunne kalde $u_name = $_SESSION['myusername'];
Avatar billede mibu Nybegynder
01. oktober 2013 - 20:52 #2
Hmm! Det har jeg prøvet, virker ikke.

Jeg var så ikke lige klar over at session_register ikke bruges mere,  måske skal jeg i stedet for lave hele login scriptet om.
01. oktober 2013 - 21:02 #3
Ja så kan jeg ikke regne den ud.  Vi må håbe på input fra anden side.
Avatar billede xicrow Nybegynder
01. oktober 2013 - 22:20 #4
Umiddelbart vil jeg antage at de to stykker PHP kode, er to forskellige filer.

Du skal huske at bruge session_start() i alle filer du bruger sessions, lige meget om du sætter eller henter fra session.

Det kunne evt. være en ide at indsætte session_start() i en fil der bliver inkluderet i alle filer, så du ikke skal huske at skrive det.

Derudover, husk at session_start() skal køres før noget indhold bliver sendt til browseren.
Avatar billede arne_v Ekspert
02. oktober 2013 - 01:44 #5
Af andre ting:
* stripslashes er vist ikke noedvendig/hensigtsmaessig
* mysql_real_escape_string uden connection er potentielt ikke sikker
* mysql extension er generelt foraeldet
* stavefejl i navne kan godt forvirre dem som skal vedligeholde koden
Avatar billede MadsHaupt Juniormester
02. oktober 2013 - 10:46 #6
Så dan gør jeg:
<?php

session_start();

$_SESSION["test"] = "testValue";

?>


<?php

session_start();

echo $_SESSION["test"];

?>
02. oktober 2013 - 11:44 #7
#6 (og mibu) det er også hvad jeg gør og forsøgte at udtrykke i #1, bortset fra at jeg bruger variabel $myusername hvor brugernavnet er defineret.  Hvis mibu har prøvet, men det virker ikke, så må der være andre problemer med koden (såsom foreslået i #4 og #5.)
Avatar billede mibu Nybegynder
02. oktober 2013 - 18:56 #8
Har lige testet lidt igen :-)
Christian_Belgien! beklager jeg tror jeg misforstod din beskrivelse,
jeg rettede mit login fra linie 35 til denne her og så virkede det, efter at have læst dit svar en gang til, må jeg jo erkende at det vist var det du mente. Læg et svar og du får dine surt tjente poient, - og tak for alle svarene!

// Register $myusername, $mypassword and redirect to file "login_success.php"
session_start();
    $_SESSION['myusername'] = $myusername;
    $_SESSION['mypassword'] = $mypassword;
02. oktober 2013 - 21:22 #9
Ok, her er svar som du bad om.
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