- Home
- Categorie
- Coding e Sistemistica
- PHP
- creare un area utenti riservata
-
creare un area utenti riservata
inanzitutto un salutone a tutti ho letto molte discussione e siete davvero ingamba...e ho voluto esporvi anche il mio problema eccolo:
sto creando un sito e volevo inserire nel sito un area utenti riservata solo a chi si inscrive ossia:
iscrizione area utenti >compilazione form con tutti i dati richiesti >registrare il tutto nel DB .
io sto usando easyphp ho provato a fare qualcosa ma mi da errore index e non mi fa registrare nulla sul DB se volete posso postarvi il mio cod utilizzato per vedere se sto sbagliando in qualcosa.....asp vostre notizie ...grazie
-
Qua c'è un tutorial: http://www.giorgiotave.it/forum/php-mysql/83033-tutorial-area-privata.html#post512240
devi comunque postare che errore da... altrimenti non possiamo aiutarti...
-
incredibile velocissimi .......:o
vado subito a vedere il link grazie per la risposta lampoquesto e il mio cod
config.php
[php]<?php
//Variabili per la connessione al database
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "registrazione";
$tbl_name="";
$field_username = "";
$field_password = "";
$field_email = "";
$redirect_page = "index.php";
?>[/php]registra.php
[php]<form name="registra" id="registra" method="POST" action="">
<table>
<tr><td>Username:</td><td><input name="username" type="text" /></td></tr>
<tr><td>Password:</td><td><input name="password" type="password" /></td></tr>
<tr><td>Ripeti password:</td><td><input name="rpassword" type="password" /></td></tr>
<tr><td>E-Mail:</td><td><input name="email" type="text" /></td></tr>
<tr><td colspan="2" align="right"><input name="submit" type="submit" value="Invia" /></td></tr>
</table>
</form><?
$username=$_POST['username'];
$password=$_POST['password'];
$rpassword=$_POST['rpassword'];
$email=$_POST['email'];$form_error = true;
$password_error = true;
$email_error = true;if(isset($_POST['submit'])) {
//Controlla che tutti i campi siano stati riempiti
if(trim($username) == "" || trim($password) == "" || trim($rpassword) == "" || trim($email) == "") {
echo("<b>Attenzione: </b>Devi completare tutti i campi<br>");
} else {
$form_error = false;
}//Controlla che le due password si corrispondano if($password != $rpassword) { echo("<b>Attenzione: </b>Le due password si devono corrispondere<br>"); } else { $password_error = false; } //Controlla che nell'ultimo campo sia stato inserito un indirizzo email for($i=0; $i<strlen($email); $i++) { if($email* == "@") $email_error = false; } if($email_error == true) { echo("<b>Attenzione: </b>L'indirizzo email fornito non e corretto<br>"); }
//Se il controllo ha successo, effettua la registrazione
if($form_error == false && $password_error == false && $email_error == false) {
include("config.php");//Effettua la connessione al database $connect = mysql_connect($db_host,$db_user,$db_pass) or die("Connessione fallita: ".mysql_error()); mysql_select_db($db_name); //Controlla che l'username scelto non sia gia esistente: $user_exists = false; $query = mysql_query("SELECT $field_username FROM $tbl_name"); while($user = mysql_fetch_assoc($query)) { if($username == $user["$field_username"]) $user_exist = true; } //Se l'username e esistente si invia un messaggio d'errore, altrimenti si prosegue con la registrazione if($user_exist == true) { echo("<b>Attenzione: </b>L'username scelto e gia presente nel database<br>"); mysql_close($connect); } else { mysql_query("INSERT INTO $tbl_name ($field_username,$field_password,$field_email) VALUES('$username','$password','$email')"); mysql_close($connect); echo("<script type=\"text/javascript\">document.location = \"$redirect_page\"</script>"); } }
}
?>
[/php]bene ..mi da errore dicendomi che username password e email sono variabili indefinite.ho anche creato un database dal nome registra con tabella dal nome utenti
con 4 campi
id notnull id_autoincrement chiave
username notnull unica
password notnull unica
email notnull unicagrazie
-
registra.php
[php]
table>
<tr><td>Username:</td><td><input name="username" type="text" /></td></tr>
<tr><td>Password:</td><td><input name="password" type="password" /></td></tr>
<tr><td>Ripeti password:</td><td><input name="rpassword" type="password" /></td></tr>
<tr><td>E-Mail:</td><td><input name="email" type="text" /></td></tr>
<tr><td colspan="2" align="right"><input name="submit" type="submit" value="Invia" /></td></tr>
</table>
</form><?
$form_error = true;
$password_error = true;
$email_error = true;if(isset($_POST['submit'])) {
$username= (isset($_POST['username'])) ? trim($_POST['username']) : '';
$password=(isset($_POST['password'])) ? trim($_POST['password']) : '';
$rpassword=(isset($_POST['rpassword'])) ? trim($_POST['rpassword']) : '';
$email= (isset($_POST['email'])) ? trim($_POST['email']) : '';
//Controlla che tutti i campi siano stati riempiti
if($username == "" || $password == "" || $rpassword == "" || $email == "") {
echo("<b>Attenzione: </b>Devi completare tutti i campi<br>");
} else {
$form_error = false;
}//Controlla che le due password si corrispondano if($password != $rpassword) { echo("<b>Attenzione: </b>Le due password si devono corrispondere<br>"); } else { $password_error = false; } //Controlla che nell'ultimo campo sia stato inserito un indirizzo email for($i=0; $i<strlen($email); $i++) { if($email* == "@") $email_error = false; } if($email_error == true) { echo("<b>Attenzione: </b>L'indirizzo email fornito non e corretto<br>"); }
//Se il controllo ha successo, effettua la registrazione
if($form_error == false && $password_error == false && $email_error == false) {
include("config.php");//Effettua la connessione al database $connect = mysql_connect($db_host,$db_user,$db_pass) or die("Connessione fallita: ".mysql_error()); mysql_select_db($db_name); //Controlla che l'username scelto non sia gia esistente: $user_exists = false; $query = mysql_query("SELECT $field_username FROM $tbl_name"); while($user = mysql_fetch_assoc($query)) { if($username == $user["$field_username"]) $user_exist = true; } //Se l'username e esistente si invia un messaggio d'errore, altrimenti si prosegue con la registrazione if($user_exist == true) { echo("<b>Attenzione: </b>L'username scelto e gia presente nel database<br>"); mysql_close($connect); } else { mysql_query("INSERT INTO $tbl_name ($field_username,$field_password,$field_email) VALUES('$username','$password','$email')"); mysql_close($connect); echo("<script type=\"text/javascript\">document.location = \"$redirect_page\"</script>"); } }
}
?>
[/php]comuqne cosi da sempre gli echo di errore, visto che metti le variabili a true, e non cambiano mai di stato...
-
cosi pero con variabilie true non va avanti fino a quando gli errori di compilazione non sono risolti una volta risolti passano a false tu cosa mi suggerisci di fare!!!!
per risolvere ...
anche se ho visto il tuo post e davvero fatto bene se non riesco a risolvere il mio di errore passo al tuo che mi sa che e' meglio.
cmq secondo te?
-
ah si... non avevo fatto caso che passavano a false, in linea teorica può andare...
PS le password meglio se nel database metti un hash in md5...
-
come posso fare per inserirlo ..ti ricordo che sono un po alle prime armi in php e sql quindi adesso so un po lento ....
l'errore continua a darmelo ma cosa strana e che nel db non registra nulla...
-
puoi incollare l'errore...
-
Notice: Undefined index: username in c:\programmi\easyphp1-8\www\registra.php on line 13
Notice: Undefined index: password in c:\programmi\easyphp1-8\www\registra.php on line 14
Notice: Undefined index: rpassword in c:\programmi\easyphp1-8\www\registra.php on line 15
Notice: Undefined index: email in c:\programmi\easyphp1-8\www\registra.php on line **16
questo è l'errore che mi da.
**
-
ma ha i fatto quelle modifiche che ti ho detto io? perchè con quelle modifiche è impossibile che ti da questi notice...
-
di modifiche ti riferisci solo all'aggiunta di questo:
$username= (isset($_POST['username'])) ? trim($_POST['username']) : '';
$password=(isset($_POST['password'])) ? trim($_POST['password']) : '';
$rpassword=(isset($_POST['rpassword'])) ? trim($_POST['rpassword']) : '';
$email= (isset($_POST['email'])) ? trim($_POST['email']) : '';se e solo questo si ho aggiunto il pezzo da te suggerito.
pero mi sorge un dubbio io ho creato solo 3 cose
config.php
registra.php
index.php
propio in index.php non ho fatto riferimento perninte al codice php
puo essere dovuto a questo?
-
@tapin said:
propio in index.php non ho fatto riferimento perninte al codice php
puo essere dovuto a questo?cioè?
-
cioe' non ho messo niente che faccia riferimento al php... nulla solo una pagina bianca con i relativi
<head>
</head
<body>
</body>
</html>basta ...puo essere dovuto a questo?
-
no...
boh a me sembra tutto giusto... non sò come mai vedi i notice...
-
con il tuo permesso provo il tuo di login e vediamo cosa mi dice speriamo bene...
un attimo di pazienza.. e ti dico tutto.
-
con il tuo mi da questo errore
Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\config.php:14) in c:\programmi\easyphp1-8\www\registrati.php on line 51
-
O.o
prima di quell'errore mostra qualcosa?
boh.... e l'ho pure testato prima di postarlo...
-
no.... mostra la pagina index.php nel modo in cui e stata scritta e poi cliccando su registrazione inserisco i dati invio e alla pagina successiva mi compare l'errore.. citato prima
-
controlla che prima di <?php ci siano degli a capo...
cioè la pagina cosi
[php]<?php
// codice
[/php]
che magari prende quello come output...
-
adesso mi compare questo dopo che ho dati gli spazi di 1 solo invio a tutti i files :
**questo errore adesso mi compare nella pagina index.phpWarning**: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\index.php:2) in c:\programmi\easyphp1-8\www\config.php on line 4