• ModSenior

    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.


  • User Attivo

    Ok, ti ringrazio molto! 😉


  • User Attivo

    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!


  • ModSenior

    $query dov'è?


  • User Attivo

    Cavolo è vero, ma che ci devo mettere nella query? SELECT? non credo...


  • ModSenior

    [php]SELECT id FROM utenti LIMIT 10[/php]


  • User Attivo

    Risolto con SELECT ok, grazie, una distrazione 😄

    Come faccio per recuperare le password perse?

    Grazie! 🙂


  • ModSenior

    Abbiamo già trattato il recupero password, se guardi nelle varie pagine trovi tutto.


  • User Attivo

    @Thedarkita said:

    Abbiamo già trattato il recupero password, se guardi nelle varie pagine trovi tutto.
    Ok, le leggerò, grazie! 😉


  • User Attivo

    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]


  • ModSenior

    Dovresti fare
    [php]
    if($utenti < 10){
    [/php]

    Altrimenti ne fai registrare 11 e non 10.


  • User Attivo

    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


  • User Attivo

    [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]


  • ModSenior

    Se fai un redirect che senso ha fare un echo che non vedresti?


  • User Attivo

    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
    :mmm:


  • User Attivo

    Sarebbe questa riga:

    [PHP]// Reindirizzo l'utente ad una pagina di conferma della registrazione
    header('Location: registrato.php');
    exit;[/PHP]


  • User Attivo

    Forse devo mettere lo script anche nella pagina registrato.php?


  • User Attivo

    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...


  • ModSenior

    [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]


  • User Attivo

    Ti ringrazio molto Thedarkita 🙂