Ok.
Så bliver det nok med generating random password, kryptere dette og gemme i databasen.
Har tjekket at funktionen virker og udskrevet $pw=MakeRandomPassword();, og jeg får hver gang et nyt password.
Takker mange gange for hjælpen.
EDIT: Ahh, var lige lidt hurtig. Havde godt nok fået testet om jeg kunne sende det ud, men ikke når jeg opsætter regler for hvornår den skal gøre hvad:
- <?php
- include '../includes/connect.php';
- session_start();
- function MakeRandPass($upper = 3, $lower = 3, $numeric = 3, $other = 2) {
- //we need these vars to create a password string
- $passOrder = Array();
- $passWord = '';
- //generate the contents of the password
- for ($i = 0; $i < $upper; $i++) {
- $passOrder[] = chr(rand(65, 90));
- }
- for ($i = 0; $i < $lower; $i++) {
- $passOrder[] = chr(rand(97, 122));
- }
- for ($i = 0; $i < $numeric; $i++) {
- $passOrder[] = chr(rand(48, 57));
- }
- for ($i = 0; $i < $other; $i++) {
- $passOrder[] = chr(rand(33, 47));
- }
- //randomize the order of characters
- shuffle($passOrder);
- //concatenate into a string
- foreach ($passOrder as $char) {
- $passWord .= $char;
- }
- //we're done
- return $passWord;
- }
- //Ændring af password i database
- $pwd_bruger = mysql_real_escape_string($_POST['username']);
- $pwd_epost = mysql_real_escape_string($_POST['epost']);
- $pwd_check = mysql_query("SELECT `username`, `epost` FROM users WHERE username='$pwd_bruger'");
- if(mysql_num_rows($pwd_check) > 0) {
- $pwd_get = MakeRandPass();
- $pwd_insert = mysql_query("UPDATE users SET password = '$pwd_get' WHERE username = '$pwd_bruger'");
- if($pwd_insert {
- function escapeAddr($addr) {
- $check = preg_match('/(.*)<(.*)>/', $addr, $a);
- if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
- return $addr;
- }
- //Send e-mail funktion
- function mail_utf8($to, $subject='', $message='', $from='', $cc='', $bcc='') {
- $from = escapeAddr($from);
- $header = 'From: '.$from.PHP_EOL
- . 'Return-Path: '.$from.PHP_EOL
- . 'Reply-To: '.$from.PHP_EOL
- . 'MIME-Version: 1.0'.PHP_EOL
- . 'Content-type: text/html; charset=UTF-8'.PHP_EOL
- . 'X-Mailer: PHP/'.phpversion().PHP_EOL
- . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
- if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
- if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
- $header .= PHP_EOL;
- return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
- }
- $besked = '<p>Hermed fremsendes dit nyt kodeord til ejeleje.dk.</p><p>Når du er logget ind på normal vis, skal du straks sørge for at ændre kodeordet til noget der er lettere at huske.</p><p>Dit nye kodeord er:'.$pwd_get.'</p>';
- //E-mail sendes. $success sendes til ejer og $send sendes til opretter
- $success = mail_utf8('khansen.it@gmail.com', 'Her fremsendes nyt password til ejeleje.dk', $besked, 'autosvar@ejeleje.dk', '', '');
- if ($success) {
- // Mail sendt
- $_SESSION['done'] = '<p>Tak for din henvendelse. Vi har gemt din bolig i systemet og den kan nu ses på vores side. Vi kontakter dig hurtigst muligt, når der kommer et henvendelse</p>';
- header ('Location: ../index.php');
- } else {
- // Der er en fejl!
- header ('Location: ../index.php');
- }
- }
- else {
- echo 'Der er sket en fejl';
- }
- }
- else {
- echo '<p>Din bruger blev ikke fundet i systemet.</p><a href="../index.php">Gå tilbage til forsiden</a><br /><a href="recover-pwd.php">Prøv igen</a>';
- }
- ?>
Jeg får syntax-error, i min editor, på følgende linjer: 72, 74 og 77
Indlæg senest redigeret d. 02.10.2012 15:56 af Bruger #17072