Salve ho alcuni problemi allora sto facendo la parte della registrazione.
Io ho fatto cosi nella pagina registrati
codice:
<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>
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 file
register.php
codice:
<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>
reg.lib.php
Codice 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;}?>
config.php
Codice 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); ?>
confirmphp che me lo da vuoto
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; }}?>