<?php
//verifico le sessioni e apro session start
if (!isset($_SESSION)){session_start();}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>form contatti</title>
<link href="css/master_login.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
//Inizio l'email
if(isset($_POST['submit'])){//qui il submit
$messaggio="";// il messaggio è vuoto
//verifico i vari campi
if(!isset($_POST['nome']) || trim($_POST['nome']) ==""){// il nome
$messaggio.="<br>il nome è obbligatorio";
}else{
$_SESSION['nome']=htmlspecialchars(trim($_POST['nome']));
}
if(!isset($_POST['cognome']) || trim($_POST['cognome']) ==""){// il cognome
//metti il trim perche potrebbero inserire solo spazi
$messaggio.="<br>il cognome è obbligatorio";
}else{
$_SESSION['cognome']=htmlspecialchars(trim($_POST['cognome']));
}
if(!isset($_POST['telefono']) || trim($_POST['telefono']) ==""){
//metti il trim perche potrebbero inserire solo spazi// il telefono
$messaggio.="<br>l'telefono è obbligatorio";
}else{
$_SESSION['telefono']=htmlspecialchars(trim($_POST['telefono']));
}
//se fai un array poi puoi togliere/aggiungere comodamente senza riscrivere tutte le <option>
$documento=array('carta identita'=>'carta identità','passaporto'=>'passaporto','tessera sanitaria'=>'tessera sanitaria');
echo "<select name=\"tipo_doc\" id=\"tipo_doc\">";
echo "<option value=\"\">- seleziona -</option>";
foreach($documento as $ch => $val){
echo"<option value=\"$ch\">$val</option>";
}
echo "</select>";
if(!isset($_POST['num_doc']) || trim($_POST['num_doc']) ==""){
//metti il trim perche potrebbero inserire solo spazi// il numero del documento
$messaggio.="<br>il tipo_doc è obbligatorio, o almeno 10 caratteri";
}else{
$_SESSION['num_doc']=htmlspecialchars(trim($_POST['num_doc']));
}
if(!isset($_POST['password']) || trim($_POST['password']) ==""){
//metti il trim perche potrebbero inserire solo spazi// il telefono
$messaggio.="<br>password non generata";
}else{
$_SESSION['password']=htmlspecialchars(trim($_POST['password']));
}
// filtro l' email e poi lo verifico
$_POST['email']=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$messaggio.="<br>non è un indirizzo valido o il campo è vuoto";
}else{
//qui non ti serve l'htmlspecialchars
$_SESSION['email']=$_POST['email'];
//verifico se la mail e presente nel db
include('db.php'); // richiamo la configurazione db
// faccio la query
$query = "
SELECT COUNT(*)
FROM `login`
WHERE `email` = '{$form->data['email']}' ;
";
// controllo
$db->setQuery($query);
$count = $db->loadResult();
if ( $count ) {
$form->validation_errors['email'] = "Questa email è già registrata.";
return false;
}
// se tutto è ok preparo la query per l'inserimento dei campi nel db
$query = "INSERT INTO login (nome,cognome,email,tipo_doc,num_doc,telefono,password)
VALUES ('$nome','$cognome','$email','$tipo_doc','$num_doc','$telefono,'$password')";
// lancio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// chiudo la connessione a MySQL
mysql_close();
}
//quindi se non ci sono errori $messaggio non c'è nulla
if($messaggio !=""){//altrimenti ci sono errori
echo $messaggio;//questo poi lo aggiusti con i css
/*es
echo "<div class=\"errori\">$messaggio</div>";
*/
//ritorno al form
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
//inizio l'email da inviare
$destinatario="$mail";//**********************
$data = "<hr>email inviata il: ".date("d.m.Y h:i:s A")."<br>"; // data e ora dell' invio
$dasito= "dal sito: ".$_SERVER[HTTP_REFERER]."<br>"; //controllo se arriva dal mio sito
$mittente="mittente: ".$_SESSION['nome']."<hr>";
$invio_il_tipo_doc=nl2br($data.$dasito.$mittente.$_SESSION['tipo_doc']);
//richiamo la classe phpmailer
require "phpmailler/class.phpmailer.php";
$Emailmessaggio = new PHPmailer();
$Emailmessaggio->SetLanguage('it','language/'); //italiano
$Emailmessaggio->IsHTML(true); // email in formato HTML
$Emailmessaggio->FromName= $_SESSION['nome'];
$Emailmessaggio->From=$_SESSION['email'];
$Emailmessaggio->AddAddress($destinatario);
$Emailmessaggio->Subject=$_SESSION['telefono'];
$Emailmessaggio->Body=$invio_il_tipo_doc;
//----invio l'email-------------------------------------------
if(!$Emailmessaggio->Send()){ //errore
$messaggio="<h2>ERRORE DI TRASMISSIONE, riprova più tardi</h2>";
}else{ //invio ok
$messaggio="<h1>EMAIL CORRETTAMENTE INVIATA</h1>";
}
//elimino le sessioni
session_destroy(); //e ritorno al form
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
}
?>
<?php
//popolo i campi e correggo errori
if(isset($_SESSION['nome'])){$nome=$_SESSION['nome'];}else{$nome="";}
if(isset($_SESSION['cognome'])){$cognome=$_SESSION['cognome'];}else{$cognome="";}
if(isset($_SESSION['email'])){$email=$_SESSION['email'];}else{$email="";}
if(isset($_SESSION['telefono'])){$telefono=$_SESSION['telefono'];}else{$telefono="";}
if(isset($_SESSION['tipo_doc'])){$tipo_doc=$_SESSION['tipo_doc'];}else{$tipo_doc="";}
if(isset($_SESSION['num_doc'])){$num_doc=$_SESSION['num_doc'];}else{$num_doc="";}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" id="login" name="genera">
<h1>Nuovo Utente</h1>
<fieldset id="inputs">
<input id="nome" type="text" name="nome" placeholder="Nome" value="<?php echo $nome; ?>" size="32" />
<input id="cognome" type="text" name="cognome" placeholder="Cognome" value="<?php echo $cognome; ?>" size="32" />
<input id="telefono" type="text" name="telefono" placeholder="Telefono" value="<?php echo $telefono; ?>" size="32" />
<select name=\"tipo_doc\" id=\"tipo_doc\">
<option value=\"\">- seleziona -</option>
</select>
<input id="num_doc" type="text" name="num_doc" placeholder="Numero del tuo documento" value="<?php echo $num_doc; ?>" size="32" />
<input id="email" type="text" name="email" placeholder="E-mail" value="<?php echo $email; ?>" size="32" />
<?php
function genera_pass(){
$pass="";
$lunga=rand(6,8);//lunghezza della password casuale lunga da 6 a otto caratteri
for($k=1;$k<=$lunga;$k++){
$c=rand(0,2);
if($c==0){//a caso un carattere numerico
$pass.=(string)rand(0,9);//genero la password numerica
}elseif($c==1){
$pass.=chr(rand(65,90));//o un carattere casuale compreso da A-Z
}else{
$pass.=chr(rand(97,122));//o un carattere casuale compreso da A-Z
}
}
return (string)$pass;
}
?>
<!-- ...-->
<input name="password" type="text" id="password" placeholder="<?php echo genera_pass();?>" value="<?php echo genera_pass() ?>" size="32" readonly="readonly" />
<!-- ...-->
</fieldset>
<fieldset id="actions">
<input type="submit" id="submit" value="Iscriviti" /><br /><br />
<br /><br />
<a href="Flam-admin-nobili.php"> Torna all'admin</a>
</fieldset>
</form>
</body>
</html>