• User Attivo

    Niente da fare, ho provato in tutte le maniere, con dreamweaver, dai tuoi file (dentro il rar) poi trasportandoli in cartella...niente sempre solito stesso warning...pensa che ho aggiunto solo la lettera "i" per provare...ma subito errore...bohhhh???????????'' :arrabbiato:


  • ModSenior

    Usa un editor differente da dreamweaver, magari prova con il blocco note.
    Il problema non riguarda lo script.


  • User Attivo

    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??? 😢


  • User Attivo

    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!


  • User Attivo

    Ok, ora per la registrazione funziona ma per il login no...errore detto sopra...

    Grazie!


  • User Attivo

    Risolto 😄


  • ModSenior

    Ciao,
    Scusa sono stato in vacanza e non ho potuto rispondere.
    Magari posta le soluzione che possono tornare utili ad altri utenti.


  • User Attivo

    Ciao! Figurati!
    L'errore era da idioti, avevo messo il rows a 2 mentre andava a 1 😄


  • User Attivo

    Ciao!

    Come faccio per far in modo che si registrino solo 10 utenti e basta?

    Grazie!


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