Gå til innhold

feil i innloggings script?


Anbefalte innlegg

jeg vet det er dreamweaver generert mye av koden men ikke la det stoppe dere å hjelpe meg!

 

jeg har 2 script hvorav det ene skal vise alle brukere som er registrert og passordet. Passordet blir lagret i md5 og det virker som dreamweaver koden ikke er glad i md5 krypterte passord for jeg måtte slite litt for å få fikset sånn at passordene blir md5. uansett her er koden som viser registrerte og hvor du kan registrere deg:

<?php require_once('Connections/conn.php'); ?>
<?php
$nick = $_POST['nick'];
$passord = $_POST['passord'];
$cryptpassord = md5($passord);
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = (" INSERT  INTO  `brukere` (  `nick` ,  `passord`  ) ");
   VALUES (  '$nick', md5($passord ) );

 mysql_select_db($database_conn, $conn);
 $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

 $insertGoTo = "index.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
 $insertSQL = sprintf("INSERT INTO brukere (nick, passord) VALUES (%s, %s)",
                      GetSQLValueString( $nick, "text" ),
                      GetSQLValueString( md5($passord), "text" ));

 mysql_select_db($database_conn, $conn);
 $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());
}

mysql_select_db($database_conn, $conn);
$query_Recordset1 = "SELECT nick, passord FROM brukere";
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>md5+SQL kryptering</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="200" border="1">
 <tr>
   <td>NICK</td>
   <td>PASSORD</td>
 </tr>
 <?php do { ?>
 <tr>
   <td><?php echo $row_Recordset1['nick']; ?></td>
   <td><?php echo $row_Recordset1['passord']; ?></td>
 </tr>
 <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
<p> </p>
<form method="post" name="form2" action="<?php echo $editFormAction; ?>">
 <table align="center">
   <tr valign="baseline">
     <td nowrap align="right">Nick:</td>
     <td><input type="text" name="nick" value="" size="32"></td>
   </tr>
   <tr valign="baseline">
     <td nowrap align="right">Passord:</td>
     <td><input type="password" name="passord" value="" size="32"></td>
   </tr>
   <tr valign="baseline">
     <td nowrap align="right"> </td>
     <td><input type="submit" value="Insert record"></td>
   </tr>
 </table>
 <input type="hidden" name="MM_insert" value="form2">
</form>
<p> </p>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

 

 

og her er koden til login script!

hvis jeg kopierer md5 koden så går det å logge inn men det går ikke hvis jeg taster inn passordet så jeg tror jeg må bruke et mellom script som sjekker mot md5 hashen. men da er jo egentlig passordet i ren tekst?

 

 

<?php require_once('Connections/conn.php'); ?>
<?php
// *** Validate request to login to this site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
 $GLOBALS['PrevUrl'] = $accesscheck;
 session_register('PrevUrl');
}

if (isset($_POST['brukernavn'])) {
 $loginUsername=$_POST['brukernavn'];
 $password=$_POST['passord'];
 $MM_fldUserAuthorization = "";
 $MM_redirectLoginSuccess = "http://www.vg.no";
 $MM_redirectLoginFailed = "http://google.com";
 $MM_redirecttoReferrer = false;
 mysql_select_db($database_conn, $conn);
 
 $LoginRS__query=sprintf("SELECT nick, passord FROM brukere WHERE nick='%s' AND passord='%s'",
   get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
  
 $LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error());
 $loginFoundUser = mysql_num_rows($LoginRS);
 if ($loginFoundUser) {
    $loginStrGroup = "";
   
   //declare two session variables and assign them
   $GLOBALS['MM_Username'] = $loginUsername;
   $GLOBALS['MM_UserGroup'] = $loginStrGroup;       

   //register the session variables
   session_register("MM_Username");
   session_register("MM_UserGroup");

   if (isset($_SESSION['PrevUrl']) && false) {
     $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
   }
   header("Location: " . $MM_redirectLoginSuccess );
 }
 else {
   header("Location: ". $MM_redirectLoginFailed );
 }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
 <input name="brukernavn" type="text" id="brukernavn">
 <input name="passord" type="password" id="passord">
 <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

 

 

noen som vet hva problemet er?

 

Takk for alle svar

Lenke til kommentar
Videoannonse
Annonse

Du må md5-kryptere passordet som skrives inn ved innlogging for at det skal matche det som ligger i databasen.

 

 

Sammenlikne altså passord i db med "md5($passord_som_skrives_inn)". Da burde det gå fint. Ellers er det som du sier - passordet i ren tekst vil ikke stemme med det krypterte. Det er noe av vitsen med krypteringen.

Lenke til kommentar

Veit ikkje om du har fikset koden ennå, men vist ikkje prøv og bytt

if (isset($_POST['brukernavn'])) {
$loginUsername=$_POST['brukernavn'];
$password=$_POST['passord'];

til

if (isset($_POST['brukernavn'])) {
$loginUsername=$_POST['brukernavn'];
$encrypt = md5($_POST['passord']);
$password=$encrypt;

 

Den burde fungere, men visse parter av den koden der forstår eg ikkje heilt kvifor er slik den er så det kan være du må forandre på database søket etter brukeren/passwordet og.

Lenke til kommentar

dreamweaver er jo helt mongo og da! jeg lager en tabell som skal skrive til sql og slettr den og lager den på nytt og da har jeg 2(!!!) helt like innføringer av php og sql kode, eneste som forsvant når jeg slettet den var html koden. tydelig at det er et stort problem til dreamweaver, men det funker. veldig dårlig koden av dreamweaver men funker det så funker det.

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...