Gå til innhold

Skifte av passord


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet

hm...

Skjønner ikke hvorfor du koder på måten jeg, er jo så uryddig!

 

Men letteste måten er å laste ned dremweaver eller.no tror de har innebygd PHP støtte og et ferdig PHP-user base som du kan bruke.

Skrevet

Nå er jo kluet her at jeg skriver denne siden i notepad. Alt dette har jeg skrevet for hånd kunn for og lære meg hvordan slike ting skrives. Derfor bruker jeg ikke Dreamweaver.

 

Men til problemet. Noen som vet hvordan dette kan la seg gjøres.

Skrevet

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.

Skrevet
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. :)

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å
×
×
  • Opprett ny...