• 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 🙂


  • User Attivo

    TI IMPLORO IN GINOCCHIO DI AIUTARMI!!!!

    Senti sto avendo molti problemi con il tuo script e vorrei risolverli allora

    1. il $_SESSION['id'] non mi funziona
    2. il login non funziuona e ho scoperto che se metto il session_start() nel config.ini il login va se lo metto nella apgina privata il login non và ti posto il codice, in poche parole la pagina privata non mi riconosce come utente registrato...ti posto qui l'inizio del codice della pagina privata
      [php]
      <?
      session_start();
      // Se non è stata definita la variabile manda l'utente alla homepage
      if(!isset($_SESSION['login']))
      {
      header('Location: index.php');
      exit;
      }
      [/php]

  • ModSenior

    Ciao Zomer,
    Il codice che hai postato mi sembra corretto.