Salve ho alcuni problemi allora sto facendo la parte della registrazione.
Io ho fatto cosi nella pagina registrati
Quando clicco il bottone la pagina mi da solo Conferma e invece mi dovrebbe dare conferma. Registrazione effettuata con successo, adesso vi posto tutto il resto del filecodice:<html> <head> <title>Modulo di registrazione</title> <link rel="stylesheet" type="text/css" href="../css/sito.css"> <meta charset="utf-8"> <script> function controllo(){ with(document.modulo) { if (name.value=="" || cognome.value=="" || indirizzo.value=="" || occupazione.value=="" || username.value=="" || password.value=="") { alert("Errore: non hai compilato alcuni campi"); name.focus(); cognome.focus(); indirizzo.focus(); occupazione.focus(); username.focus(); password.focus(); return false; } } alert("Controllo effettuato con successo. Il modulo sarà inviato."); return true; } </script> <style > #registra { width: 50%; height: 6%; padding:1; border: 1px solid black; background: #0099FF; margin: 0 auto; } #dentro { width: 50%; height: 50%; padding:1; border: 1px solid black; background: #FF3300; margin: 0 auto; } body{ background-color: #C0C0C0; } </style> </head> <body> <div id="hormenu"> <ul> <li><a href="home.php">Home</a></li> <li><a href="Accessori.php">Accessori</a></li> <li><a href="canne da pesca.php">Canne da pesca</a></li> </ul> </div> <br> <br> <br> <br> <br> <br> <br> <br> <div id="registra"> <center> <p>Registrati: i campi con (*) sono obligatori</p> </center> </div> <div id="dentro"> <form action="register.php" name="modulo" onSubmit="return controllo();" method="post"> <center> <table border="0" width="300"> <tr> <td>Nome*:</td> <td><input type="text" name="name"></td> </tr> <tr> <td>Cognome*:</td> <td><input type="text" name="cognome"></td> </tr> <tr> <td>indirizzo*</td> <td><input type="text" name="indirizzo"></td> </tr> <tr> <td>occupazione*</td> <td><input type="text" name="occupazione"></td> </tr> <tr> <td>Username*:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>Password*:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" name="action" value="Invia"></td> </tr> </table> </center> </form> </div> </body> </html>
register.php
reg.lib.phpcodice:<html> <head> <style type="text/css"> .style1 { color: #FF0000; font-weight: bold; } </style> </head> <body> <?php include_once("include/config.php"); include_once("include/reg.lib.php"); if(isset($_POST['action']) and $_POST['action'] == 'Invia'){ $ret = reg_check_data($_POST); $status = ($ret === true) ? reg_register($_POST) : REG_ERRORS; switch($status){ case REG_ERRORS: ?> <span class="style1">Sono stati rilevati i seguenti errori:</span><br> <?php foreach($ret as $error) printf("<b>%s</b>: %s<br>", $error[0], $error[1]); ?> <br>Premere "indietro" per modificare i dati <?php break; case REG_FAILED: echo "Registrazione Fallita a causa di un errore interno."; break; case REG_SUCCESS: echo "Registrazione avvenuta con successo.<br> Vi è stata inviata una email contente le istruzioni per confermare la registrazione."; break; } } ?> </body> </html>
config.phpCodice PHP:
<?phpfunction reg_register($data){ //registro l'utente global $_CONFIG; $id = reg_get_unique_id(); mysqli_query(" INSERT INTO ".$_CONFIG['table_utenti']." (nome, cognome,indirizzo, occupazione, username, password, temp, regdate, uid) VALUES ('".$data['nome']."','".$data['cognome']."','".$data['indirizzo']."', '".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'), '1', '".time()."','".$id."')"); //Decommentate la riga seguente per testare lo script in locale echo "<a href=\"http://localhost:8888/acquisto/registrazione/confirm.php?id=".$id."\">Conferma</a>"; //if(mysqli_insert_id()){ //return reg_send_confirmation_mail($data['mail'], "test@localhost", $id); // }else return REG_FAILED;}
function reg_send_confirmation_mail($to, $from, $id){ //invio la mail di conferma $msg = "Per confermare l'avvenuta registrazione, clicckate il link seguente: http://localhost/Articoli/autenticazione/1/scripts/confirm.php?id=".$id." "; return (mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;}
function reg_clean_expired(){ global $_CONFIG; $query = mysqli_query(" DELETE FROM ".$_CONFIG['table_utenti']." WHERE (regdate + ".($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'");}
function reg_get_unique_id(){ //restituisce un ID univoco per gestire la registrazione list($usec, $sec) = explode(' ', microtime()); mt_srand((float) $sec + ((float) $usec * 100000)); return md5(uniqid(mt_rand(), true));}
function reg_check_data(&$data){ global $_CONFIG; $errors = array(); foreach($data as $field_name => $value){ $func = $_CONFIG['check_table'][$field_name]; if(!is_null($func)){ $ret = $func($value); if($ret !== true) $errors[] = array($field_name, $ret); } } return count($errors) > 0 ? $errors : true;}
function reg_confirm($id){ global $_CONFIG; $query = mysqli_query(" UPDATE ".$_CONFIG['table_utenti']." SET temp='0' WHERE uid='".$id."'"); return (mysqli_affected_rows () != 0) ? REG_SUCCESS : REG_FAILED;}?>
confirmphp che me lo da vuotoCodice PHP:
<?php$_CONFIG['host'] = "localhost";$_CONFIG['user'] = "root";$_CONFIG['pass'] = "root";$_CONFIG['dbname'] = "pesca";
$_CONFIG['table_sessioni'] = "sessioni";$_CONFIG['table_utenti'] = "utenti";
$_CONFIG['expire'] = 60;$_CONFIG['regexpire'] = 24; //in ore
$_CONFIG['check_table'] = array( "username" => "check_username", "password" => "check_global", "nome" => "check_global", "cognome" => "check_global", "indirizzo" => "check_global", "occupazione" => "check_global" //"mail" => "check_global");
function check_username($value){ global $_CONFIG; $value = trim($value); if($value == "") return "Il campo non può essere lasciato vuoto"; $query = mysqli_query($conn," SELECT id FROM ".$_CONFIG['table_utenti']." WHERE username='".$value."'"); if(mysqli_num_rows($query) != 0) return "Nome utente già utilizzato"; return true;}
function check_global($value){ global $_CONFIG; $value = trim($value); if($value == "") return "Il campo non può essere lasciato vuoto"; return true;}
//--------------define('AUTH_LOGGED', 99);define('AUTH_NOT_LOGGED', 100);
define('AUTH_USE_COOKIE', 101);define('AUTH_USE_LINK', 103);define('AUTH_INVALID_PARAMS', 104);define('AUTH_LOGEDD_IN', 105);define('AUTH_FAILED', 106);
define('REG_ERRORS', 107);define('REG_SUCCESS', 108);define('REG_FAILED', 109);
//$conn= mysqli_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass'],$_CONFIG['dbname']);mysqli_select_db($_CONFIG['dbname']); error_reporting(E_ALL ^ E_DEPRECATED); ?>
Codice PHP:
<?phpinclude_once("include/config.php");include_once("include/reg.lib.php");
if(isset($_POST['id']) and strlen($_POST['id']) == 32){ reg_clean_expired(); $status = reg_confirm($_POST['id']); switch($status){ case REG_SUCCESS: echo "La tua registrazione è stata confermata; ora puoi effettuare il login."; break; case REG_FAILED: echo "La registrazione non può essere confermata, probabilemente poichè è scaduta."; break; }}?>