Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1

    Undefined variable: codiceconferma e sentmail

    Buonasera a tutti, scusatemi anticipatamente se avete affrontato già il tema ma nelle varie discussioni non ho trovato quato occorre a me per risolvere il mio problema.
    sto tentando di creare un modulo di registrazione tramite easyphp, ho creato il db e 2 cartelle, utenti ed utenti_temp.
    In notepad ++ ho creato il file register.php
    se lo apro http://localhost/sito/register.php mi da la pagina in cui posso inserire i dati di login e pwd
    anche se faccio prove con pwd diverse o mancante mi da l'errore di inserire le password corrette oppure di inserire tutti i campi.

    il problema si complica se tutti i dati sono corretti e devo ricevere il link di attivazione.
    ho verificato mille volte lo script ed è corretto, ve lo giro.

    <?php
    include 'header.php';
    ?>
    <div id="wrapper">

    <?php

    if(!isset($_GET['passkey'])){

    if(!isset($_POST['invia'])){ ?>

    <form method="post" action="#" id="formregistrazione">

    <label for="username">Username</label>
    <input type="text" name="username" id="username" /><br>
    <label for="password1">Password</label>
    <input type="password" name="password1" id="password1" /><br>
    <label for="password2">Ripeti Password</label>
    <input type="password" name="password2" id="password2" /><br>
    <label for="email">Email</label>
    <input type="text" name="email" id="email" /><br>
    <input type="submit" name="invia" id="registrati" value="Registrati" />
    </form>

    <?php } else {

    // creazione di un codice di conferma
    $codice_conferma = md5(uniqid(rand()));

    // Valori del form

    $username = mysql_real_escape_string($_POST['username']);
    $password1 = mysql_real_escape_string($_POST['password1']);
    $password2 = mysql_real_escape_string($_POST['password2']);
    $email = mysql_real_escape_string($_POST['email']);

    // controllo campi vuoti e password

    if($username == "" || $email == ""){
    echo "Devi riempire tutti i campi";
    }elseif($password1 == "" || $password2 == ""){
    echo "Devi riempire tutti i campi";
    }elseif($password2 != $password1){
    echo "Le password devono coincidere";
    }else{

    $recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");
    $contausermail = mysql_num_rows($recuperauseremail);

    if($contausermail > 0){

    echo "Nome utente o email già disponibili";

    } else {

    // Invia dati alla tb utenti_temp

    $inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");

    if($inviautentitemp){

    $to=$email;
    $subject="Conferma la Registrazione";
    $header="Da: Amministratore";
    $message="Ecco il tuo codice di attivazione \r\n";
    $message1="Clicca sul link per confermare la registrazione \r\n";
    $message.="
    http://127.0.0.1/sito/register.php?passkey=$codiceconferma";

    $sentmail=mail($to,$subject,$message,$header);

    }

    if($sentmail){

    echo "Per completare la registrazione controlla la tua posta elettronica e clicca sul link di attivazione.";

    }else{

    echo "Errore, link di attivazione non inviato.";

    }

    }
    }



    }

    } else {

    }

    ?>

    </div>


    < /body>
    < /html>




    l'errore che esce è il seguente:
    Notice: Undefined variable: codiceconferma in C:\Program Files\EasyPHP-12.1\www\sito\register.php on line 61

    Notice: Undefined variable: sentmail in C:\Program Files\EasyPHP-12.1\www\sito\register.php on line 76
    Errore, link di attivazione non inviato.



    vi giro le voci corrispondenti alla riga 61 e 76

    riga 61:
    $inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");


    riga 76
    if($sentmail){

    vi giro anche tutto il contenuto racchiuso tra le due righe, magari vi serve:

    $inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");

    if($inviautentitemp){

    $to=$email;
    $subject="Conferma la Registrazione";
    $header="Da: Amministratore";
    $message="Ecco il tuo codice di attivazione \r\n";
    $message1="Clicca sul link per confermare la registrazione \r\n";
    $message.="
    http://127.0.0.1/sito/register.php?passkey=$codiceconferma";

    $sentmail=mail($to,$subject,$message,$header);

    }

    if($sentmail){


    ho letto che potrebbe essere il codice php.ini ma sinceramente non ho assilutamente idea di cosa dovrei fare.
    vi garantisco però che ho seguito il tutorial alla lettera e controllato mille volte, credo ci sia da abilitare qualcosa.

    grazie a tutti.
    mario

  2. #2
    $codice_conferma e ben diverso da $codiceconferma

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    $codice_conferma e ben diverso da $codiceconferma
    Ciao e grazie per la risposta,
    Ma seguendo il tutorial viene indicato cosi e funziona nel tutorial.
    Non credi sia un problema di configurazione?
    Ad ogni modo proverò.
    Ma devo cambiare ovunque?

  4. #4
    Quote Originariamente inviata da margis6972 Visualizza il messaggio
    Ciao e grazie per la risposta,
    Ma seguendo il tutorial viene indicato cosi e funziona nel tutorial.
    Non credi sia un problema di configurazione?
    Ad ogni modo proverò.
    Ma devo cambiare ovunque?
    Evidentemente si tratta di un refuso.

    Se la variabile $codice_conferma la vedi solo qui:

    $codice_conferma = md5(uniqid(rand()));

    modifica solo quella in

    $codiceconferma = md5(uniqid(rand()));


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    Evidentemente si tratta di un refuso.

    Se la variabile $codice_conferma la vedi solo qui:

    $codice_conferma = md5(uniqid(rand()));

    modifica solo quella in

    $codiceconferma = md5(uniqid(rand()));

    Ciao Piero, intanto grazie 1000 per l'aiuto, lo apprezzo molto.
    ho fatto come dicevi, in effetti mi è sparito l'errore della riga 61 ma è rimasto quello della riga 76

    riga 76
    if($sentmail){

    cosa sbaglio?

    devo configurare qualcosa? tu sapresti darmi una possibile soluzione?

    mario

  6. #6
    forse e' qui che devi configurare la mail nel php.ini

    In pratica se vuoi inviare la Email devi avere un account abilitato per inviare sul tipo di provider che ti fornisce l'ADSL. es. per alice adsl:

    codice:
    [mail function]
    ; For Win32 only.
    SMTP = mail.tin.it
    smtp_port = 25
    
    ; For Win32 only.
    sendmail_from = utente_valido@tin.it
    
    ;oppure utente_valido@alice.it
    Ovviamente se hai un altro provider internet dovrai agire di conseguenza in modo appropriato. Dopo le modifiche si deve restartare apache e (a volte) ripulire la cache del browser.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    ;sendmail_from = le2ruote@gmail.com

    quel ; e' un rem, cioe' dice che quello che segue e' un commento e non una istruzione.

    quindi togli il ; salva e restarta apache.

    Poi, sei certo che gmail.com sia ammesso da vodafon come indirizzo valido per l'invio? Dovresti provare con un client di posta tipo thunderbird e verificare quale indirizzo email funziona con la posta in uscita.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    ;sendmail_from = le2ruote@gmail.com

    quel ; e' un rem, cioe' dice che quello che segue e' un commento e non una istruzione.

    quindi togli il ; salva e restarta apache.

    Poi, sei certo che gmail.com sia ammesso da vodafon come indirizzo valido per l'invio? Dovresti provare con un client di posta tipo thunderbird e verificare quale indirizzo email funziona con la posta in uscita.
    Ciao,
    quindi l'errore potrebbe essere il ;
    per l'indirizzo mail non saprei se va bene o meno...devo provare.
    Faccio dei tentativi e ti dico.
    Grazie mille come sempre

  9. #9
    Ciao, ti aggiorno,
    Sono riuscito a risolvere tutto, ora funziona tutto bene, anche nel db si aggiorna tutto correttamente, mi manda il link di attivazione ecc.
    Sono arrivato al punto in cui mi chiede di inserire il file jquery per migliorare le funzioni della pagina di registrazione.
    Ho scaricato il contenuto, salvato il file jquery validation nella cartella www -> sito (chiamata cosi)
    Ho compilato tutto il file come da tutorial ma non mi fa nulla.
    Ovvero, volevo inserire le voci che la pwd deve essere almeno di xxx lettere, ecc...ma non esce praticamente nulla.
    Tu sai usarlo?
    Volevo anche chiederti una cortesia, io sto utilizzando dreamweaver, ho scaricato un template già fatto che ha già una cartella . js, che ovviamente è quella del template scelto, credo sia logico lavorare su quel file riconfigurando le variabili con i nomi utilizzati, ma in realtà non si comprende quale sia il file da modificare.

    Sapresti dirmi come posso fare?

    Se ti fa piacere vorrei scambiare delle mail dirette con te, posso lasciartela in privato?
    Ultima modifica di margis6972; 09-11-2013 a 01:53

  10. #10
    Beh! ora hai risolto il problema Mail. Ora apri un un altro thread nella sezione appropriata.

    Meglio gestire i problemi tramite forum. Serviranno anche ad altri e altri potrebbero darti informazioni piu' utili.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.