22. juni 2004 - 09:57
Der er
9 kommentarer og 1 løsning
Session fejl, problem med login
Hvorfor bliver man ikke afvist hvis man har forkert login med den her kode: $var1 = $_REQUEST['navn']; include("config.php"); $foresp = mysql_query("SELECT * FROM brugere WHERE navn='$var1'") or die(mysql_error()); while ($data = mysql_fetch_array($foresp)){ $navn = $data[1]; $pass = $data[2]; } if($_REQUEST['navn'] == $navn && $_REQUEST['pass'] == $pass){ session_start(); $bruger = $_REQUEST['navn']; echo 'Welcome to page #1, du er logget ind'; $_SESSION['bruger'] = "$bruger"; $_SESSION['time'] = time(); } else { echo 'du er ikke logget ind'; } ?> Jeg troede man blev afvist, hvis ikke det indtastede pass og navn var det samme som det i databasen, men åbenbart ikke. Er der nogen der kan se hvorfor?
Annonceindlæg fra Salesforce
hvis det hele er i samme fil, skal du sætte session_start() som det absolut første i din fil
Hvordan kan jeg gøre det, jeg skal jo have IF ind først?
<?php session_start(); $var1 = $_REQUEST['navn']; include("config.php"); $foresp = mysql_query("SELECT * FROM brugere WHERE navn='$var1'") or die(mysql_error()); while ($data = mysql_fetch_array($foresp)){ $navn = $data[1]; $pass = $data[2]; } if($_REQUEST['navn'] == $navn && $_REQUEST['pass'] == $pass){ $bruger = $_REQUEST['navn']; echo 'Welcome to page #1, du er logget ind'; $_SESSION['bruger'] = "$bruger"; $_SESSION['time'] = time(); } else { echo 'du er ikke logget ind'; } ?>
Det virker stadig ikke, man kan stadig logge ind med forkert navn og pass...
Jeg går ud fa at det kommer fra en side med nogle input felter, dem indvoldvere du jo slet ikke i filen, jeg har login, prøv noget med dette her! --- loggerin.php ------ <? session_start(); include("config.php"); $query = "SELECT id, user, pass FROM login WHERE user = '".$_POST['bruger']."' AND pass= '".$_POST['pass']."'"; $result = mysql_query($query)or die("MySQL fejl: " . mysql_error()); $log = mysql_fetch_array($result); if ($_POST['bruger'] = $log['user'] && $_POST['pass'] = $log['pass']) { $_SESSION['status'] = "login"; $_SESSION['navn'] = $bruger; print(" <script language='javascript'> location.href='indexm.php'; </script>"); } else { $_SESSION['status'] = "fejl"; print(" <script language='javascript'> location.href='login.php'; </script>"); } ---- login.php ----- // HER HAR DU DINE INPUT FELTER <?php session_start(); if ($_SESSION['status'] == "fejl") { print(" <font face='verdana' size='2' color='#ff0000'> <b>Der var noget galt med enten dit Brugernavn eller dit Password!!!</b></font>"); } ?>
Så kan du evt. selv tilføjelidt funktioner til den! Husk at man skal være logget ind for at se indedxm.php så det skal du ligehave lavet til den også!
Det virkede, tak. Jeg skal lige høre, er det ikke bare en if ($_SESSION['status'] == "login") jeg skal bruge for at gøre sådan at man kun kan se siden, hvis man er logget ind?
Undskyld jeg svarer så sent, har været på arbejde, jeg gør således: <?php session_start(); if ($_SESSION['status'] == "login") { } else { print(" <script language='javascript'> location.href='login.php'; </script>"); } ?> Så Jo det er det!
Goodie, smider du et svar?
07. august 2004 - 13:54
#10
Lukker
Vi tilbyder markedets bedste kurser inden for webudvikling