Avatar billede sim00n Praktikant
08. august 2005 - 17:45 Der er 20 kommentarer og
1 løsning

phpBB loginboks - password hjælp

Jeg har været igang med at lave en login boks på min hjemmeside.
Login koden er:

              include("db.php");
if($_POST[navn] && $_POST[kode]) {
$query = mysql_query("SELECT * FROM Forum_users") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

if($row[username] == $_POST[navn] AND $row[user_password] == $_POST[kode]) {

Men som i ser, så skal det man i boksen før til Password være præcis det samme som i databasen. Men der kommer problemet. Fordi kodeordet i data basen ser slet ikke ud som det man skriver i login boksen. Det er formåligt en speciel måde man benytter. Så alle dem der har lavet sådan en login boks før. HJÆLP MIG ! :P
Avatar billede jaw Nybegynder
08. august 2005 - 17:48 #1
Uden at have pillet ved PhpBB vil jeg skyde på det er md5-krypteret.

Prøv:

if($row[username] == $_POST[navn] AND $row[user_password] == md5($_POST[kode])) {
Avatar billede jaw Nybegynder
08. august 2005 - 17:55 #2
Og jeg ville måske også ændre det en smule:

if(!empty($_POST[navn]) && !empty($_POST[kode])) {
  $query = mysql_query("SELECT COUNT(*) FROM Forum_users WHERE username = '".$_POST['navn']."' AND user_password = '".md5($_POST['kode']."'") or die(mysql_error());
  if(mysql_result($query, 0) > 0) {
Avatar billede sim00n Praktikant
08. august 2005 - 18:11 #3
Kan jeg så ikke få til at virke
Avatar billede jaw Nybegynder
08. august 2005 - 18:17 #4
Hvilket af det? Det med md5 eller hva?
Avatar billede sim00n Praktikant
08. august 2005 - 18:17 #5
Jep. Det virker ikke ;)
Avatar billede jaw Nybegynder
08. august 2005 - 18:19 #6
Hvordan ser et password fra databasen f.eks. ud?
Avatar billede sim00n Praktikant
08. august 2005 - 18:21 #7
finder det lige ;)
Avatar billede sim00n Praktikant
08. august 2005 - 18:24 #8
det ser sådan ca. ud: d963318c457s51bbf131459bdc789218
Avatar billede jaw Nybegynder
08. august 2005 - 18:25 #9
Så test en password du kender og udskriv det i en blank fil og se om det bliver det samme:

<?
echo md5("passwordet");
?>

Hvis det bliver det samme, så er det md5-krypteret, og så bruger du det bare forkert i din forespørgsel :)
Avatar billede sim00n Praktikant
08. august 2005 - 18:30 #10
Det bliver det samme som det password jeg angav
Avatar billede jaw Nybegynder
08. august 2005 - 18:31 #11
Godt, så skal det sku også virke :)

Du må lige på ny paste din kode sådan som den ser ud nu...
Avatar billede sim00n Praktikant
08. august 2005 - 18:34 #12
if($_POST[navn] && $_POST[kode]) {
$query = mysql_query("SELECT * FROM Forum_users") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {

if($row[username] == $_POST[navn] AND $row[user_password] == md5($_POST[kode])) {
$SESSION[status] = "on";?>

Sådan ser den så ud ;)
Avatar billede jaw Nybegynder
08. august 2005 - 18:37 #13
Og du husker session_start() i toppen og alt det der? Prøv at echo'e et eller andet når du sætter din session så du er helt sikker på, at problemet ikke ligger et andet sted end din databaseforespørgsel.
Avatar billede sim00n Praktikant
08. august 2005 - 18:39 #14
Der er sission_start på(); på
Avatar billede jaw Nybegynder
08. august 2005 - 18:43 #15
Og du er sikker på, at den henter det du vil have?


if($_POST[navn] && $_POST[kode]) {
$query = mysql_query("SELECT * FROM Forum_users") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
echo $row['username']." ".$row['user_password']."<br />";
}

Prøv det og se om der kommer det der skal. Evt. kan du et sted udskrive dine $_POST['navn'] og $_POST['kode'] og se om de også indeholder dét du mener de gør... Lidt udelukkelsesmetode må der til engang imellem.
Avatar billede sim00n Praktikant
08. august 2005 - 18:54 #16
Det er godt nok det rigtige der kommer frem. Men vil bare ikke logge ind med passwordet
Avatar billede jaw Nybegynder
08. august 2005 - 19:15 #17
Så bør dette også give resultat:

if($_POST[navn] && $_POST[kode]) {
$query = mysql_query("SELECT * FROM Forum_users") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  if($row[username] == $_POST[navn] AND $row[user_password] == md5($_POST[kode])) {
    echo "ok";
  }
}

Måske du skal bruge: md5(strtolower($_POST['kode'])) - måske phpBB indsætter alt med små bogstaver for at undgå case-sensitive fejl.
Avatar billede sim00n Praktikant
10. august 2005 - 20:44 #18
Jeg tror altså næppe på at det er "Md5" jeg skal bruge. Nu har jeg næsten prøvet alt. Men ingen resultat :(
Avatar billede jaw Nybegynder
10. august 2005 - 20:56 #19
Som sagt har jeg aldrig rigtig pillet ved phpBB. Men hvis det password der står i din database og det du får ved echo md5("password"); er det samme, så burde det være...
Avatar billede sim00n Praktikant
10. august 2005 - 21:20 #20
Ja. Jeg er også meget tilfreds med din indsats. ;)
Avatar billede jaw Nybegynder
30. august 2005 - 18:26 #21
Hope so - og selv tak...

Find lige ud af, hvad du vil gøre herfra.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester