• User Attivo

    Iscrizione utenti in php

    Salve a tutti.
    Ho creato un'iscrizione utenti in php.
    Passo subito al sodo.
    I campi da compilare sono 4:

    • email
    • user
    • nome
    • password

    Gli stessi nomi sono usati per il database mysql.
    Fino al form d'iscrizione funziona tutto, ma quando vado a fare il login mi dà l'errore:

    Parse error: parse error in D:\Inetpub\webs\robyonwebcom\iscrizione\conferma.php on line 26

    Ho controllato ma nn mi sembra che ci sia nessun problema.
    Il codice della pagina è questo:
    [PHP]<?php
    session_start();
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    {
    }else{
    $user = $_POST['user'];
    $password = $_POST['password'];
    @include "config.php";
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
    echo "Login incorretto.";
    }else{
    $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
    $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id=".$obj->id) or die (mysql_error());
    $_SESSION['id'] = $obj->id;
    // redirect alla pagina degli iscritti
    @header("Location: iscritti.php");
    }
    }
    }else{
    ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
    <?
    }
    ?>[/PHP]

    Poi c'è il problema con la richiesta dei dati d'autenticazione.
    In teoria l'utente mette la sua e-mail nell'apposito campo e se è registrata arrivano a lui un messaggio così:

    Ciao $nome,
    la tua username è: $user
    la tua pssword è: $password

    Ma ciò non accade e invia all'utente un messaggio così:

    Ciao ,
    la tua username è:
    la tua password è:

    Il codice di quest'altra pagina è questo:
    [PHP]<?php
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Richiedi"))
    {
    //controllo sul formato dell'email
    if((!isset($POST['email'])) || (!eregi("^([a-z0-9.-]+)(@[a-z0-9.-]+)(.{1}[a-z]{2,4})$", $_POST['email'])))
    {
    echo "Attenzione, formato email non valido.";
    }else{
    $email = $_POST['email'];
    @include "config.php";
    $ctrl_mail = @mysql_query("SELECT password AND user AND nome FROM iscrizioni WHERE email='$email'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_mail) == 0)
    {
    echo "L'email non risulta registrata.";
    }else{
    //recuperiamo la password
    if($ctrl_obj = @mysql_fetch_object($ctrl_mail) or die (mysql_error()))
    {
    // messaggio di conferma
    echo "Abbiamo inviato i dati d'accesso alla tua e-mail ($email).";
    // email per la conferma
    $headers = "From: $admin_email\nreply-To: noreply\r\n";
    $subject = "Ricorda dati d'accesso a Robyonweb.com";
    // corpo del messaggio
    $messaggio = "Ciao $ctrl_obj->nome.\n";
    $messaggio .= "La tua username è: ".$ctrl_obj->user."\n";
    $messaggio .= "La tua password è: ".$ctrl_obj->password."\n";
    // invio dell'email
    @mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
    }
    }
    }
    }else{
    // form per la richiesta
    ?>
    <h1>Modulo ricorda username e password:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    <input name="submit" type="submit" value="Richiedi">
    </form>
    <?
    }
    ?>[/PHP]

    Quali sono i problemi?
    Attendo vostre risposte... grazie in anticipo
    steave67


  • User Attivo

    Per la prima domanda prova così :
    [PHP]<?php
    session_start();
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    {
    }else{
    $user = $_POST['user'];
    $password = $_POST['password'];
    @include "config.php";
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
    echo "Login incorretto.";
    }else{
    $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
    $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());
    $_SESSION['id'] = $obj->id;
    // redirect alla pagina degli iscritti
    @header("Location: iscritti.php");
    }
    }
    }else{
    ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
    <?php
    }
    ?>[/PHP]
    e per la seconda così :
    [PHP]<?php
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Richiedi"))
    {
    //controllo sul formato dell'email
    if((!isset($POST['email'])) || (!eregi("^([a-z0-9.-]+)(@[a-z0-9.-]+)(.{1}[a-z]{2,4})$", $_POST['email'])))
    {
    echo "Attenzione, formato email non valido.";
    }else{
    $email = $_POST['email'];
    @include "config.php";
    $ctrl_mail = @mysql_query("SELECT password AND user AND nome FROM iscrizioni WHERE email='$email'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_mail) == 0)
    {
    echo "L'email non risulta registrata.";
    }else{
    //recuperiamo la password
    while($ctrl_obj = mysql_fetch_object($ctrl_mail))
    {
    // messaggio di conferma
    echo "Abbiamo inviato i dati d'accesso alla tua e-mail ($email).";
    // email per la conferma
    $headers = "From: $admin_email\nreply-To: noreply\r\n";
    $subject = "Ricorda dati d'accesso a Robyonweb.com";
    // corpo del messaggio
    $messaggio = "Ciao $ctrl_obj->nome.\n";
    $messaggio .= "La tua username è: ".$ctrl_obj->user."\n";
    $messaggio .= "La tua password è: ".$ctrl_obj->password."\n";
    // invio dell'email
    @mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
    }
    }
    }
    }else{
    // form per la richiesta
    ?>
    <h1>Modulo ricorda username e password:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    <input name="submit" type="submit" value="Richiedi">
    </form>
    <?php
    }
    ?>[/PHP]
    😉


  • User Attivo

    La prima mi dà l'errore sulla linea 21, mentre la seconda non è cambiato niente.
    Scusa se te lo chiedo ma cos'hai cambiato nel codice?


  • User Attivo

    Modifica la prima così :
    [PHP] <?php
    session_start();
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    {
    $user = $_POST['user'];
    $password = $_POST['password'];
    @include "config.php";
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
    echo "Login incorretto.";
    }else{
    $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
    $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());
    $_SESSION['id'] = $obj->id;
    // redirect alla pagina degli iscritti
    @header("Location: iscritti.php");
    }
    }else{

    ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
    <?php
    }
    ?>[/PHP]
    Tra poco ti posto la seconda:)


  • User Attivo

    [...]
    Nei codici non hai cambiato nulla!!!


  • User Attivo

    Allora...
    Ti chiedo di fare un confronto fra il tuo codice :
    [PHP] <?php
    session_start();
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    {
    }else{
    $user = $_POST['user'];
    $password = $_POST['password'];
    @include "config.php";
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
    echo "Login incorretto.";
    }else{
    $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
    $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id=".$obj->id) or die (mysql_error());
    $_SESSION['id'] = $obj->id;
    // redirect alla pagina degli iscritti
    @header("Location: iscritti.php");
    }
    }
    }else{
    ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
    <?
    }
    ?> [/PHP]

    E il mio :
    [PHP] <?php
    session_start();
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    {
    $user = $_POST['user'];
    $password = $_POST['password'];
    @include "config.php";
    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
    echo "Login incorretto.";
    }else{
    $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
    $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());
    $_SESSION['id'] = $obj->id;
    // redirect alla pagina degli iscritti
    @header("Location: iscritti.php");
    }
    }else{

    ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
    <?php
    }
    ?>[/PHP]

    Come vedi gli ho dato una "pulitina".L'errore stava nella query :

    Tua -> $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id=".$obj->id) or die (mysql_error());
    **Modificata **-> $query_attivo = @mysql_query("UPDATE iscrizioni SET attivo='1' WHERE id='".$obj->id."'") or die (mysql_error());

    > Ma mi stai prendendo in giro?
    

    Ci sei o ci fai?
    Nei codici non hai cambiato nulla!!!

    In quanto moderatore, anche se non di questa sezione, e soprattutto in quanto utente, ti prego di non utilizzare un atteggiamento non conforme al regolamento di questo forum , ritenendo anche che io sto cercando di aiutarti
    [/ot]
    E comunque, ecco la tua seconda pagina :

    [PHP]<?php
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Richiedi"))
    {
    //controllo sul formato dell'email
    if((!isset($POST['email'])) || (!eregi("^([a-z0-9.-]+)(@[a-z0-9.-]+)(.{1}[a-z]{2,4})$", $_POST['email'])))
    {
    die("Attenzione, formato email non valido.");
    }
    $email = $_POST['email'];
    include "config.php";
    $ctrl_mail = @mysql_query("SELECT password,user,nome FROM iscrizioni WHERE email='$email'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_mail) == 0)
    {
    die("L'email non risulta registrata.");
    }
    //recuperiamo la password
    while($ctrl_obj = mysql_fetch_object($ctrl_mail))
    {
    // messaggio di conferma

        // email per la conferma
        $headers = "From: $admin_email\nreply-To: noreply\r\n";
        $subject = "Ricorda dati d'accesso a Robyonweb.com";
        // corpo del messaggio
        $messaggio = "Ciao ".$ctrl_obj->nome."\n";
        $messaggio .= "La tua username è: ".$ctrl_obj->user."\n";
    

    $messaggio .= "La tua password è: ".$ctrl_obj->password."\n";
    // invio dell'email

      }
    

    @mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
    echo "Abbiamo inviato i dati d'accesso alla tua e-mail ($email).";

    }else{
    // form per la richiesta
    ?>
    <h1>Modulo ricorda username e password:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    <input name="submit" type="submit" value="Richiedi">
    </form>
    <?php
    }
    ?>[/PHP]
    Ti chiedo di segnalarmi eventuali errori.


  • User Attivo

    Ok chiarito.
    Scusa :D.
    Adesso provo per vedere se funziona.
    L'occhio mi era proprio sfuggitosui particolari eliminati perchè mi stavo concentrando sulle cose che credevo che dovevano essere modificate!
    Ti prego di perdonarmi!


  • User Attivo

    Ti prego di perdonarmi!
    Perdonato:)


  • User Attivo

    Allora nella prima pagina mi dà ancora l'errore:

    Parse error: parse error in D:\Inetpub\webs\robyonwebcom\iscrizione\conferma.php on line 21

    Mentre nella seconda funziona tutto grazie!


  • User Attivo

    E' strano...Ho riletto il codice molte volte...Non trovo l'errore...Adesso provo un pò con apache...


  • User Attivo

    Scusa tutto aggiustato.
    Un attimo fa non funzionava adesso invece sì.
    Non so proprio cosa sia successo.
    Comunque ti ringrazio molto per il tuo aiuto!
    Cercherò di non avere più un atteggiamento scorretto.
    Grazie ancora
    steave67
    Adesso puoi pure chiudere se vuoi


  • User Attivo

    Prego!;)

    Cercherò di non avere più un atteggiamento scorretto.
    Non ti preoccupare!:D