Avatar billede salmanr Nybegynder
19. juli 2004 - 07:28 Der er 8 kommentarer og
1 løsning

Hjælp til password check

Jeg har skrevet følgende kode. Først er variabler sat fra siden før den. Som indeholder en form til dette formål.
Så laver jeg variablen om til md5 format, for at kunne sammenligne med db'en's data.
Det ser umiddelbart ud til at virke, men ved en tilfældighed trykkede jeg ddddddddd i formen, og selv om det ikke er koden eksekverede den første funktion. Hvordan kan det være?
<?
 
  //Først laver vi kontakt til db'en.
  include("db.php");
 
  //Så skal vi have lavet nogle variabler ud af de brugerinput i formen på change_pw_form.php
  $old_password = $_POST['old_password'];
 
  //Vi konverter det gamle password brugeren har givet til md5 format, som det første.
  $old_password = md5($old_password);
   
  //Så laver vi et kald til databasen og ser om det password der ligger der svarer til brugerens input.
  //Så vi kan få bekræftet om brugeren er indehaver af det rigtige password.
  $sql_password_check = mysql_query("SELECT password FROM users WHERE password='$old_password'");
  $password_check = mysql_num_rows($sql_password_check);
 
  if($old_password == ($password_check))
  {
  header("Location: login_success.php");
  }
  else
  {
    echo "Du har ikke tastet -GAMMEL PASSWORD- korrekt ind!";
 
  }
?>   

   
//SalmanR
Avatar billede salmanr Nybegynder
19. juli 2004 - 07:32 #1
Lige en comment: Men hvis jeg trykker fx. tko(Som ikke er passwordet);) i feltet, så eksekveres else func. godt nok.
Avatar billede nikolajdu Nybegynder
19. juli 2004 - 08:36 #2
<?php
  include("db.php");

  $sql_password_check = mysql_query("SELECT password FROM users WHERE password='".md5($_POST['old_password'])."'");
 
      if(mysql_num_rows($sql_password_check) != 0)
  {
  header("Location: login_success.php");
  }
  else
  {
    echo "Du har ikke tastet -GAMMEL PASSWORD- korrekt ind!";
 
  }
?>
Avatar billede salmanr Nybegynder
19. juli 2004 - 08:44 #3
$sql_password_check = mysql_query("SELECT password FROM users WHERE password='".md5($_POST['old_password'])."'"); -God måde, havde jeg ikke lige tænkt på:)

Kan du evt. uddybe denne linje:

if(mysql_num_rows($sql_password_check) != 0)
Avatar billede salmanr Nybegynder
19. juli 2004 - 08:45 #4
Føjede det her til og det virkede, men hvis din metode også virker er den jo noget kortere:)
if($password_check > 0){
    while($row = mysql_fetch_array($sql_password_check)){
    foreach( $row AS $key => $val ){
    $$key = stripslashes( $val );
  }
Avatar billede nikolajdu Nybegynder
19. juli 2004 - 08:49 #5
if(mysql_num_rows($sql_password_check) != 0) // tælller om der findes rækker med det password - Problemet her er jo at du ikke tjekker om brugernavnet også findes, så hvis jeg har samme password som dig - så kan jeg logge ind som dig.
Avatar billede nikolajdu Nybegynder
19. juli 2004 - 08:51 #6
$sql_password_check = mysql_query("SELECT password FROM users WHERE username='".$_POST["user_name"]."' AND password=MD5(".$_POST['old_password'].")");
Avatar billede salmanr Nybegynder
19. juli 2004 - 08:57 #7
Jep det har jeg da glemt:) Takker, du må gerne få point hvis du smider et svar.
Avatar billede nikolajdu Nybegynder
19. juli 2004 - 09:01 #8
oki doki :))
Avatar billede nikolajdu Nybegynder
19. juli 2004 - 09:12 #9
tak for points :))
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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