- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
Usa un editor differente da dreamweaver, magari prova con il blocco note.
Il problema non riguarda lo script.
-
Ciao!
Lo sò che non è un problema di script, ho provato anche col block notes...accidenti non viene...:x e sapessimo il perchè almeno...ho ricontrollato tutto...tutti gli spazi...tutto e che devo fare???
-
Bene, ho trovato la soluzione.
Adesso vorrei mettere al posto di user, cognome, nome, pass ed e-mail.
Nel file registrati.php mi dà questo errore
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\login\registrati.php on line 37
Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\login\registrati.php:37) in c:\programmi\easyphp1-8\www\login\registrati.php on line 55
[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['registra']))
{
// Dati Inviati dal modulo
$cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
$nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' 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()) {
$cognome = addslashes($cognome);
$nome = addslashes($nome);
$pass = addslashes($pass);
$mail = addslashes($mail);
}// Controllo il Nome Utente
if(strlen($cognome) < 4 || strlen($cognome) > 12)
die('Cognome troppo corto, o troppo lungo');
if(strlen($nome) < 4 || strlen($nome) > 12)
die('Nome troppo corto, o troppo lungo');
// Controllo la Password
elseif(strlen($pass) < 4 || strlen($pass) > 12)
die('Password troppo corta, o troppo lunga');
// 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 user FROM utenti WHERE user = '$cognome' LIMIT 1")) == 1)
die('Cognome Utente non disponibile');
// 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 ad un altro utente');
// Registrazione dell'utente nel database
else
{// Crypt della password per garantire una miglior sicurezza
$pass = md5($pass);// Query per l'inserimento dell'utente nel database
$strSQL = "INSERT INTO utenti (cognome, nome, pass, mail)";
$strSQL .= "VALUES('$cognome', '$nome', '$pass', '$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" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrazione</title>
</head>
<body>
<form action="" method="post">
<input name="cognome" type="text" id="cognome" value="COGNOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="nome" type="text" id="nome" value="NOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
<input name="mail" type="text" id="mail" value="Em" onfocus="if(this.value==) this.value='';" /><br />
<input name="registra" type="submit" value="Registrati" /><br />
</form>
</body>
</html>[/php]E anche loggandomi mi da questo errore
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\login\login.php on line 29
Nome Utente o Password errati[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['login']))
{// Dati Inviati dal modulo
$cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : ''; // Metto nella variabile 'cognome' il dato inviato dal modulo, se non viene inviato dò di default ''
$nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : ''; // Metto nella variabile 'nome' il dato inviato dal modulo, se non viene inviato dò di default ''
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' 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()) {
$cognome = addslashes($cognome);
$nome = addslashes($nome);
$pass = addslashes($pass);
}// Crypto la password e la confronto con quella nel database
$pass = md5($pass);// Controllo l'utente esiste
$query = mysql_query("SELECT id FROM utenti WHERE cognome = '$cognome', nome = '$nome' AND pass = '$pass' LIMIT 1");// Se ha trovato un record
if(mysql_num_rows($query) == 2)
{
// prelevo l'id dal database
$login = mysql_fetch_array($query);// Creo una variabile di sessione
$_SESSION['login'] = $login['id'];// reindirizzo l'utente
header('Location: privata.php');
exit;
}
// se non esiste da l'errore
else
die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action="" method="post">
<input name="cognome" type="text" id="cognome" value="COGNOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="nome" type="text" id="nome" value="NOME" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
<input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>[/php]Confermo però che i nomi nel db vengono registrati, cognome, nome, pass ed email.
Dove sbaglio?
Grazie!
-
Ok, ora per la registrazione funziona ma per il login no...errore detto sopra...
Grazie!
-
Risolto
-
Ciao,
Scusa sono stato in vacanza e non ho potuto rispondere.
Magari posta le soluzione che possono tornare utili ad altri utenti.
-
Ciao! Figurati!
L'errore era da idioti, avevo messo il rows a 2 mentre andava a 1
-
Ciao!
Come faccio per far in modo che si registrino solo 10 utenti e basta?
Grazie!
-
Cioè che arrivati a 10 utenti registrati non sia più possibile registrarsi?
Fai una query e con mysql_num_rows conti quanto sono gli utenti registrati.
-
Ok, ti ringrazio molto!
-
Ciao! Questa sintassi è giusta?
[PHP]$utenti=mysql_num_rows($query);
if($utenti <= 10){
//esegui la registrazione
}else{
echo "SUPERATO IL LIMITE UTENTI REGISTRATI";
} [/PHP]Perche mi dà:
Notice: Undefined variable: query in c:\programmi\easyphp1-8\www\login\registrati.php on line 5
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\login\registrati.php on line 5
Grazie!
-
$query dov'è?
-
Cavolo è vero, ma che ci devo mettere nella query? SELECT? non credo...
-
[php]SELECT id FROM utenti LIMIT 10[/php]
-
Risolto con SELECT ok, grazie, una distrazione
Come faccio per recuperare le password perse?
Grazie!
-
Abbiamo già trattato il recupero password, se guardi nelle varie pagine trovi tutto.
-
@Thedarkita said:
Abbiamo già trattato il recupero password, se guardi nelle varie pagine trovi tutto.
Ok, le leggerò, grazie!
-
Ho messo la query, ma và oltre i dieci iscritti...
[PHP]$query=mysql_query("SELECT id FROM utenti LIMIT 10");
$utenti=mysql_num_rows($query);
if($utenti <= 10){
//esegui la registrazione
}else{
echo "SUPERATO IL LIMITE UTENTI REGISTRATI";
} [/PHP]
-
Dovresti fare
[php]
if($utenti < 10){
[/php]Altrimenti ne fai registrare 11 e non 10.
-
Perfetto, grazie! Però mi dà questo l'errore sull'header...lo devo indirizzare?
Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\login\registrati.php:12) in c:\programmi\easyphp1-8\www\login\registrati.php on line 64