22. oktober 2004 - 14:00Der er
26 kommentarer og 1 løsning
ændre loginkald fra txt til mysql.
Jeg har følgende uddrag af min loginfunktion. Problemer er at jeg gerne vil ændre den til at tjecke og hente fra MySql istedet for en tekst fil. Går ud fra at jeg ikke bare kan ændre $txt = file("pass"); til en db kald, da den jo tæller ned gennem tekstfilen... eller hvad? nogen der kan hjælpe?
session_start(); //funktion til at tjekke om brugernavn og password findes og ligger på samme linie i pass filen function tjeklogin($var1, $var2) {
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
husk jeg har lavet en mysql_connection.php der skal indeholde forbindelsen til din database.
Formen der sender afsted sender med method="post" og har felterne <input type="password" name="password" value=""> og <input type="text" name="brugernavn" value="">
Tilsvarende 2 felter står i mysql_queryen - De skal så svarer til felterne i din database.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/xxxxyyyy/spillesteder.dk/admin/intern/loginarray.php on line 14
$sql = ("SELECT * FROM user WHERE user_name = '".$navn."' AND password = '".$pass."'")or die(mysql_error()); if($sql){ while($r = mysql_fetch_array($sql)){ <--- Linje 14 print "log in sgu : ".$r["user_name"]; }
Har tjecket kaldet. Det burde være rigigt. Ved du hvorfor den laver fejl her?
Hvad gør den hvis jeg ikke har indtastet navn og pass, men går ind på siden alligevel? tror problemet ligger her. Den kan jo ikke kalde hvis .navn ikke eksisterer.
Hvis du ikke gider se på det mere forstår jeg det godt. Men er temmelig forvirret lige nu. Men hvis det er så inkluderer jeg <?php include("loginarray.php"); tjekigen(); ?> i alle filer der skal beskyttes.
Kald IKKE din databse connection fil for .inc - gør du det så vil jeg kunne downloade den. Gør som jeg gjorde og kald den .php så bliver den parset af serveren og downloades ikke.
md5 krypterer du virkeligt brugernavnene så kan du jo aldrig se det igen :
function tjeklogin(){ if(!isset($_SESSION["username"],$_SESSION["id"]) || $_SESSION["id"] != session_id){ if(isset($_POST["navn"],$_POST["pass"])){ return login($_POST["navn"],$_POST["pass"]); }else{ return "Her skal du logge ind"; // ovenstående liner kan erstattes med header("location:logud_igenigen.php"); husk så at have formen der. } }else{ return "velkommen ".$_SESSION["username"]; } }
function login($navn, $pass) { $sql = mysql_query("SELECT * FROM users WHERE brugernavn = '".$navn."' AND password= MD5('".$pass."') LIMIT 0,1")or die(mysql_error()); if(mysql_num_rows($sql) != 0){ while($r = mysql_fetch_array($sql)){ $_SESSION["username"] = $r["nick"]; $_SESSION["id"] = session_id; } // return "YEAH MAN"; header("location:$_SERVER[PHP_SELF]?".$r["brugernavn"]); }else{ return "Forkert brugernavn eller password"; } } ?>
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.