- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
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
-
[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";
}
header('Location: login.php');
exit;[/PHP]
-
Se fai un redirect che senso ha fare un echo che non vedresti?
-
Vero
Ma allora perchè mi dà:
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
-
Sarebbe questa riga:
[PHP]// Reindirizzo l'utente ad una pagina di conferma della registrazione
header('Location: registrato.php');
exit;[/PHP]
-
Forse devo mettere lo script anche nella pagina registrato.php?
-
Allora, l'avvertimento l'ho risolto spostando lo script...ma continuo a registrare utenti all'infinito...
[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['registra']))
{
// Dati Inviati dal modulo
$cognome_utente = (isset($_POST['cognome_utente'])) ? trim($_POST['cognome_utente']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
$nome_utente = (isset($_POST['nome_utente'])) ? trim($_POST['nome_utente']) : ''; // 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_utente = addslashes($cognome_utente);
$nome_utente = addslashes($nome_utente);
$pass = addslashes($pass);
$mail = addslashes($mail);
}// Controllo il Nome Utente
if(strlen($cognome_utente) < 4 || strlen($cognome_utente) > 12)
die('Cognome troppo corto, o troppo lungo');
if(strlen($nome_utente) < 4 || strlen($nome_utente) > 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 cognome_utente FROM utenti WHERE cognome_utente = '$cognome_utente' 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_utente, nome_utente, pass, mail)";
$strSQL .= "VALUES('$cognome_utente', '$nome_utente', '$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;
}
}
$query=mysql_query("SELECT id FROM utenti LIMIT 10");
$utenti=mysql_num_rows($query);
if($utenti < 10){
//esegui la registrazione
}else{
echo "<center><b><h3>SUPERATO IL LIMITE UTENTI REGISTRATI</h3></b></center><br><br>";
}?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrazione</title>
</head>
<body>
<div align="center">
<form action="" method="post">
<table bgcolor="#bdd3ad" cellspacing="1" cellpadding="10" border="1">
<tr>
<th colspan=2>REGISTRATI ALL'AREA PRIVATA</th>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">COGNOME</font>:</td>
<td width="140"><input name="cognome_utente" type="text" id="cognome_utente" value="" size="15" align="middle onfocus="if(this.value=='Nome Utente') this.value='';" /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">NOME</font></td>
<td width="140"><input name="nome_utente" type="text" id="nome_utente" value="" size="15" align="middle onfocus="if(this.value=='Nome Utente') this.value='';" /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">PASSWORD</font></td>
<td width="140"><input name="pass" type="password" id="pass" value="" size="15" align="middle onfocus="if(this.value=='Password') this.value='';" /><br /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">E-MAIL</font></td>
<td width="140"><input name="mail" type="text" id="mail" value="" size="15" align="middle onfocus="if() this.value='';" /><br /><br /></td>
</tr>
<tr>
<td colspan="2" height="60" align="center">
<input name="registra" width=80 type="submit" value="REGISTRATI" align=middle onclick="check()">
<input name="reset" type="reset" value="ANNULLA" width=80 align=middle>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>[/php]Praticamente mi avverte che non ci si può più registrare ma in realtà ci si può registrare ed entrare nell'area privata...
-
[php]
<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['registra']))
{
// Dati Inviati dal modulo
$cognome_utente = (isset($_POST['cognome_utente'])) ? trim($_POST['cognome_utente']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
$nome_utente = (isset($_POST['nome_utente'])) ? trim($_POST['nome_utente']) : ''; // 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_utente = addslashes($cognome_utente);
$nome_utente = addslashes($nome_utente);
$pass = addslashes($pass);
$mail = addslashes($mail);
}// Controllo il Nome Utente
if(strlen($cognome_utente) < 4 || strlen($cognome_utente) > 12)
die('Cognome troppo corto, o troppo lungo');
if(strlen($nome_utente) < 4 || strlen($nome_utente) > 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 cognome_utente FROM utenti WHERE cognome_utente = '$cognome_utente' 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_utente, nome_utente, pass, mail)";
$strSQL .= "VALUES('$cognome_utente', '$nome_utente', '$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;
}
}
$query=mysql_query("SELECT id FROM utenti LIMIT 10");
$utenti=mysql_num_rows($query);
if($utenti == 10)
die("<center><b><h3>SUPERATO IL LIMITE UTENTI REGISTRATI</h3></b></center><br><br>");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrazione</title>
</head>
<body>
<div align="center">
<form action="" method="post">
<table bgcolor="#bdd3ad" cellspacing="1" cellpadding="10" border="1">
<tr>
<th colspan=2>REGISTRATI ALL'AREA PRIVATA</th>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">COGNOME</font>:</td>
<td width="140"><input name="cognome_utente" type="text" id="cognome_utente" value="" size="15" align="middle onfocus="if(this.value=='Nome Utente') this.value='';" /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">NOME</font></td>
<td width="140"><input name="nome_utente" type="text" id="nome_utente" value="" size="15" align="middle onfocus="if(this.value=='Nome Utente') this.value='';" /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">PASSWORD</font></td>
<td width="140"><input name="pass" type="password" id="pass" value="" size="15" align="middle onfocus="if(this.value=='Password') this.value='';" /><br /><br /></td>
</tr>
<tr>
<td width="90" align="right"><font face="Verdana" size="2">E-MAIL</font></td>
<td width="140"><input name="mail" type="text" id="mail" value="" size="15" align="middle onfocus="if() this.value='';" /><br /><br /></td>
</tr>
<tr>
<td colspan="2" height="60" align="center">
<input name="registra" width=80 type="submit" value="REGISTRATI" align=middle onclick="check()">
<input name="reset" type="reset" value="ANNULLA" width=80 align=middle>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
[/php]
-
Ti ringrazio molto Thedarkita