_Nitro_ Skrevet 10. november 2003 Del Skrevet 10. november 2003 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
|SeVen| Skrevet 10. november 2003 Del Skrevet 10. november 2003 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. Lenke til kommentar
_Nitro_ Skrevet 10. november 2003 Forfatter Del Skrevet 10. november 2003 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. Lenke til kommentar
Nervetattoo Skrevet 10. november 2003 Del Skrevet 10. november 2003 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
ZoRaC Skrevet 11. november 2003 Del Skrevet 11. november 2003 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå