- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
Sia con invio tastiera che click mouse il rislutato non cambia.
[php]
<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['registra']))
{// Dati Inviati dal modulo $username = (isset($_POST['username'])) ? trim($_POST['username']) : ''; // Metto nella variabile 'username' il dato inviato dal modulo, se non viene inviato dò di default '' $password = (isset($_POST['password'])) ? trim($_POST['password']) : ''; // Metto nella variabile 'password' il dato inviato dal modulo, se non viene inviato dò di default '' $password2 = (isset($_POST['password2'])) ? trim($_POST['password2']) : ''; // Metto nella variabile 'password2' il dato inviato dal modulo, se non viene inviato dò di default '' $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : ''; // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default '' $name = (isset($_POST['name'])) ? trim($_POST['name']) : ''; // Metto nella variabile 'name' il dato inviato dal modulo, se non viene inviato dò di default '' $surname = (isset($_POST['surname'])) ? trim($_POST['surname']) : ''; // Metto nella variabile 'surname' il dato inviato dal modulo, se non viene inviato dò di default '' $azienda = (isset($_POST['azienda'])) ? trim($_POST['azienda']) : ''; // Metto nella variabile 'azienda' il dato inviato dal modulo, se non viene inviato dò di default '' $occupazione = (isset($_POST['occupazione'])) ? trim($_POST['occupazione']) : ''; // Metto nella variabile 'occupazione' il dato inviato dal modulo, se non viene inviato dò di default '' $indirizzo = (isset($_POST['indirizzo'])) ? trim($_POST['indirizzo']) : ''; // Metto nella variabile 'indirizzo' il dato inviato dal modulo, se non viene inviato dò di default '' $citta = (isset($_POST['citta'])) ? trim($_POST['citta']) : ''; // Metto nella variabile 'citta' il dato inviato dal modulo, se non viene inviato dò di default '' $comune = (isset($_POST['comune'])) ? trim($_POST['comune']) : ''; // Metto nella variabile 'comune' il dato inviato dal modulo, se non viene inviato dò di default '' $provincia = (isset($_POST['provincia'])) ? trim($_POST['provincia']) : ''; // Metto nella variabile 'provincia' il dato inviato dal modulo, se non viene inviato dò di default '' $cap = (isset($_POST['cap'])) ? trim($_POST['cap']) : ''; // Metto nella variabile 'cap' il dato inviato dal modulo, se non viene inviato dò di default '' $telefono = (isset($_POST['telefono'])) ? trim($_POST['telefono']) : ''; // Metto nella variabile 'telefono' il dato inviato dal modulo, se non viene inviato dò di default '' $fax = (isset($_POST['fax'])) ? trim($_POST['fax']) : ''; // Metto nella variabile 'fax' il dato inviato dal modulo, se non viene inviato dò di default '' // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza if (!get_magic_quotes_gpc()) { $username = addslashes($username); $password = addslashes($password); $mail = addslashes($mail); $azienda = addslashes($azienda); $occupazione = addslashes($occupazione); $indirizzo = addslashes($indirizzo); $citta = addslashes($citta); $comune = addslashes($comune); $provincia = addslashes($provincia); $cap = addslashes($cap); $telefono = addslashes($telefono); $fax = addslashes($fax); } // Controllo il Nome Utente if(strlen($username) < 4 || strlen($username) > 28) die('Nome Utente troppo corto, o troppo lungo <a href="javascript:history.go(-1); return false">Modifica i Dati inseriti</a>'); // Controllo il nome utente non sia già occupato elseif(mysql_num_rows(mysql_query("SELECT username FROM utenti WHERE username = '$username' LIMIT 1")) == 1) die('Nome Utente non disponibile <a href="javascript:history.go(-1); return false">Modifica i Dati inseriti</a>'); // Controllo la Password elseif(strlen($password) < 4 || strlen($password) > 28) die('La password deve avere una lunghezza compresa tra i 4 e i 28 caratteri'); elseif($password != $password2) die('Le due password non corrispondono'); // Controllo l'E-mail elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $mail)) die('Email non valida'); // Controllo l'indirizzo email non sia già registrato elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1) die('Questo indirizzo email risulta già registrato da un altro utente'); // Controllo il campo Nome elseif(strlen($name) < 3 || strlen($name) > 28) die('Nome non valido'); // Controllo il campo Cognome elseif(strlen($surname) < 3 || strlen($surname) > 28) die('Cognome non valido'); // Controllo il campo Azienda elseif(strlen($azienda) < 0 || strlen($azienda) > 200) die('Azienda non valida'); // Controllo il campo Occupazione elseif(strlen($occupazione) < 0 || strlen($occupazione) > 200) die('Occupazione non valida'); // Controllo il campo Indirizzo elseif(strlen($indirizzo) < 3 || strlen($indirizzo) > 200) die('Indirizzo non valido'); // Controllo il campo Città elseif(strlen($citta) < 3 || strlen($citta) > 200) die('Residenza non valida'); // Controllo il campo Comune elseif(strlen($comune) < 2 || strlen($comune) > 200) die('Comune non valido'); // Controllo il campo Provincia elseif(strlen($provincia) != 2) die('Provincia non valida'); // Controllo il campo Cap elseif(strlen($cap) != 5) die('Cap non valido'); // Controllo il campo Telefono elseif(strlen($telefono) < 2 || strlen($telefono) > 200) die('Campo Telefono non valido'); // Controllo il campo Fax elseif(strlen($fax) < 0 || strlen($comune) > 200) die('Campo Fax non valido'); // Registrazione dell'utente nel database else { // Crypt della password per garantire una miglior sicurezza $password = md5($password); // Genero una stringa casuale di Attivazione $attivazione = ''; for($x=1; $x<=32; $x++) $attivazione.=rand(0,9); $attivazione = md5($attivazione); $message = 'Per attivare il Suo account deve visitare il seguente link:<br><a href="http: // www . associazioneconsumatorieuropei . eu/ auth/attivazione .php?code='.$attivazione.'">Attiva account</a>'; // Header dell'email, per mandarla in formato html $headers = "From: Associazione Consumatori Europei <[email protected]>\r\n"; $headers .= "Reply-To: email\r\n"; $headers .= "Return-Path: email\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; // Invio L'email mail($mail, 'Associazione Consumatori Europei - Registrazione web', $message, $headers); // Query per l'inserimento dell'utente nel database $strSQL = "INSERT INTO utenti (username,password,mail,name,surname,azienda,occupazione,indirizzo,citta,comune,provincia,cap,telefono,fax,attivazione)"; $strSQL .= "VALUES('$username', '$password', '$mail', '$name', '$surname', '$azienda', '$occupazione', '$indirizzo', '$citta', '$comune', '$provincia', '$cap', '$telefono', '$fax', '$attivazione')"; mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error()); // Reindirizzo l'utente ad una pagina di conferma della registrazione header('Location: registrato . php'); exit; }
}
/INIZIO USERNAME VALIDATION///get the username
$username = mysql_real_escape_string($_POST['username']);//mysql query to select field username if it's equal to the username that we check '
$result = mysql_query('select username from utenti where username = "'. $username .'"');//if number of rows fields is bigger them 0 that means it's NOT available '
if(mysql_num_rows($result)>0){
//and we send 0 to the ajax request
echo 0;
}else{
//else if it's not bigger then 0, then it's available '
//and we send 1 to the ajax request
echo 1;
}
?>
[/php]```<form action="privata.php" method="post">
<div align="center">
<table width="100%">
<tr>
<td><font color="#FF0000">Dati per il Log-in</font> <br>
<table border="0" width="100%">
<tr>
<td colspan="2">
<p class="pform">
<strong>Username:</strong><br />
<div id="msgbox" style="display:none; color:#FF3300;"></div>
</p>
</td>
<td colspan="2"><input name="username" class="inputform" type="text" id="username" onFocus="if(this.value=='Username') this.value='Username';"/>
<script type="text/javascript">
var campo = new LiveValidation('username', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );
</script></td> </tr> <tr> <td colspan="2" ><p class="pform"><strong>E-mail:</strong></p></td> <td colspan="2" ><input name="mail" class="inputform" type="mail" id="mail" value="" onFocus="if(this.value=='Email') this.value='Email';" /> <script type="text/javascript">
var campo = new LiveValidation('mail', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Email, { failureMessage: "Devi inserire un indirizzo e-mail valido!" } );
campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
</script>
</td>
</tr>
<tr>
<td colspan="4">
<?php if ($message) : ?>
<p id="message"><?=$message?></p>
<?php endif ?>
</td>
</tr>
<tr>
<td width="15%"><p class="pform"><strong>Password:</strong></p></td>
<td width="35%"><input name="password" class="inputform" type="password" id="password" value="" onFocus="if(this.value=='Password') this.value='';" /> <script type="text/javascript">
var campo = new LiveValidation('password', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 4, tooShortMessage: "Il campo deve contenere minimo 4 caratteri" } );
campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );</script>
</td>
<td width="15%"><p class="pform"><strong>Conferma:</strong></p></td>
<td width="35%"><input name="password2" class="inputform" type="password" id="password2" value="" onFocus="if(this.value=='Password2') this.value='';" /> <script type="text/javascript">
var campo = new LiveValidation('password2', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Confirmation, { match: 'password', failureMessage: "La password non corrisponde a quella inserita!" } );
</script>
</td>
</tr>
<tr>
<td colspan="4"><br>
<font color="#FF0000">Dati Personali</font> <br> </td>
</tr>
<tr>
<tr>
<td width="15%"><p class="pform"><strong>Nome:</strong></p></td>
<td width="25%"><input name="name" class="inputform" type="text" id="name" value="" onFocus="if(this.value=='Nome') this.value='Nome';" /> <script type="text/javascript">
var campo = new LiveValidation('name', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );</script>
</td>
<td width="15%"><p class="pform"><strong>Cognome:</strong></p></td>
<td width="35%"><input name="surname" class="inputform" type="text" id="surname" value="" onFocus="if(this.value=='Cognome') this.value='Cognome';" /> <script type="text/javascript">
var campo = new LiveValidation('surname', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
campo.add(Validate.Length, { maximum: 28, tooLongMessage: "Il campo può contenere massimo 28 caratteri" } );</script>
</td>
</tr>
<tr>
<td><p class="pform">Azienda:</p></td>
<td colspan="3"><input name="azienda" class="inputform" type="text" id="azienda" value="" onFocus="if(this.value=='Nome Azienda') this.value='Nome Azienda';"/> <script type="text/javascript">
var campo = new LiveValidation('surname', { validMessage: "OK!" });
campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
</script>
</td>
</tr>
<tr>
<td><p class="pform">Occupazione:</p></td>
<td colspan="3"><input name="occupazione" class="longinputform" type="text" id="occupazione" value="" onFocus="if(this.value=='Occupazione') this.value='Occupazione';" size="65" /> <script type="text/javascript">
var campo = new LiveValidation('surname', { validMessage: "OK!" });
campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
</script></td>
</tr>
<tr>
<td colspan="4"><br>
<font color="#FF0000">Residenza</font> <br> </td>
</tr>
<tr>
<td width="93"><p class="pform"><strong>Indirizzo:</strong></p></td>
<td colspan="3"><input name="indirizzo" class="longinputform" type="text" id="indirizzo" value="" onFocus="if(this.value=='Indirizzo') this.value='Indirizzo';" size="65" /> <script type="text/javascript">
var campo = new LiveValidation('indirizzo', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
</script>
</td>
</tr>
<tr>
<td width="93"><p class="pform"><strong>Città:</strong></p></td>
<td width="120"><input name="citta" class="inputform" type="text" id="citta" value="" onFocus="if(this.value=='Città') this.value='';" /> <script type="text/javascript">
var campo = new LiveValidation('citta', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 3, tooShortMessage: "Il campo deve contenere minimo 3 caratteri" } );
campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
</script>
</td>
<td width="83"><p class="pform"><strong>Comune:</strong></p></td>
<td width="120"><input name="comune" class="inputform" type="text" id="comune" value="" onFocus="if(this.value=='Comune') this.value='';" /> <script type="text/javascript">
var campo = new LiveValidation('comune', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { minimum: 2, tooShortMessage: "Il campo deve contenere minimo 2 caratteri" } );
campo.add(Validate.Length, { maximum: 200, tooLongMessage: "Il campo può contenere massimo 200 caratteri" } );
</script>
</td>
</tr>
<tr>
<td width="93"><p class="pform"> <strong>Provincia:</strong><br>
<em>[ sigla ]</em> </p></td>
<td width="120"><input name="provincia" type="text" id="provincia" value="" onFocus="if(this.value=='Provincia') this.value='';" size="3"/> <script type="text/javascript">
var campo = new LiveValidation('provincia', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Length, { is: 2, wrongLengthMessage: "Il campo deve contenere 2 caratteri" } );
</script></td>
<td width="83"><p class="pform"><strong>Cap:</strong></p></td>
<td width="120"><input name="cap" class="inputform" type="text" id="cap" value="" onFocus="if(this.value=='Cap') this.value='Cap';" size="10"/> <script type="text/javascript">
var campo = new LiveValidation('cap', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
campo.add(Validate.Length, { maximum: 5, tooLongMessage: "Il campo può contenere massimo 5 caratteri" } );
</script>
</td>
</tr>
<tr>
<td colspan="4"><br>
<font color="#FF0000">Riferimenti</font> <br> </td>
</tr>
<tr>
<td width="93"><p class="pform"><strong>Tel. / Cell.:</strong></p></td>
<td width="120"><input name="telefono" class="inputform" type="text" id="telefono" value="" onFocus="if(this.value=='Telefono') this.value='Telefono';" /> <script type="text/javascript">
var campo = new LiveValidation('telefono', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
campo.add(Validate.Length, { maximum: 20, tooLongMessage: "Il campo può contenere massimo 20 caratteri" } );
</script></td>
<td width="83"><p class="pform">Fax.:</p></td>
<td width="120"><input name="fax" class="inputform" type="text" id="fax" value="" onFocus="if(this.value=='Fax') this.value='Fax';" /> <script type="text/javascript">
var campo = new LiveValidation('fax', { validMessage: "OK!" });
campo.add(Validate.Presence, { failureMessage: "Il campo deve essere compilato!" });
campo.add(Validate.Numericality, { notANumberMessage: "Puoi inserire solo numeri!" });
campo.add(Validate.Length, { maximum: 20, tooLongMessage: "Il campo può contenere massimo 20 caratteri" } );
</script></td>
</tr>
<tr>
<td colspan="4"><p align="center"><font color="#006699"><strong><em><u>I dati in grassetto sono obbligatori.</u></em></strong></font></p></td>
</tr>
<tr>
<td colspan="4" align="right"><input name="registra" type="image" src="../images/contact-send.gif" value="Registrati" /></td>
</tr>
</table></td>
</tr>
</table>
</div>
</form>
-
La prima pagina che hai postato suppongo sia privata.php.
Prova a mettere:
[php]
if(isset($_POST['username']))
[/php]
al posto di:
[php]
if(isset($_POST['registra']))
[/php]
-
Ok perfetto adesso funziona però prima ho dovuto anche cancellare l'action del form deve rimanere in bianco il campo quindi <form action="" method="post"> e funziona grazie mille ancora!
-
Salve,
Mi capita una cosa un po strana, io al momento del login imposto anche una seconda variabile di sessione, cioè $_SESSION['admin'], questa serve per stabilire i privilegi di certi utenti.Il problema arriva quando visualizzo una pagina, cioè la lista degli admin.
Andando su questa pagina improvvisamente $_SESSION['admin'] da valore 1 assume valore 0, come mai? :S
Ecco il codice della pagina:lista_admin.php
[php]<?php
require('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Lista Admin</title>
<link rel="stylesheet" href="/theme/style.css" type="text/css">
</head><body>
<?php
$admin = mysql_query("SELECT id, user, data_ins FROM utenti
WHERE privilegi = '1' ORDER BY id") OR die(mysql_error());
?>
<table><tr><td>
<?php
require('menu.php');
?>
</td><td>
<table border="1"><tr><th>#</th><th>Nome</th><th>Data</th></tr>
<?php
$i=1;
while($lista_admin = mysql_fetch_array($admin))
{
echo '<tr>
<td>'.$i.'</td>
<td> <a href="/profile.php?id='.$lista_admin['id'].'">'.$lista_admin['user'].'</a> </td>
<td> '.date('d M Y - G:i:s', $lista_admin['data_ins']).' </td>
</tr>';
$i++;
}
?>
</table>
<?php
require('footer.php');
?>
</body></html>
[/php]In footer.php viene il link al Pannello Amministratore se $_SESSION['admin'] è uguale a 1.
Ecco il codice:
[php]<br /><?php if($_SESSION['admin'] == 1) { echo'<div align="center"><a href=" / privata.php?page=admin"><strong>Pannello Amministratore</strong></a></div>'; } ?>[/php]Potete aiutarmi?
-
Ciao RCayla,
il session_start è nel config.php?
Gli altri valori in $_SESSION rimangono o si perdono pure quelli?
-
Si e si
Nel senso che c'è session_start() e le altre variabili di sessione restano uguali, per testare ho fatto un echo delle due variabili e dopo essere andato nella lista admin la variabile $_SESSION['admin'] da 1 diventa "Resource id #7" :S
-
Resource id #7 dovrebbe essere il valore restituito da mysql_query.
E' possibile che stai usando $admin invece di $_SESSION['admin']?
-
Scusa non ho capito, dove sto usando $admin invece di $_SESSION['admin']?
-
Resource id #7 è un valore restituito dalla funzione mysql_query.
Quindi o stampi la variabile sbagliata oppure la sovrascrivi.
-
Allora, subito dopo il login in tutte le pagine $_SESSION['admin'] risulta 1, se vado in lista_admin risulta Resource id # 7 e dopo essere stato in questa pagine, in tutte le altre risulta 0, quindi è come se il valore cambiasse, eppure nel codice di lista_admin.php la variabile $_SESSION['admin'] non viene mai nominata..
-
Non sò che dirti, l'unica cosa che mi sembra possibile è quella.
-
Risolto, ho cambiato nome alla variabile che eseguiva la query e alla variabile del mysql_fetch_array, strano
-
Ciao a tutti, volevo provare a creare un login di un sito web, ma essendo un autodidatta e non so come fare qualcuno potrebbe aiutarmi? Grazie 1000.
-
Ciao giov75,
nel tutorial è spiegato come realizzare registrazione e login.
-
Ciao Thedarkita,
scusami ancora ma dove lo trovo questo tutorial? scusami ancora.
-
Lo trovi alla pagina 1 di questa discussione.
-
Scusami una scaricato il tutorial i file dove li devo posizionare?
-
Ciao giov75,
fai attenzione alle maiuscole...
I file devi metterli sul server.
-
Ok scusate.
-
Thedarkita,
adesso devo creare le pagine di ognuna di essa?