**up
**
matyu
@matyu
Post creati da matyu
-
RE: Pagina di registrazione
Grazie a voi ho risolto il tutto
Avrei bisogno di altre 2 dritte hehe
-Ci sarebbe modo di integrare una validazione di tipo captcha con il php? Ho provato già con vari script ma senza successo..
Questa è la mia pagina di registrazione:
[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['registra']))
{// Dati Inviati dal modulo $name = (isset($_POST['name'])) ? trim($_POST['name']) : ''; // Metto nella variabile 'name' 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 '' $verificapw = (isset($_POST['verificapw'])) ? trim($_POST['verificapw']) : ''; // Metto nella variabile 'verificapw' 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 '' // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza if (!get_magic_quotes_gpc()) { $name = addslashes($name); $password = addslashes($password); $verificapw = addslashes($verificapw); $mail = addslashes($mail); } // Controllo il Nome Utente if(strlen($name) < 4 || strlen($name) > 12) die('Nome Utente troppo corto, o troppo lungo'); // Controllo la password elseif(strlen($password) < 4 || strlen($password) > 12) die('Password troppo corta, o troppo lunga'); // Controllo che la password sia corretta elseif(($verificapw) != ($password)) die('Verifica della Password non riuscita'); // Controllo l'email elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $mail)) die('Email non valida'); // Controllo il nome utente non sia già occupato elseif(mysql_num_rows(mysql_query("SELECT name FROM account_data WHERE name = '$name' LIMIT 1")) == 1) die('Nome Utente non disponibile'); // Controllo l'indirizzo email non sia già registrato elseif(mysql_num_rows(mysql_query("SELECT mail FROM account_data WHERE mail = '$mail' LIMIT 1")) == 1) die('Questo indirizzo email risulta già registrato ad un altro utente'); // Registrazione dell'utente nel database else { // Crypt della password per garantire una miglior sicurezza $password = base64_encode($password); // Query per l'inserimento dell'utente nel database $strSQL = "INSERT INTO account_data (name,password,mail)"; $strSQL .= "VALUES('$name', '$password', '$mail')"; 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; }
}
?>
<!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>Registrazione</title>
</head><body>
<form action="" method="post">
<input name="name" type="text" id="name" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="password" type="password" id="password" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
<input name="verificapw" type="password" id="verificapw" value="Password" onfocus="if(this.value=='Verifica Password') this.value='';" />
<br />
<input name="mail" type="text" id="mail" value="Email" onfocus="if(this.value=='Email') this.value='';" /><br />
<input name="registra" type="submit" value="Registrati" /><br />
</form></body>
</html>[/php]Grazie -
RE: Pagina di registrazione
Grazie a tutti e 2!
@mirkograti:"id" e "email" sono già campi segnalati come univoci nel DB, infatti se ne vado a creare uno uguale, nel DB non viene scritto nulla. a me interessa piu che altro il msg di errore che dice che l'id o l'email esistono già
@Thedarkita: ora mi leggo bene quel post
(p.s. ti ho mandato un pm importante!!)
-
Pagina di registrazione
Ciao a tutti!
Dunque sono alle prime armi con il php e sql per cui vi chiedo cortesemente una mano
Ho creato una pagina di registrazione che va a inserire nella tabella Accounts tre campi: Id, Pw, e Email.Posto i 3 file che utilizzo al momento:
registrazione.php:
[html]<form name="elab.php" method="post" target="_top" action="elab.php" onsubmit="return WLSubmit(this)"><label>ID Account</label>
<input type="text" name="id" id="id" size="250" />
<label>Password</label>
<input type="text" name="pw" id="pw" size="250"/>
<label>Email</label>
<input type="text" name="email" id="email" size="250"/><input type="reset" value="Reset" />
<input type="submit" value="INVIA" />
</form>[/html]elab.php
[php]<?php
require_once("config.php");// Recupero i dati inseriti nel form proveniente dalla pagina registrazione.php
$id = trim(htmlentities($_POST["id"]));
$pw = trim(htmlentities($_POST["pw"]));
$email = trim(htmlentities($_POST["email"]));// Creo la query sql per l'inserimento dati
$sql = "INSERT INTO accounts (id, pw, email) VALUES ('$id', '$pw', '$email')";
// eseguo la query e controllo che non mi restituisca errore
if($result = mysql_query($sql))
{
$messaggio = "Si è verificato un errore nella fase di inserimento;<br /> I dati dell'utente non sono stati salvati.";
}mysql_close($connessione);
//reindirizzamento
header("Location: paginaweb.php");
?> [/php]e config.php:
[php]<?php
$db_host = "";
$db_user = "";
$db_psw = "";
$db_name = "";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server fallita");
$db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione con il DB fallita.");
?> [/php]:x Ecco i miei problemi:1)Dato che i campi "id" e "email" devono essere univoci, vorrei fare in modo che una query spulciasse il DB e successivamente visualizzasse un messaggio di errore nella pagina web*;* ad esempio "Account già esistente. Scegli un altro id".
2)Si può fare in modo che i campi siano tutti e 3 obbligatori tramite una if?
3)É possibile fare in modo che la registrazione sia completata tramite una conferma tramite email con il link x l'attivazione? (questa domanda è di secondaria importanza)
Aspetto notizie
Grazie in anticipo x l'attenzione!!
Mattia