Visualizzazione risultati 1 fino 18 di 18

Discussione: aiuto per script di login/registrazione (era:problemi con php e mysql)

  1. #1
    Guest

    Predefinito aiuto per script di login/registrazione (era:problemi con php e mysql)

    Ciao reagzzi mi serve ancora una volta il vostro aiuto..

    Io sto cercando di inserire nel mio futuro sito la funzione di login...

    Al momento sto facendo delle prove... Mi dite xk non funziona questo script che è quello che servirebbe a registrare nuovi utenti??

    1-registrazione.php

    è presente un form con 3 textbox (rispettivamente di nome: usernamereg, passwordreg, emailreg) e 1 button. Il form ha metodo post e manda i dati alla pagine registering.php, che ha questo codice:

    2-registering.php
    <script language="php">
    include("config.php")
    </script>

    [...]

    <script language="php">
    $usernamereg;
    $passwordreg;
    $emailreg;


    $dbconnect=mysql_connect($dbhost,$dbuser,$dbpasswo rd)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname) or die("Impossibile selezionare il database");

    $tutenti="utenti";
    $tsessioni="sessioni";

    $newuser= INSERT INTO "utenti" ('id', 'username', 'password', 'email') VALUES ( ,'$usernamereg','$passwordreg','$emailreg');
    $myquery = mysql_query ($newuser,$dbconnect);
    echo "registrazione avvenuta";

    </script>





    PS: file config.php, con il seg. contenuto:

    <script language = "php">
    $dbhost="localhost";
    $dbuser="cpunext";
    $dbpassword="";
    $dbname="my_cpunext";

    $dbconnect=mysql_connect($dbhost,$dbuser,$dbpasswo rd)or die("Impossibile stabilire una connessione con il database");
    $selectdb=mysql_select_db(dbname);
    $tutenti="utenti";
    $tsessioni="sessioni";
    </script>



    PPS: per quanto riguarda l'id, che nella tabella del database ho impostato in modo che aumenti di 1 unità automaticamente, cosa ci devo mettere

    $newuser= INSERT INTO "utenti" ('id', 'username', 'password', 'email') VALUES ( QUI,'$usernamereg','$passwordreg','$emailreg');

    grazie e ciao!!

  2. #2
    Guest

    Predefinito

    se fossi in te mi rileggerei unq qualche guida di php:

    apertura codice php: <?php
    chiusura: ?>

    i dati che passi dal form li prendi così:
    $usernamereg = $_POST['usernamereg'];

    Non ho letto tutto il codice, inizia a sistemare queste cose e poi se ci sono ancora errori riposta utilizzando gli appositi tag HTML e PHP qui sul forum..

    per incrementare l'id basta che vai in phpmyadmine setti ID auto_increment...

    ciao!
    Ultima modifica di bluster : 01-02-2009 alle ore 15.47.57

  3. #3
    Guest

    Predefinito

    prova cosi

    registering.php

    Codice PHP:
    <?php
    include("config.php")

    $usernamereg = $_POST['username'];
    $passwordreg = $_POST['password'];
    $emailreg = $_POST['mail'];


    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpasswo rd)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");

    $tutenti="utenti";
    $tsessioni="sessioni";

    $newuser= "INSERT INTO utenti ('id', 'username', 'password', 'email') VALUES ('$usernamereg','$passwordreg','$emailreg')";
    $myquery = mysql_query ($newuser,$dbconnect);
    if (
    $myquery) {
    echo
    "Registrazione avvenuta con successo";
    } else {
    echo
    "Errore durante la registrazione
    }

    ?>



    config.php
    Codice PHP:
    <?php

    $dbhost
    ="localhost";
    $dbuser="cpunext";
    $dbpassword="";
    $dbname="my_cpunext";

    ?>
    per far aumentare l'id dopo ogni registrazione alla creazione del campo id devi assegnare il valore auto_increment. basta che lo modifichi con phpmyadmin
    Ultima modifica di palla000 : 01-02-2009 alle ore 16.48.42

  4. #4
    Guest

    Predefinito

    Grazie 1000 x le risp... Prima m sn dimenticato di dire che ho appena iniziato a programmare in php...

    1- per quanto riguarda <?php ?> ho letto che con gli editor tipo dreamweaver e obbligatorio scrivere <script language="php"> </script>, e sn sicuro che funziona....

    2- per l'_POST non lo sapevo che andava scritto, grazie..

    3- per l'ip, io avevo già settato in phpmyadmin l'auto increment, la mia domanda era che cosa dovevo scrivere nello script di inserimento dati in corrispondenza dell'ip,

    $newuser= INSERT INTO "utenti" ('id', 'username', 'password', 'email') VALUES ( QUI,'$usernamereg','$passwordreg','$emailreg');

    Grazie ancora


    EDIT:
    Rieccomi..

    Ho messo a posto il codice con il codice fornitomi da palla000, ma testandolo mi diceva "errore durente la registrazione"

    Poi ho fatto così

    $myquery = mysql_query ($newuser,$dbconnect);

    if(isset($myquery)) {
    echo "Registrazione avvenuta con successo";
    } else {
    echo "Errore durante la registrazione
    }


    e mi diceva "registrazione avvenuta con successo", ma nella tabella "utenti" del phpmyadmin non c'era assolutamente niente....

    Perchè???
    Ultima modifica di seneca : 01-02-2009 alle ore 19.29.45

  5. #5
    Guest

    Predefinito

    mmm... dammi il codice del form html

  6. #6
    Guest

    Predefinito

    E' sbagliata la query!
    Codice PHP:
    $newuser= "INSERT INTO utenti ('username', 'password', 'email') VALUES ('$usernamereg','$passwordreg','$emailreg')";
    questa quella corretta. L'id se è autoincrement si inserisce da solo.

  7. #7
    Guest

    Predefinito

    CODICE PAGINA REGISTRAZIONE.PHP

    <div id="mainContent">
    <form name="form1" method="post" action="registering.php">
    <p>
    <label>USERNAME:
    <input type="text" name="usernamereg" id="username">
    </label>
    </p>
    <p>
    <label>PASSWORD:
    <input type="password" name="passwordreg" id="password">
    </label>
    </p>
    <p>
    <label>EMAIL:
    <input type="text" name="emailreg" id="email">
    </label>
    </p>
    <p>
    <label>
    <input type="submit" name="button" id="button" value="REGISTRATI">
    </label>
    </p>
    </form>
    </div>

    CODICE PAGINA REGISTERING.PHP

    <script language="php">
    include("config.php");

    $user = $_POST['usernamereg'];
    $pass = $_POST['passwordreg'];
    $mail = $_POST['emailreg'];


    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");

    $tutenti="utenti";
    $tsessioni="sessioni";

    $newuser= "INSERT INTO utenti ('username', 'password', 'email') VALUES ( $user, $pass , $mail)";

    $myquery = mysql_query ($newuser,$dbconnect);

    if(isset($myquery)) {
    echo "Registrazione avvenuta con successo";
    } else {
    echo "Errore durante la registrazione";
    }

    </script>

    -------------------------------------------------------------

    ho notato una cosa: se tolgo l'isset() la registrazione fallisce, se lo inserisco mi dice "registrazione avvenuta", ma sul database non c'e nulla...

    ------------------

    Grazie anke a stoner
    Ultima modifica di cpunext : 01-02-2009 alle ore 20.25.27

  8. #8
    Guest

    Predefinito

    Ma sbagli ovviamente, non devi controllare se la variabile è settata (è ovvio che è dichiarata lo fai sopra) devi controllare il valore che ha.. comunque la query continua ad essere errata, non men'ero accorto prima, ci sono ancora degli errori
    Codice PHP:
    $newuser= "INSERT INTO utenti (username, password, email) VALUES ( '".$user."', '".$pass."' , '".$mail."')";
    Comunque ci sono delle sql-injection, quindi ti consiglio di modificare così
    Codice PHP:
    $newuser= "INSERT INTO utenti (username, password, email) VALUES (
    '"
    .mysql_real_escape_string($user)."',
    '"
    .mysql_real_escape_string($pass)."' ,
    '"
    .mysql_real_escape_string($mail)."'
    )"
    ;

  9. #9
    Guest

    Predefinito

    Ragazzi grazie 1000...

    Ma..

    Non funge ancora!!

    In pratica, con al codice datomi gentilmente da stoner, inizia a succedere qualcosa sul database...

    E' come se il database ricevesse la richiesta di una nuova registrazione, e di conseguenta aumente l'id del nuovo utente automaticamente, e questo è giusto, ma nei campi username, password e email non c'è niente!!

    Si creano delle nuove righe nella tabella, ma sono vuote! (a parte l'id..)





    EDIT

    Ce l'ho fattaaaaaaaaaaaaaaaaaaaaa :D

    Ma c'è ancora un problema: perchè sul database nel campo email mi compare [BLOB - 8B] al posto dell'email dell'utente???
    Ultima modifica di cpunext : 02-02-2009 alle ore 18.03.16

  10. #10
    Guest

    Predefinito

    Ma se ci click sul record ti compare l'email?
    Hai messo forse il campo email di tipo blob? (basterebbe anche semplicemente un varchar)

  11. #11
    Guest

    Predefinito

    Si avevi ragione, non era varchar, ora funziona :-)
    ------------------------------------------------------------------------------------------
    Ora sto scrivendo il codice del login, ma non funge, non so dove ho sbagliato, mi da sempre come se avessi sbegliato password/username..

    Codice:

    <script language="php">
    include("config.php");

    $user=$_POST['usernamelog'];
    $pass=$_POST['passwordlog'];

    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");

    $tutenti="utenti";
    $tsessioni="sessioni";

    $result=mysql_query("SELECT * FROM utenti WHERE username = '$user' AND password = '$pass'",$dbconnect);

    $rowCheck = mysql_num_rows($result);

    if($rowCheck == 1) {

    echo "Bentornato, " . $user;

    } else {

    echo "Username o password sbagliati. Riprova oppure ";
    echo '<a href="passworddimenticata.php">Password dimenticata</a>';
    echo "?";
    };

    </script>
    --------------------------------------------------------------------------------------------
    E poi c'è un altro piccolo problema... Nel form della registrazione mi registra due volte lo stesso username anche se io ho priovato a mettere un codice x controllare che non succedesse...

    Codice:

    <script language="php">
    include("config.php");

    $user = $_POST['username'];
    $pass = $_POST['password'];
    $mail = $_POST['email'];


    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");

    $tutenti="utenti";
    $tsessioni="sessioni";

    $esistelusername=mysql_query("SELECT * FROM utenti WHERE username='$user',$dbconnect");
    $esistelusernamerows=mysql_num_rows($esisteluserna me);

    if($esistelusernamerows == 0) {
    $newuser= "INSERT INTO utenti (username, password, email) VALUES (
    '".mysql_real_escape_string($user)."',
    '".mysql_real_escape_string($pass)."' ,
    '".mysql_real_escape_string($mail)."'
    )";

    $myquery = mysql_query ($newuser,$dbconnect);

    if($myquery) {
    echo "Registrazione avvenuta con successo
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    Il tuo username: " . $user ;
    echo "<p>&nbsp;</p>La tua password: " . $pass ;
    echo "<p>&nbsp;</p>La tua email: " . $mail;


    } else {
    echo "Errore durante la registrazione";
    }
    } else {

    echo "Username già esistente! Riprova con un altro username!";
    }


    </script>






    RINGRAZIERO' ETERNAMENTE CH SI PRENDERA LA BRIGA DI CONTROLLARE STA ROBA... SE NO GRAZIE LO STESSO X I SUGGERIMENTUI DI PRIMA!!
    Ultima modifica di cpunext : 03-02-2009 alle ore 19.27.24

  12. #12
    Guest

    Predefinito

    Codice PHP:
    $esistelusernamerows=mysql_num_rows($esisteluserna me);
    Questa riga è errata, c'è uno spazio di troppo.

    p.s. perchè non usi i tag (senza spazi) per mettere il codice quando lo posti?

  13. #13
    Guest

    Predefinito

    Guarda è successa una cosa strana... Anche io avevo visto che lì cè uno spazio di troppo, ma se provo a editarlo mi compare già unito, e in dreamweaver è scritto attaccato... boh

    Codice PHP:
    prova
    Codice HTML:
    prova
    Codice:
    prova
    EDIT:
    Sono riuscito a far funzionare il login, mentre per quanto riguarda la registrazione non so che fare... ora ho provato con questo codice:

    $esistelusername=mysql_query("SELECT * FROM utenti WHERE username='$user',$dbconnect");
    $esistelusernamerows=mysql_num_rows($esisteluserna me);

    if($esistelusernamerows > 0 ){

    echo "Username già esistente! Riprova con un altro username!";

    } else {

    $newuser= "INSERT INTO utenti (username, password, email) VALUES (
    '".mysql_real_escape_string($user)."',
    '".mysql_real_escape_string($pass)."' ,
    '".mysql_real_escape_string($mail)."'
    )";

    $myquery = mysql_query ($newuser,$dbconnect);

    if($myquery) {
    echo "Registrazione avvenuta con successo
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    Il tuo username: " . $user ;
    echo "La tua password: " . $pass ;
    echo "La tua email: " . $mail;

    } else {

    echo "Errore durante la registrazione";}

    }
    Ultima modifica di cpunext : 03-02-2009 alle ore 21.13.24

  14. #14
    Guest

    Predefinito

    Codice PHP:
    $esistelusername=mysql_query("SELECT * FROM utenti WHERE username='$user',$dbconnect");
    Questa riga è errata, devi mettere
    Codice PHP:
    $esistelusername=mysql_query("SELECT * FROM utenti WHERE username='$user'",$dbconnect);

  15. #15
    Guest

    Predefinito

    Ma sei un genio ora funziona anche quello!!!

    Ho un'altra domanda (l'ennesima, lo so):

    si può inserire all'interno di un echo"" un form html??? A me non funziona...

    Codice PHP:
    echo "<form action="loggingin.php" method="post" name="form1" class="fioooioiii">
    <label>
    <input type="
    text" name="usernamelog" id="textfield2">
    </label>
    <label>
    <input type="
    text" name="passwordlog" id="textfield">
    </label>
    <label>
    <input type="
    submit" name="button" id="button" value="LOGIN">
    </label>
    <span id="
    ggggggggggggggggggggddg">'oppure'</span>
    <object id="
    FlashID4" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="200" height="20">
    <param name="
    movie" value="Flash/registratisubito.swf">
    <param name="
    quality" value="high">
    <param name="
    wmode" value="opaque">
    <param name="
    swfversion" value="6.0.65.0">
    <param name="
    expressinstall" value="Scripts/expressInstall.swf">


    <object type="
    application/x-shockwave-flash" data="Flash/registratisubito.swf" width="200" height="20">
    <param name="
    quality" value="high">
    <param name="
    wmode" value="opaque">
    <param name="
    swfversion" value="6.0.65.0">
    <param name="
    expressinstall" value="Scripts/expressInstall.swf"
    </object>

    </form>"
    In pratica io vorrei che succedesse che se l'utente è loggato compaia "benvenuto", se invece non è loggato vorrei che comparisse questo form dove si può loggare...
    Ultima modifica di cpunext : 04-02-2009 alle ore 17.14.13

  16. #16
    Guest

    Predefinito

    Se usi le virgolette per determinare inizio e fine della stringa, non puoi usarle allo stesso modo all'interno della stringa stessa, altrimenti php come fa a capire quando termina?

    Devi backslasharle (\") oppure usare i single quote per delimitare la stringa:

    Codice PHP:
    echo '<form action="loggingin.php" method="post" name="form1" class="fioooioiii">'

    Ciao!

  17. #17
    Guest

    Predefinito

    A me non funziona niente anzi funziona solo registrazione.php e basta

  18. #18
    Guest

    Predefinito

    funziona funziona , bisogna solo fare qualche piccola modifica niente di difficile

Regole di scrittura

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