Gå til innhold

Skifte av passord


Anbefalte innlegg

Hvordan lage en side der registrerte brukere kan skifte passordet sitt. Hvordan skal jeg sette opp dette. Passordene er MD5 cryptert.

 

Jeg har laget en side som ser slik ut:

<?PHP
               $cfgProgDir =  'login-script/';
               include($cfgProgDir . "secure.php");
?>
<?php
       include('mysql-config.php');
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<?php

       $result = @mysql_query("SELECT * FROM brukere WHERE Nick = '$login'");
       if (!$result) {
          die('<p>Får ikke kontakt med ' .
                      ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>');
       }

       // Vis tekt i som ligger i databasen
       while ( $row = mysql_fetch_array($result) ) {
         echo('

<table border=0 cellspacing=0 width=400>
<tr>
               <td background=nyheter.gif><b>Navn:</b>' . $row['Nick'] . '  
               <input type=hidden name=ID value=' . $row['ID'] . '></input></td>
</tr>
<tr>
               <td><b>Navn:</b><br> <textarea name=navn>' . $row['Navn'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Brukernavn:</b><br><textarea name=nick>' . $row['Nick'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Adresse:</b><br><textarea name=adresse>' . $row['Adresse'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Postnr:</b><br><textarea name=postnr>' . $row['Postnr'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Sted:</b><br><textarea name=sted>' . $row['Sted'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Alder:</b><br><textarea name=alder>' . $row['Alder'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>kjønn:</b><br><textarea name=kjonn>' . $row['Kjonn'] . '</textarea> </td>
</tr>
<tr>
              <td> <b>Tlf Mob:</b><br><textarea name=tlfmob>' . $row['Tlfmob'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Tlf Hjem:</b><br><textarea name=tlfhjem>' . $row['Tlfhjem'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>E-post:</b><br><textarea name=epost>' . $row['epost'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Passord:<b>Skriv INN PASSORD:</B></b><br><input type=password name=passord></input> </td>
</tr>
<tr>
               <td><input type=submit name=Rediger value=Oppdater></input> </td>
</tr>
</table>
');
}
?>
</form>

<! --- <?=$_SERVER['PHP_SELF']?> --- !>
<! --- Her ligger denne actionen --- !>

<?php
 if (isset($_POST['Rediger'])) {
 $name      = $_POST['navn'];
 $nick      = $_POST['nick'];
 $adresse   = $_POST['adresse'];
 $postnr    = $_POST['postnr'];
 $Sted      = $_POST['sted'];
 $Alder     = $_POST['alder'];
 $Kjonn     = $_POST['kjonn'];
 $Tlfmob    = $_POST['tlfmob'];
 $Tlfhjem   = $_POST['tlfhjem'];
 $Epost     = $_POST['epost'];
 $ID        = $_POST['ID'];
 $passord   = $_POST['passord'];

$sql = "UPDATE `brukere` SET
       `Navn` = '$name',
       `Adresse` = '$adresse',
       `Postnr` = '$postnr',
       `Sted` = '$Sted',
       `Alder` = '$Alder',
       `Kjonn` = '$Kjonn',
       `Tlfmob` = '$Tlfmob',
       `Tlfhjem` = '$Tlfhjem',
       `epost` = '$Epost',
       `Nick` = '$nick',
       `Passord` = MD5('$passord')
       WHERE `ID` = '$ID'";


if (@mysql_query($sql)) {
   echo('<p>
<html>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="0;URL=login.php">
</head>
<body>
</body>
</html>
.</p>');
 } else {
   echo('<p>Error: ' . mysql_error() . '</p>');
}
}
?>

 

Men problemet er at når brukerene skal bare skifte navn eller noe slikt så får brukeren det problemet at passordet blir blankt. Noen tips på hvordan jeg kan endre dette.?

Lenke til kommentar
Videoannonse
Annonse

Enkleste er nok å bare sjekke om passord fieldet i formen er satt, hvis det er satt så skift.

Og en liten sikkerhets sak her er å legge til et "gjenta passord" felt og sjekk om begge feltene er like før du skifter det til databasen.

Blir tungvint for brukeren i og med at du ikke kan hente ut et md5 kryptert passord igjen og da må gi han nytt.

 

<?php 
if (($passord == $passord2) && !empty($passord)) {
 oppdater passord
}
else {
 oppdater alt minus passord
}
?>

 

Du vil jo selfølgelig kode det annerledes og mere inn i din egen kode. Men har litt dårlig tid så viser bare veldig enkelt hvordan du kan gjøre det.

Lenke til kommentar
Hvordan lage en side der registrerte brukere kan skifte passordet sitt. Hvordan skal jeg sette opp dette. Passordene er MD5 cryptert.

 

Jeg har laget en side som ser slik ut:

<?PHP
               $cfgProgDir =  'login-script/';
               include($cfgProgDir . "secure.php");
?>
<?php
       include('mysql-config.php');
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<?php

       $result = @mysql_query("SELECT * FROM brukere WHERE Nick = '$login'");
       if (!$result) {
          die('<p>Får ikke kontakt med ' .
                      ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>');
       }

       // Vis tekt i som ligger i databasen
       while ( $row = mysql_fetch_array($result) ) {
         echo('

<table border=0 cellspacing=0 width=400>
<tr>
               <td background=nyheter.gif><b>Navn:</b>' . $row['Nick'] . '  
               <input type=hidden name=ID value=' . $row['ID'] . '></input></td>
</tr>
<tr>
               <td><b>Navn:</b><br> <textarea name=navn>' . $row['Navn'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Brukernavn:</b><br><textarea name=nick>' . $row['Nick'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Adresse:</b><br><textarea name=adresse>' . $row['Adresse'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Postnr:</b><br><textarea name=postnr>' . $row['Postnr'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Sted:</b><br><textarea name=sted>' . $row['Sted'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Alder:</b><br><textarea name=alder>' . $row['Alder'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>kjønn:</b><br><textarea name=kjonn>' . $row['Kjonn'] . '</textarea> </td>
</tr>
<tr>
              <td> <b>Tlf Mob:</b><br><textarea name=tlfmob>' . $row['Tlfmob'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Tlf Hjem:</b><br><textarea name=tlfhjem>' . $row['Tlfhjem'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>E-post:</b><br><textarea name=epost>' . $row['epost'] . '</textarea> </td>
</tr>
<tr>
               <td> <b>Passord:<b>Skriv INN PASSORD:</B></b><br><input type=password name=passord></input> </td>
</tr>
<tr>
               <td><input type=submit name=Rediger value=Oppdater></input> </td>
</tr>
</table>
');
}
?>
</form>

<! --- <?=$_SERVER['PHP_SELF']?> --- !>
<! --- Her ligger denne actionen --- !>

<?php
 if (isset($_POST['Rediger'])) {
 $name      = $_POST['navn'];
 $nick      = $_POST['nick'];
 $adresse   = $_POST['adresse'];
 $postnr    = $_POST['postnr'];
 $Sted      = $_POST['sted'];
 $Alder     = $_POST['alder'];
 $Kjonn     = $_POST['kjonn'];
 $Tlfmob    = $_POST['tlfmob'];
 $Tlfhjem   = $_POST['tlfhjem'];
 $Epost     = $_POST['epost'];
 $ID        = $_POST['ID'];
 $passord   = $_POST['passord'];

$sql = "UPDATE `brukere` SET
       `Navn` = '$name',
       `Adresse` = '$adresse',
       `Postnr` = '$postnr',
       `Sted` = '$Sted',
       `Alder` = '$Alder',
       `Kjonn` = '$Kjonn',
       `Tlfmob` = '$Tlfmob',
       `Tlfhjem` = '$Tlfhjem',
       `epost` = '$Epost',
       `Nick` = '$nick',
       `Passord` = MD5('$passord')
       WHERE `ID` = '$ID'";


if (@mysql_query($sql)) {
   echo('<p>
<html>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="0;URL=login.php">
</head>
<body>
</body>
</html>
.</p>');
 } else {
   echo('<p>Error: ' . mysql_error() . '</p>');
}
}
?>

 

Men problemet er at når brukerene skal bare skifte navn eller noe slikt så får brukeren det problemet at passordet blir blankt. Noen tips på hvordan jeg kan endre dette.?


if ($passord) {
$sql = "UPDATE `brukere` SET
       `Navn` = '$name',
       `Adresse` = '$adresse',
       `Postnr` = '$postnr',
       `Sted` = '$Sted',
       `Alder` = '$Alder',
       `Kjonn` = '$Kjonn',
       `Tlfmob` = '$Tlfmob',
       `Tlfhjem` = '$Tlfhjem',
       `epost` = '$Epost',
       `Nick` = '$nick',
       `Passord` = MD5('$passord')
       WHERE `ID` = '$ID'";
}
else {
$sql = "UPDATE `brukere` SET
       `Navn` = '$name',
       `Adresse` = '$adresse',
       `Postnr` = '$postnr',
       `Sted` = '$Sted',
       `Alder` = '$Alder',
       `Kjonn` = '$Kjonn',
       `Tlfmob` = '$Tlfmob',
       `Tlfhjem` = '$Tlfhjem',
       `epost` = '$Epost',
       `Nick` = '$nick',
       WHERE `ID` = '$ID'";
}

 

Da oppdaterer den ikke passord-feltet hvis det ikke er utfylt. :)

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