Nella riga 10:
Codice PHP:
function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';)
c'è un punto e virgola che non dovrebbe esserci ( dopo la dichiarazione di $chars ).
Quindi sostituisci con:
Codice PHP:
function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789')
Poi, ho notato che nello script ci sono questo tipo di virgolette e apici: ”, ’. Php non le interpreta e lancerà un errore! Sostituiscile con " e '.
P.s. Ho provato a sistemarti un po' il codice, ho trovato delle graffe/else di troppo. Ho corretto, ma non posso garantirti che funzionerà, sebbene non ci siano errori di sintassi.
Codice PHP:
<?php
include_once("include/config.php");
include_once("include/auth.lib.php");
include_once("include/reg.lib.php");
// genera una stringa casuale della lunghezza desiderata
// genera una stringa casuale della lunghezza desiderata
function rand_string($len, $chars = 'abcdefghijklmnopqrstuvwxyz0123456789') {
$string = '';
for ($i = 0; $i < $len; $i++) {
$pos = rand(0, strlen($chars)-1);
$string .= $chars{$pos};
}
return $string;
}
//controlla se la sessione è già attiva
if(isset($_SESSION['username']) && isset($_SESSION['password'])) {
//in tal caso ci reindirizza verso la homepage del sito o dovunque vogliate
header('Location: http://youacli.altervista.org/registrazione/home.php');
die(); // meglio fermare lo script, altrimenti se un browser non effettua il redirect, lo script continua ad essere eseguito.
}
//se il modulo è stato inviato
if(isset($_POST['submit'])) {
//campo username vuoto
if(!$_POST['username']) die("Errore: Devi inserire il tuo username");
//campo password vuoto
if(!$_POST['email']) die("Errore: Devi inserire l'indirizzo mail dove inviare la nuova password");
$query = "SELECT * FROM `utenti` WHERE username = '".$_POST['username']."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$user_id = $row['user_id'];
$user_mail = $row['user_email'];
if($row < 1) die("nessuna corrispondenza trovata nel database");
if($row['user_email'] != $_POST['email']) die("Il nome utente non è associato all'indirizzo mail specificato");
$random_string = rand_string(5);
$invio_password = $random_string;
$sql = "UPDATE `utenti` SET `user_password` = '".md5($random_string)."' WHERE `user_id` ='".$user_id."' LIMIT 1";
$result = mysql_query($sql);
$headers ="From:youacli@hotmail.itrn";
$subject ="aggiornamento password";
$message ="La tua nuova password è $invio_password";
mail($user_mail, $subject, $message, $headers);
if(mail && $result) echo "Aggiornamento passwrod effettuato con successo";
} else {
//visualizza il form login
?>
<form name="login" method="post">
<table cellpadding="5">
<tr>
<td><b>Username:</b>
<input type="text" id="username" name="username" />
</td>
</tr>
<tr>
<td><b>E-mail:</b>
<input type="text" id="email" name="email" />
</td>
</tr>
<tr>
<td align="center">
<input type="submit" value="Submit" name="submit" id="submit" class="button" />
<input type="reset" value="Reset" class="button" />
</td>
</tr>
</table>
</form>
<?
}
?>