Visualizzazione risultati 1 fino 8 di 8

Discussione: problema con my sql

  1. #1
    Guest

    Predefinito problema con my sql

    ciao ho inserito questo codice ma il sito propio nn và chi mi dice dove ho sbagliato???
    allora ho creato un form con una pagina config.php che contiene il codice:
    Codice PHP:
    <?php

    Function connect () {
    mysql_pconnect ("localhost","dechiarap","");
    $dbconnection = mysql_connect('localhost', 'dechiarap', '');
    mysql_select_db("my_dechiarap",$dbconnection );
    }
    ?>
    e poi un codice register.php che ha il seguente codice:
    Codice PHP:
    <?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 {
    $codiceconferma = md5(uniqid(rand()));

    $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']);


    if(
    $username =="" || $email==""){
    echo
    "Devi inserire tutti i dati";
    } elseif(
    $password1 =="" || $password2=="") {
    echo
    "Devi inserire tutti i dati";
    }elseif(
    $password2 != $password1) {
    echo
    "le password non sono uguali";
    }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 e mail gia disponibili";
    } else {
    $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 codice di attivazione \r\n";
    $message.="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 clicca sul link di attivazione della e mail che ti è arrivata";
    } else { echo
    "Errore, link di attivazione non inviato";
    }
    }
    }
    }
    } else{
    $passkey =$_GET['passkey'];
    $sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codice_conferma ='$passkey'";
    $risultatouser = mysql_query($sqlrecuperauser);
    if (
    $risultatouser){
    $contauser =mysql_num_rows ($risultatouser);
    if (
    $contauser ==1) {


    $rows =mysql_fetch_array($risultatouser);
    $username =$rows ['username'];
    $username= $rows ['email'];
    $password= $rows ['password'];
    $passwordcript =md5($password);
    $sqlconfermauser=mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username','$passwordcript','$email')");
    if (
    $sqlconfermauser) {
    echo
    "il tuo account è attivo";
    $sqleliminadati =mysql_query ("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
    } else {
    echo
    "errore";
    }
    }
    }
    }
    ?>

    </div>

    </body>
    </html>

    nn funziona perchè nn viene mandata nessuna e-mail... perchè nn le manda chi me lo spiega??
    se vuoi vedere anche quelllo che ho fatto ecco il link: http://dechiarap.altervista.org/
    grazie mille

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Presumo che per testarlo bisogna andare su questo link, e no nella home del tuo sito:

    http://dechiarap.altervista.org/register.php

    Cmq, la funzione mysql_pconnect() nel primo codice non esiste, almeno credo.

    Non ne sono sicuro, ma nell'header di un messaggio non ho mai visto scritto in questo modo:

    Codice PHP:
    $header="Da: Amministratore";
    Forse al posto di Da: volevi mettere From:?

    Ma non so se il php questo può considerarlo come un'errore.

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    ti ringrazio .... ma nn ho risolto niente .... nn riesci a trovare altri errori??
    cmq ho dimenticato di dire che ho creato le 2 tabelle utenti e utenti_temp e che il nome del database è my_dechiarap e lo username è dechiarap vediamo se ti puo aiutare ....

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Presumo che per testarlo bisogna andare su questo link, e no nella home del tuo sito:

    http://dechiarap.altervista.org/register.php

    Cmq, la funzione mysql_pconnect() nel primo codice non esiste, almeno credo.

    Non ne sono sicuro, ma nell'header di un messaggio non ho mai visto scritto in questo modo:

    Codice PHP:
    $header="Da: Amministratore";
    Forse al posto di Da: volevi mettere From:?

    Ma non so se il php questo può considerarlo come un'errore.
    Mysql_Pconnect esiste e come. Apre una connessione persistente al DB.

    Cmq prova a togliere completamente il 4° parametro (headers, che tra l'altro è scritto completamente in maniera sbagliata).

  5. #5
    Guest

    Predefinito

    no ancora niente... quando clicco sul bottone per registrarmi esce sempre la scritta:
    "Errore, link di attivazione non inviato"... nn è che ho sbagliato qualche collegamento con il database di altervista???

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Non so, a te ti viene compilata la tabella utenti_temp?

    Se mai metti un'else sotto alla if che controlla l'esito della query in $inviautentitemp.

    Se dovesse essere quello l'errore credo che la prossima if non te la esegua proprio perché il l'esecuzione del codice non arriva alla funzione mail(), per questo ti consiglio di metterla dentro la if che controlla l'esecuzione della query, o meglio, modifica cosi:

    Codice PHP:
    if ($inviautentitemp){
    $to=$email;
    $subject="conferma la registrazione";
    $header="Da: Amministratore";
    $message="ecco il codice di attivazione \r\n";
    $message.="clicca sul link per confermare la registrazione \r\n";
    $message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
    if (
    mail ($to,$subject,$message,$header)) {
    echo
    "Per completare la registrazione clicca sul link di attivazione della e mail che ti è arrivata";
    }else {
    echo
    "Errore, link di attivazione non inviato";
    }
    }else {
    echo
    "Errore sql.";
    }
    Cosi ti invia il messaggio solo se la tabella utenti_temp, viene completata, come avevi scritto te prima credo che: se la query non veniva eseguita correttamente i parametri della funzione mail() non venivano inizializzati, credo.

    Prova, ma non ti assicuro niente.

    Sevenjeak
    Software developer and much more

  7. #7
    Guest

    Predefinito

    Con la tua modifica esce scritto errore sql. Siccome non sto capendo piu niente questo messaggio di errore è dovuto al mio codice sbagliato o ad altervista??? e come posso fare??? se mi puoi consigliare qualke sito o qualche maniera per farlo in maniera diversa da come l'ho fatto io ti sarei grato.

  8. #8
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Era proprio quello che ti volevo far vedere, almeno sappiamo se c'è un'errore della query.

    Cmq, la connessione al db dovrebbe andare, credo, nel tuo codice ho notato una cosa in particolare, il nome della tabella nella query che controlla la if è Utenti_temp, mentre se la riutilizzi in altre query la richiami con il nome utenti_temp, forse è quello l'errore?

    Cmq ora sto vedendo meglio il tuoi codice.

    P.S.: Oltre a quello non vedo ancora nessun altro errore.

    P.P.S.: Scusa la domanda, ma nel tuo codice, dove comunichi con il database hai richiamato la funzione connect(), da te creata? no perché io, non so se sbaglio, ma non vedo dove la richiami.
    Ultima modifica di sevenjeak : 05-12-2011 alle ore 21.58.33

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •