hvis brugeren har valgt husk mig, skal der når han logger ind gemmes to cookies. setcookie ( "username" , $_POST['myusername'] ); setcookie ( "password" , $_POST['mypassword'] );
Du bør kryptere password, men det er ikke et nødvendigt.
For at undgå at brugeren bliver spurgt om password, hvis han har bedt siden om at huske ham, bruger du følgende kode:
if (!isset($_COOKIE['username']) { vis loginformular } else { login med $_COOKIE['username'] og $_COOKIE['password'] }
Jeg har prøvet at bruge det sidste script og lagt det som det første på min "checklogin.php", men der bliver ikke oprettet en cookie... Jeg har også prøvet med dette:
if (!isset($_COOKIE['username']) { "loginform" } else { header("location:calendar.php");
Ved ikke helt hvad du mener med: login med $_COOKIE['username'] og $_COOKIE['password']?
jeg mener at du skal logge ind med $_COOKIE['username'] og $_COOKIE['password'] ... det er jo de cookies, brugernavn og password er gemt i .. de svarer til $_POST['username'] og $_POST['password'].
// username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword'];
med
if(isset($_COOKIE['username'])) { $myusername=$_COOKIE['username']; $mypassword=$_COOKIE['password']; } else { // username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; }
på siden hvor brugeren kan logge ind, skal du skrive følgende i starten af siden (også før lineskift eller mellemrum):
<?php if (isset($_COOKIE['username'])) { header("location:checklogin.php"); } ?>
<?php session_start(); if(isset($_SESSION["myusername"])) { if (isset($_COOKIE['username'])) { header("location:checklogin.php"); } ?>
Endvidere skal cookiesne slettes igen, hvis brugeren logger ud. Dette gøres ved at sætte dem til ingenting: setcookie ( "username" , "" ); setcookie ( "password" , "" );
ved ikke om det er problemet, men ob_start() bliver kaldt efter der bliver sendt et linjeskft ud. Pointen med ob (output buffer) er at den sikre at serveren ikke giver et output til klienten, for så snart det er sket, kan man ikke længere arbejde med cookies.
<?php if ( $_POST['huskmig']==1 ) { setcookie ( "username" , $_POST['myusername'] ); setcookie ( "password" , $_POST['mypassword'] ); } ?> <?php ob_start(); $host="localhost"; // Host name $username="********"; // Mysql username $password="********"; // Mysql password $db_name="********"; // Database name $tbl_name="members"; // Table name
skal laves om til
<?php ob_start(); if ( $_POST['huskmig']==1 ) { setcookie ( "username" , $_POST['myusername'] ); setcookie ( "password" , $_POST['mypassword'] ); } $host="localhost"; // Host name $username="********"; // Mysql username $password="********"; // Mysql password $db_name="********"; // Database name $tbl_name="members"; // Table name
<?php ob_start(); if ( $_POST['huskmig']==1 ) { setcookie ( "username" , $_POST['myusername'] ); setcookie ( "password" , $_POST['mypassword'] ); } $host="localhost"; // Host name $username="********"; // Mysql username $password="********"; // Mysql password $db_name="********"; // Database name $tbl_name="members"; // Table name
// Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
if(isset($_COOKIE['username'])) { $myusername=$_COOKIE['username']; $mypassword=$_COOKIE['password']; } else { // username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['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:login_success.php"); } else { header("location:login_failed.php"); } ob_end_flush();
if(isset($_COOKIE['username'])) { $myusername=$_COOKIE['username']; $mypassword=$_COOKIE['password']; } else { // username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; }
laves om til dette
if(isset($_COOKIE['cusername'])) { $myusername=$_COOKIE['cusername']; $mypassword=$_COOKIE['cpassword']; } else { // username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['mypassword']; }
------------
Jeg er ikke helt sikker på om det gør nogen forskel at lave username om til cusername, men hvis safemode ikke er slået til, tror jeg at $username kan referere til $_COOKIE['username']...
Beklager jeg lige har været væk i noget tid, men skolen har været lidt hård med lektierne .. :/
Men jeg kan lige prøve at smide dine koder ind på min server, og få dem til at virke.. Så poster jeg dem når de gør (bliver nok i morgen eller overmorgen).
<?php ob_start(); if ( $_POST['huskmig']==1 && empty($_COOKIE['username'])) { // husker cookies i 100 dage setcookie ( "username" , $_POST['myusername'] , time() + 60*60*24*100); setcookie ( "password" , $_POST['mypassword'] , time() + 60*60*24*100); } $host="localhost"; // Host name $username="***"; // Mysql username $password="***"; // Mysql password $db_name="***"; // Database name $tbl_name="members"; // Table name
// Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
if(isset($_COOKIE['username'])) { $myusername=$_COOKIE['username']; $mypassword=$_COOKIE['password']; } else { // username and password sent from signup form $myusername=$_POST['myusername']; $mypassword=$_POST['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:login_success.php"); } else { header("location:login_failed.php"); } ob_end_flush();
Ved du forresten hvorfor man ikke kan logge på i Firefox ? Når jeg prøver at logge på, går den helt amok og bliver ved med at prøve at indlæse mine to Iframes, men kan ikke. Den står nærmest bare og blinker.
hmm jeg bruger selv firefox, og jeg testede koden i firefox, men hvis du sender et link til din side, kan jeg måske finde ud af det .. Ellers hvis du har noget kode på den side, der skal loades, som jeg ikke har set, kan du lige poste det her
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.