• User Attivo

    Messaggio di benvenuto in iscrizione php

    Salve a tutti.
    Passo subito al sodo.
    Io ho un'iscrizine creata interamente in php con 4 campi:
    -username
    -e-mail
    -nome
    -password
    In questa iscrizione vorrei fare in modo che quando gli utenti loggano (inserendo username e password) fosse stampato nella parte alta della pagina
    "Bentornato $suo_nome in miosito.com
    Logout | Cancellati"
    Ecco insomma qualcosa del genere.
    Se vi servono vi posto qui di seguito il codice delle pagine 'iscrizione.php' e 'login.php'

    iscrizione.php
    </SPAN>codice PHP:

    <?php
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Iscriviti"))
    {
    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'];
    $user = $_POST['user'];
    $nome = $_POST['nome'];
    $password = $_POST['password'];

    @include "config.php";

    $ctrl_mail = @mysql_query("SELECT id FROM iscrizioni WHERE email='$email'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_mail)>0)
    {
    echo "L'email risulta già stata registrata.";
    }

    $ctrl_user = @mysql_query("SELECT id FROM iscrizioni WHERE user='$user'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_user)>0)
    {
    echo "L'username è già stato utilizzato.";

    }else{
    if(@mysql_query("INSERT INTO iscrizioni (email, user, nome, password) VALUES('$email','$user','$nome','$password')") or die (mysql_error()))
    {

    echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";

    $headers = "From: $admin_email\nreply-To: noreply\r\n";
    $subject = "Conferma la tua iscrizione a robyonweb.com.";
    $messaggio = "Benvenuto $nome,";
    $messaggio .= "Ti ringraziamo per la tua iscrizione.\n";
    $messaggio .= "La tua user è: ".$user."\n";
    $messaggio .= "La tua password è: ".$password."\n";
    $messaggio .= "Per confemare vai alla pagina <a href="robyonweb.com/login.php" target="_blank">robyonweb.com/login.php</a>";
    $messaggio .= "e inserisci i dati per l'autenticazione.\n";
    $messaggio .= "Adesso portai accedere a molte più funzionalità di robyonweb.com!\n";
    $messaggio .= "Lo STAFF di robyonweb.com!\n";

    @mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
    }
    }
    }
    }
    else {
    ?>
    <h1>Modulo d'iscrizione:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    Username:<br>
    <input name="user" type="text" size="20"><br>
    Nome:<br>
    <input name="nome" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20" maxlength="10"><br>
    <input name="submit" type="submit" value="Iscriviti">
    </form>
    <?
    }
    ?>

    login.php
    codice 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
    echo "Login effettuato.";
    }
    }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
    }
    ?>
    Come potete aiutarmi?
    Grazie e ciao...
    Steave67


  • User Attivo

    Nessuno riesce ad aiutarmi? E' una cosa tanto difficile da risolvere?


  • User Attivo

    Ciao,
    puoi utilizzare le sessioni per farlo.
    Al momento del login memorizzi nella sessione tutte le variabili che ti interessano, come ad esempio il nome che dell'utente che vuoi visualizzare.

    Alessandro


  • User Attivo

    Ok grazie, adesso provo...


  • User Attivo

    No, non funziona.
    La pagina "login.php" l'ho modificata in questo modo:
    [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,nome 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;
    $_SESSION['nome'] = $obj->nome;
    // redirect alla pagina degli iscritti
    echo "Login effettuato.";
    }
    }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]

    Dicendo di selezionare non solo l'id ma anche il 'nome'.
    Che poi successivamente l'ho salvato nella sessione.
    Il codice che ho fatto per dare il benvenuto è invece:
    [PHP]
    <php?
    if(isset($_SESSION['nome']))
    {
    echo "Bentornato "$_SESSION['nome']"!";
    }
    ?>
    [/PHP]

    Perchè non mi funzia? Cos'ho sbagliato?


  • User Attivo

    Intanto mancano un paio di punti in questa riga di codice:
    [php]echo "Bentornato ".$_SESSION['nome']."!";[/php]

    Poi, nelle pagine dove dovrebbe comparire il msg di benvenuto hai inserito all'inizio session_start()?
    A volte capita di dimenticarlo. 😉


  • User Attivo

    Sì certo il session_start() l'ho inserito, ma nel codice non se vedeva perchè sta più in alto.
    Comunque grazie per avermi segnalato i due punti adesso dovrebbe funzionare.
    Comunque provo...


  • User Attivo

    No non funziona, ma non mi visualizza proprio niente dove dovrebbe comparire.
    All'inizio ho messo session_start()
    E il codice che ho fatto è:
    <php?
    if(isset($_SESSION['nome']))
    {
    echo "Bentornato ".$_SESSION['nome']."!";
    }
    ?>

    Prova vedere con i tuoi occhi.
    vai su robyonweb.com/conferma.php
    ed inserisci:
    user: prova
    password: default
    Se il login è corretto ti dirà che il login è tato effettuato.
    Dopo di chè vai sul link robyonweb.com/index.php e sopra a Logout e cancellati come vedi non c'è niente mentre ci dovrebbe essere "Bentornato prova (il nome)"
    Come mai?
    Attendo risposte (spero :D)


  • User Attivo

    Intanto che ragionate su questo problema vorrei porvi un'altra domanda:
    Nella pagina avete visto:
    Logout | Cancellati
    Ma nella pagina cancellati vorrei che non si cancellassero immettendo di nuovo l'user e la password, ma in automatico.
    Questa è la pagina di cancellazione:

    Cancellazione.php
    [PHP]
    <?php
    if(isset($_POST['submit']) && (trim($_POST['submit']) == "Cancellati"))
    {
    //controllo sul formato dell'username
    if(!isset($_POST['user']))
    {
    die("Formato username incorretto.");
    }
    $user = $_POST['user'];
    $password = $_POST['password'];
    include "config.php";
    $ctrl = mysql_query("SELECT user FROM iscrizioni WHERE user='$user' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl) == 0)
    {
    die("L'username non risulta registrata.");
    }
    $ctrl_mail = @mysql_query("DELETE FROM iscrizioni WHERE user='$user' AND password='$password'") or die ("E' stato impossibile cancellarti : <br>".mysql_error());
    echo "Cancellazione avvenuta!";
    }
    ?>
    <h1>Cancellati da robyonweb:</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" maxlength="10" size="20"><br>
    <input name="submit" type="submit" value="Cancellati">
    </form>
    <?
    ?>
    [/PHP]

    Come potete aiutarmi? E per la prima domanda con il mex di Benvenuto, è troppo difficile risorverlo?


  • Super User

    Scusa, ma perchè "stai reinventando l'acqua calda" ? Nel senso: perchè stai rifacendo da 0 una cosa che i vari CMS fanno da sempre ? Perchè crei da zero qualche cosa che i vari framework gia' trattano e che tu potresti utilizzare per semplificarti la vita ?


  • User Attivo

    Scusa ma non capisco cosa intendi!
    E poi comunque io nella vita sono uno che le cose (specialmente nell'informatica) le voglio fare solo, cioè non nel senso che non voglio essere aiutato, perchè altrimenti non avrei postato in questo forum; in parole povere non voglio cose già prefatte, perchè voglio imparare!
    E comunque non capisco a cosa ti riferisci...
    Adesso che avete capito le mie intenzioni vorrei, perfavore, che mi risolviate questo problema se siete in grado di farlo, naturalmente!


  • Super User

    Non capire male. Anche io sono sempre pronto ad imparare, ma non voglio imparare come si crea l'acqua calda, quando ci sono gia' tanti strumenti che la creano per me. Voglio imparare come "sfruttare/utilizzare" l'acqua calda. Nel tuo caso specifico, perchè impazzisci dietro a come creare una sezione di login/logout dell'utente, quando potresti imparare ad utilizzare un framework MVC come Zend Framework così da poter sfruttare meglio in seguito le tue conoscenze, magari trovando lavoro per qualcuno che ha bisogno di un programmatore PHP con conoscenze di ZF. Tutto qui. Non volevo offendere. M.


  • User Attivo

    Avevo capito che non c'era niente di offensivo nel tuo messaggio,ma ormai ho iniziato con questo metodo e voglio finire almeno questo sito così.
    Quindi perfavore aiutatemi...


  • User Attivo

    Grazie a tutti coloro che mi hanno aiutato (specialmente in questi ultimi giorni...:dull:), ma ho risolto tutto solo :figo2: senza l'aiuto di framework o cose varie...
    Ciao steave67 :smile5: