Gå til innhold

Hvordan sjekke kryptert passord i session?


Anbefalte innlegg

Håper noen kan se på disse kodene og hjelpe meg litt. Det er snakk om loginn side, og jeg får ikke logget inn som bruker selv om jeg får tilsendt passord i mailen. Jeg tror det kan ha noe med passordet når det sjekkes mot databasen i control.php for å gi/avslå tilgang til en side. control.php funker når pasordet er ukryptert, men jeg har kryptert det (tror jeg da) inn i databasen. Hvordan kan control.php sjekke om det krypterte passordet stemmer?

 

signup.php

<?php 
include("connection.php"); 
include("db.php"); 
else: 

function errorfillin($msg) {
die($msg);
} 

if ($_POST['MUsername']=='' or $_POST['MFirstName']=='' 
    or $_POST['MEmail']=='') { 
      errorfillin('One or more required fields were left blank.\\n'. 
            'Please fill them in and try again.'); 
  }

function error($msg) {
die($msg);
} 

$sql = "SELECT COUNT(*) FROM member WHERE MUsername = '$_POST[MUsername]'"; 
  $result = mysql_query($sql); 
  if (!$result) { 
      error('A database error occurred in processing your '. 
            'submission.\\nIf this error persists, please '. 
            'contact us'); 
  } 
 
  function erroruserexist($msg) {
die($msg);
} 

  
  if (@mysql_result($result,0,0)>0) { 
      erroruserexist('A user already exists with your chosen userid.\\n'. 
            'Please try another.'); 
  }

[B]$newpass = substr(md5(time()),0,6);[/B]

$sql = "INSERT INTO member SET 
            MUsername = '$_POST[MUsername]', 
            MPassword = PASSWORD('$newpass'), 
            MFirstName = '$_POST[MFirstName]', 
            MEmail = '$_POST[MEmail]'"; 
  if (!mysql_query($sql)) 
      error('A database error occurred in processing your '. 
            'submission.\\nIf this error persists, please '. 
            'contact us.');

// Email the new password
$message = "Hi! 
Your account has been created! To log in, proceed to the 
following address: 
 (...)
Your personal login ID and password are as 
follows: 

  MUsername: $_POST[MUsername] 
  MPassword: $newpass 

Your Webmaster 
"; 

  mail($_POST['MEmail'],"Your Password for Your Website", 
       $message, "From:us <[email protected]>");
?> 

 

 

control.php

<?php 
include("connection.php"); 
include("db.php"); 

session_start();

$MUsername = isset($_POST['MUsername']) ? $_POST['MUsername'] : $_SESSION['MUsername']; 
$MPassword = isset($_POST['MPassword']) ? $_POST['MPassword'] : $_SESSION['MPassword'];

if(!isset($MUsername)) { 
?> 

<head> 
<title> Please Log In </title> 

</head> 
<body> 
<h1> Login Required </h1> 
<p>You must log in to access this area of the site. If you are 
   not a registered user, <a href="signup.php">click here</a> 
   to sign up </p> 
<p><form method="post" action="<?=$_SERVER['PHP_SELF']?>"> 
  User ID: <input type="text" name="MUsername" size="8" /><br /> 
  Password: <input type="password" name="MPassword" SIZE="8" /><br /> 
  <input type="submit" value="Log in" /> 
</form></p> 
</body> 
</html> 
<?php 
exit; 
}



$_SESSION['MUsername'] = $MUsername; 
$_SESSION['MPassword'] = $MPassword;

$sql = "SELECT * FROM member WHERE 
      MUsername = '$MUsername' AND MPassword = '$MPassword'"; 
$result = mysql_query($sql); 
if (!$result) { 
error('A database error occurred while checking your '. 
      'login details.\\nIfhis error persists, please '. 
      'contact us.'); 
}

if (mysql_num_rows($result) == 0) { 
unset($_SESSION['MUsername']); 
unset($_SESSION['MPassword']); 
?> 

<head> 
<title> Access Denied </title> 

</head> 
<body> 
<h1> Access Denied </h1> 
<p>Your user ID or password is incorrect, or you are not a 
   registered user on this site. To try logging in again, click 
   <a href="<?=$_SERVER['PHP_SELF']?>">here</a>. To register for instant 
   access, click <a href="signup.php">here</a>.</p> 
</body> 
</html> 
<?php 
exit; 
}

Lenke til kommentar
Videoannonse
Annonse

Jeg skjønner ikke helt hvor jeg skal skrive det.

Et passord blir automatisk laget og mailet til brukeren. Jeg regner med at det er det denne linjen gjør: $newpass = substr(md5(time()),0,6);

 

skal jeg da skrive $MPassword = md5($MPassword); der passordet sjekkes?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...