Avean Skrevet 1. desember 2010 Del Skrevet 1. desember 2010 (endret) Hei, Har et snodig problem. Har et login/logout script som funker. Session registreres og ser om jeg er logget inn og jeg kan logge ut. Men det som IKKE funker er når jeg skal echoe ut brukernavnet f.eks. Jeg skjønner ikke hvorfor, sikkert en ekstrem nybegynner feil jeg ikke klarer å se her. index.php <? // Use session variable on this page. session_start(); ////// Logout Section. Delete all session variable. session_destroy(); $message=""; ////// Login Section. $Login=$_POST['Login']; if($Login){ // If clicked on Login button. $username=$_POST['username']; $md5_password=md5($_POST['password']); // Encrypt password with md5() function. // Connect database. $host="x"; // Host name. $db_user="x"; // MySQL username. $db_password="x"; // MySQL password. $database="x"; // Database name. mysql_connect($host,$db_user,$db_password); mysql_select_db($database); // Check matching of username and password. $result=mysql_query("select * from users where username='$username' and password='$md5_password'"); if(mysql_num_rows($result)!='0'){ // If match. session_register("username"); // Create session username. header("location:main.php"); // Re-direct to main.php exit; }else{ // If not match. $message="--- Incorrect Username or Password ---"; } } // End Login authorize check. ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test</title> </head> <body> <? echo $message; ?> <form id="loginform" name="loginform" method="post" action="<? echo $PHP_SELF; ?>"> User : <input name="username" type="text" id="username" /> Password : <input name="password" type="password" id="password" /> <input name="Login" type="submit" id="Login" value="Login" /> </form> </body> </html> main.php <?php session_start(); // Use session variable on this page. if(!session_is_registered("username")){ // if session variable "username" does not exist. header("location:index.php"); // Re-direct to index.php } ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test</title> </head> <body> <p>Hello <?php echo $_SESSION['username']; ?>! You are now Logged in.</p> <p><a href="index.php">Logout</a></p> </body> </html> Endret 1. desember 2010 av Avean Lenke til kommentar
Thomas. Skrevet 1. desember 2010 Del Skrevet 1. desember 2010 Hvorfor sletter du session'en på linja under der du starter den? Lenke til kommentar
Avean Skrevet 1. desember 2010 Forfatter Del Skrevet 1. desember 2010 Fulgte en tutorial Nok et eksempel på hvor mye dårlig som ligger ute Spekulerte på det samme selv. tROOP4H: Så veldig fint ut det der, skal teste det ut Takker takker. Lenke til kommentar
Avean Skrevet 1. desember 2010 Forfatter Del Skrevet 1. desember 2010 Fant ut hva problemet var på mitt script. Hadde ikke satt opp noe session variabel mot $_POST username i det hele tatt. Så det fikset jeg. Nå har jeg laget en if statement men sliter med oppsettet her. Rett og slett hvordan jeg skal formatere det helt riktig. <?php if(isset($SESSION[username])) { echo "Welcome $SESSION[username]"; }else { echo "<form method="post" action="<?php echo $PHP_SELF ?>" ?> Username: <input name='username' type='text' size='10' maxlength='20' id='username' /> Password: <input name='password' type='password' size='10' maxlength='20' id='password' /> <input name='Login' type='submit' value='Login' id='Login' /> </form> "; } ?> Dette funker ikke, her får jeg syntax error så jeg er nødt til å sette ' istedenfor " på selve html formen. Problemet da er at action $PHP_SELF på formen vil ikke fungere. Tips anyone ? Lenke til kommentar
j-- Skrevet 2. desember 2010 Del Skrevet 2. desember 2010 <?php if(isset($_SESSION['username'])){ echo 'Welcome ' . $_SESSION['username']; }else{ echo ' <form method="post" action="' . $PHP_SELF . '"> Username: <input name="username" type="text" size="10" maxlength="20" id="username" /> Password: <input name="password" type="password" size="10" maxlength="20" id="password" /> <input name="Login" type="submit" value="Login" id="Login" /> </form> '; } ?> Tips: Tenk over hvor du putter " og ', og hvorfor du putter de der. Legg også merke til "$_" istedenfor "$". $PHP_SELF skal nok være $_SERVER['PHP_SELF']. Sjekk Predefined Variables. And happy coding =] 1 Lenke til kommentar
ventrec Skrevet 3. desember 2010 Del Skrevet 3. desember 2010 Du bør også fjerne session_register fra scriptet ditt, ettersom det er en utgått funksjon etter PHP 5.3.0, med andre ord kan scriptet ditt slutte å virke hvis du plutselig overfører scriptet til en annen webserver med en nyere PHP-versjon. Du bør heller sette session-variabler på denne måten: $_SESSION['username'] = "Oluf"; Lenke til kommentar
xqus Skrevet 27. desember 2010 Del Skrevet 27. desember 2010 Du bør også fjerne session_register fra scriptet ditt, ettersom det er en utgått funksjon etter PHP 5.3.0, med andre ord kan scriptet ditt slutte å virke hvis du plutselig overfører scriptet til en annen webserver med en nyere PHP-versjon. Du bør heller sette session-variabler på denne måten: $_SESSION['username'] = "Oluf"; Samme med if(!session_is_registered("username")){ Bør være noe slikt som if(!isset($_SESSION['username'])) { Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå