12. maj 2011 - 13:42Der er
11 kommentarer og 1 løsning
Login system
Hej eksperter.
Jeg har et par indlæg her på siden med et login system, som jeg er ved at lave. Og nogle gange støder man jo ind i problemer - håber ikke folk tager mine spørgsmål som spam.
Jeg kunne godt tænke mig, at når man loggede ind, så stod der fx: Velkommen tilbage, LilleUdvikler.
Ligesom der her på Eksperten.dk står "Velkommen LilleUdvikler".
Jeg har prøvet nogle forskellige ting og sager, men det er ikke helt lykkedes mig, overhovedet ikke faktisk.
Jeg har en idé om, at det er rimelig nemt, men jeg ved bare ikke lige hvordan.
når der logges på gemmer du vel id i en $sessionid - gem samtidig brugernavn i en $sessionnavn. Hvis $sessionnavn findes, så skal php bare skrive 'velkommen tilbage ' + navn - hvis det ikke findes så skrives ingenting (evt klik her for at logge på)
Altså, jeg ved ikke om det er det du mener. Men jeg har i min mySQL en id på alle medlemmere. Er det det du mener. Eller er det noget helt andet ,som jeg måske skal have tilføjet? :o)
Når du logger ind så sammenligner du vel det som folk skriver i brugernavn og password feltet med det der står i din database. Hvis det matcher så bliver de logget ind.
Mit forslag vil være lige som det claes skriver, at hvis det lykkedes for en person at logge ind så gem deres brugerID og deres brugernavn i en $_SESSION, hvorfra du så kan referere til den i din tekst.
Altså noget i den her retning:
if(!$_SESSION[username]) { echo 'Klik her for at logge ind'; } else { $navn = $_SESSION[username]; echo 'Velkommen tilbage ' + $navn; }
$brugernavn= mysql_real_escape_string($_POST['brugernavn']); // mysql_real_escape_string er som regel fint, når du ikke skal indsætte i databasen, men blot hente $password= md5($_POST['password']); // ingen grund til at 'rense' en MD5 hashet streng, da strengen alligevel ikke kommer til at indeholde noget snavs
$sql= "SELECT * FROM $tbl_name WHERE brugernavn='$brugernavn' and password='$password'"; $result=mysql_query($sql);
$count=mysql_num_rows($result); if($count==1) { $_SESSION['loggedIn'] = true; header("Location: /pressrest/index.php"); } else { echo "Der er sket en fejl. <br> <a href='#'>Har du glemt din adgangskode?</a> <br> <a href='login/opret.php'>Eller er du endnu ikke oprettet som bruger?</a>"; include("main_login.php"); }
Velkommen tilbage, <p>Du har nu følgende muligheder:</p> <table> <tr> <td><a href="#">Skriv en artikel</a></td> </tr> <tr> <td><a href="login/logout.php">Log ud</a></td> </tr> </table>
Har du afprøvet min? :) ret sikker på at den virker, der er måske lidt mere kode end i den claes har lavet, men det er den jeg bruger selv og det virker for mig :P
Må vi evt. se hvad du har lavet for at det virker?
Jeg har faktisk bare lavet det, som claes sagde :)
<?php
session_start();
include('connect_login.php');
$brugernavn= mysql_real_escape_string($_POST['brugernavn']); // mysql_real_escape_string er som regel fint, når du ikke skal indsætte i databasen, men blot hente $password= md5($_POST['password']); // ingen grund til at 'rense' en MD5 hashet streng, da strengen alligevel ikke kommer til at indeholde noget snavs
$sql= "SELECT * FROM $tbl_name WHERE brugernavn='$brugernavn' and password='$password'"; $result=mysql_query($sql);
$count=mysql_num_rows($result); if($count==1) { $_SESSION['loggedIn'] = true; $_SESSION['brugerID'] = $brugernavn; header("Location: /pressrest/index.php"); } else { echo "Der er sket en fejl. <br> <a href='#'>Har du glemt din adgangskode?</a> <br> <a href='login/opret.php'>Eller er du endnu ikke oprettet som bruger?</a>"; include("main_login.php"); }
?>
Synes godt om
Ny brugerNybegynder
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.