Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    29

    Problema con file di registrazione in php, non funziona e dà continui errori

    Ciao a tutti ho un problema con il mio file regverify.php

    Inanzitutto eseguendo una query insert into, non viene riconosciuta e quindi significa che non sono connesso.

    Infatti:


    Codice PHP:

    include("functions_custom.php");include("register.php");include("config.php");
    $link mysql_connect('localhost'$db_user$db_psw);if (!$link) {    die('Not connected : ' mysql_error());}
    // make foo the current db$db_selected = mysql_select_db($db_name, $link);if (!$db_selected) {    die ('Can\'t use '.$db_name.' : ' . mysql_error());}
    $sql "INSERT INTO `users`(`username`) VALUES (\'ciao\')"/* Questa query non va.. */ 

    Dal file config.php ottengo le informazioni necessarie per il mio script di connessione (ovviamente non vi mostro le credenziali)

    Codice PHP:

    $host 
    "localhost"$db_user "user"$db_psw "password"$db_name "my_database"

    Poi ho un altro problema:

    Dovrei controllare se l'username immesso dall'utente durante la registrazione è già esistente, stessa cosa farei con l'email, avvertendo con un alert personalizzato.

    Ma non funziona, qualcosa sbaglio ed infatti in questo codice completo:

    Codice PHP:

    <?php ini_set("display_errors"1); error_reporting(E_ALL); ?>
    <?php

    /***   * MyPCMS  (My Powerful Content Management System) ** Version 0.0.3 beta standard** About team in > "http://mypcms.com/about/team"***/


    include("functions_custom.php");include("register.php");include("config.php");
    $link mysql_connect('localhost'$db_user$db_psw);if (!$link) {    die('Not connected : ' mysql_error());}
    // make foo the current db$db_selected = mysql_select_db($db_name, $link);if (!$db_selected) {    die ('Can\'t use '.$db_name.' : ' . mysql_error());}
    $sql "INSERT INTO `users`(`username`) VALUES (\'ciao\')";
     
    $username $_POST['username'];$password $_POST['password'];$email $_POST['email'];$action $_POST['action'];
    if(isset(
    $username) && isset($password) && isset($email)) {
      echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('LOL!','Sono isset!')</script>";            if(isset($action) && ($action=="Submit New Registration")) {

                 
    $sql mysql_query("SELECT `username` FROM `users`");
              while(
    $u_namealreadyex mysql_fetch_array($sql)) {                                        if(in_array($usernameexplode(","$u_namealreadyex))) {
                                   echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('Error!','Username already exists, choose another, try again','register.php')</script>";
                       }
                   else if(! 
    in_array($usernameexplode(","$u_namealreadyex))) {
                                                       
    $salt generateRandomImpossibleTosolveString("64");                $securepw sha1(sha1($salt).md5($password));                $now TIME_NOW;                        $query=mysql_query("INSERT INTO users (username, password, email) VALUES (".$username.", ".$securepw.", ".$email.")");
                while(
    $done=mysql_fetch_array($query)) {
                       
    $user = array(                                          "username" => $username,                     "password" => $securepw,                     "email"    => $email,                     "memregdate" => $now,                     "lastactive" => $now,                     "lastvisit"  => $now         

                        
    );
                }
                      }       
              }

                             
    $sql=mysql_query("SELECT `email` FROM `users`");
           while(
    $mailalreadyex mysql_fetch_array($sql)) {
                      if(
    in_array($emailexplode(","$mailalreadyex))) {                         
                          echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('Error!','Email already exists, choose another, try again','register.php')</script>";  
                      }
                      else if(! 
    in_array($emailexplode(","$mailalreadyex))) {
                                                       
    $salt generateRandomImpossibleTosolveString("64");                $securepw sha1(sha1($salt).md5($password));                $now TIME_NOW;                        $query=mysql_query("INSERT INTO users (username, password, email) VALUES (".$username.", ".$securepw.", ".$email.")");
                while(
    $done=mysql_fetch_array($query)) {
                       
    $user = array(                                          "username" => $username,                     "password" => $securepw,                     "email"    => $email,                     "memregdate" => $now,                     "lastactive" => $now,                     "lastvisit"  => $now         

                        
    );
                }
                      }
           }              

          }
    }

    ?>
    Restituisce questi errori:

    Codice PHP:
    Warningexplode() expects parameter 2 to be string, array given in /membri/hydrerscript/regverify.php on line 55

    Warning
    in_array() expects parameter 2 to be array, null given in /membri/hydrerscript/regverify.php on line 55

    Warning
    explode() expects parameter 2 to be string, array given in /membri/hydrerscript/regverify.php on line 64

    Warning
    in_array() expects parameter 2 to be array, null given in /membri/hydrerscript/regverify.php on line 64

    Warning
    sha1() expects at most 2 parameters3 given in /membri/hydrerscript/functions_custom.php on line 19

    Warning
    substr() expects at least 2 parameters1 given in /membri/hydrerscript/functions_custom.php on line 19

    Notice
    : Use of undefined constant TIME_NOW assumed 'TIME_NOW' in /membri/hydrerscript/regverify.php on line 69

    Warning
    mysql_fetch_array() expects parameter 1 to be resourceboolean given in /membri/hydrerscript/regverify.php on line 73

    Warning
    explode() expects parameter 2 to be string, array given in /membri/hydrerscript/regverify.php on line 100

    Warning
    in_array() expects parameter 2 to be array, null given in /membri/hydrerscript/regverify.php on line 100

    Warning
    explode() expects parameter 2 to be string, array given in /membri/hydrerscript/regverify.php on line 110

    Warning
    in_array() expects parameter 2 to be array, null given in /membri/hydrerscript/regverify.php on line 110

    Warning
    sha1() expects at most 2 parameters3 given in /membri/hydrerscript/functions_custom.php on line 19

    Warning
    substr() expects at least 2 parameters1 given in /membri/hydrerscript/functions_custom.php on line 19

    Notice
    : Use of undefined constant TIME_NOW assumed 'TIME_NOW' in /membri/hydrerscript/regverify.php on line 115

    Warning
    mysql_fetch_array() expects parameter 1 to be resourceboolean given in /membri/hydrerscript/regverify.php on line 119 

    Come risolvere tutto?

  2. #2
    te li dice gli errori, se poi la connesione non muore al die sul connect, penso che si connetta il db..
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    29
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    te li dice gli errori, se poi la connesione non muore al die sul connect, penso che si connetta il db..

    Non ho capito, comunque la query insert into non va...

    Perchè?

  4. #4
    Quote Originariamente inviata da Hyder_ Visualizza il messaggio
    Non ho capito, comunque la query insert into non va...

    Perchè?
    ma che ne so, se non ci dici che errori ti da la query.... prova ad eseguirla a mano direttamente nel DB intanto e a vedere se va
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    Ciao Hyder,
    in base a cosa dici che la INSERT non va ? visualizzi errori di qualche tipo?
    Viene eseguita realmente con mysql_query?
    E' scritta in modo corretto?

    Come dice santino, gli errori vengono segnalati, la explode necessita di una stringa come secondo parametro http://php.net/manual/en/function.explode.php, ma la variabile $u_namealreadyex
    $u_namealreadyex = mysql_fetch_array($sql)
    non è una stringa perchè la funzione mysql_fetch_array ritorna un array (http://php.net/manual/en/function.mysql-fetch-array.php).
    Sempre come ha già fatto notare santino, se ci fossero problemi di connessione verrebbe eseguita la seguente istruzione con stampa dell'errore e terminazione dlelo script:

    if (!$link) { die('Not connected : ' . mysql_error());}


    Il modulo mysql è stato deprecato, dovresti quindi aggiornare il codice facendo uso di mysqli o PDO.
    In genereale dovresti cercare di capire meglio il codice che scrivi affidandoti, quando possibile, alla documentazione.
    Sempre se tutto ciò non è il risultato di un mix di copia/incolla

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    29
    Quote Originariamente inviata da arkus Visualizza il messaggio
    Ciao Hyder,
    in base a cosa dici che la INSERT non va ? visualizzi errori di qualche tipo?
    Viene eseguita realmente con mysql_query?
    E' scritta in modo corretto?

    Come dice santino, gli errori vengono segnalati, la explode necessita di una stringa come secondo parametro http://php.net/manual/en/function.explode.php, ma la variabile $u_namealreadyex
    $u_namealreadyex = mysql_fetch_array($sql)
    non è una stringa perchè la funzione mysql_fetch_array ritorna un array (http://php.net/manual/en/function.mysql-fetch-array.php).
    Sempre come ha già fatto notare santino, se ci fossero problemi di connessione verrebbe eseguita la seguente istruzione con stampa dell'errore e terminazione dlelo script:

    if (!$link) { die('Not connected : ' . mysql_error());}


    Il modulo mysql è stato deprecato, dovresti quindi aggiornare il codice facendo uso di mysqli o PDO.
    In genereale dovresti cercare di capire meglio il codice che scrivi affidandoti, quando possibile, alla documentazione.
    Sempre se tutto ciò non è il risultato di un mix di copia/incolla
    Non ho assolutamente copiato e incollato nulla, php lo conosco a sufficienza per fare un sistema così semplice.

    Comunque, ho fatto un po' di aggiornamenti, explode l'avevo provato so che ha bisogno di una stringa, ma purtroppo non mi era venuto in mente nulla, quindi l'avevo usato, ora però un lampo di genio: usare mysql_num_rows.

    Quindi per verificare se il nome utente inserito già esiste ho usato num rows.

    Quindi:

    File register.php:

    Codice PHP:
    <html><head>     <title>Registration Module</title>     <link href="css/access.css" rel="stylesheet" type="text/css" /></head><body>     <form id="login" action="regverify.php" method="post">        <fieldset id="inputs">            <input id="username" name="username" type="text" placeholder="Username" autofocus required>            <input id="password" name="password" type="password" placeholder="Password" autofocus required>            <input id="email" name="email" type="email" placeholder="Email" autofocus required>        </fieldset>        <fieldset id="actions">            <input type="submit" id="submit" name="action" value="Submit New Registration">            <a href="login.php" id="back">Have already an account?</a>            <a href="index.php" id="back">Return Back</a>        </fieldset>    </form> </body></html
    File regverify.php

    Codice PHP:
    <?php ini_set("display_errors"1); error_reporting(E_ALL); ?>
    <?php



    include("functions_custom.php");include("register.php");include("config.php");

    $username trim(stripslashes($_POST['username'])); // trim$password = trim(stripslashes($_POST['password'])); // trim$email = trim(stripslashes($_POST['email']));       // trim$action = trim(stripslashes($_POST['action']));     // trim
    if(isset($username) && isset($password) && isset($email)) {
      echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('LOL!','Sono isset!')</script>";            if(isset($action) && ($action=="Submit New Registration")) {

                        
    mysql_connect($host$db_user$db_psw);
    $query mysql_query("SELECT username FROM Users WHERE username='$username'");
      if (
    mysql_num_rows($query) != 0)  {      echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('Error!','Username already exists! Choose another')</script>";  }
      else  {    echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('LOL!','Puoi continuare!')</script>";  }            

          }
    }

    ?>
    Se immettesi lo username 'test', dato che esiste nel database, se la query funzionasse farebbe apparire il mio alert personalizzato, dicendo chè lo username immesso già esiste, ma invece nulla, non appare ed anzi, mi dice che la query è sbagliata:

    Codice PHP:
    mysql_num_rows() expects parameter 1 to be resourceboolean given nel file regverify.php sulla linea numero 42. 

    E non so che pesci prendere, seriamente...

    Help!

  7. #7
    Da manuale mysql_query()

    codice:
    ...
    Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non è stata eseguita correttamente.
    ...

    ergo la query "non è stata eseguita correttamente".
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    29
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Da manuale mysql_query()

    codice:
    ...
    Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non è stata eseguita correttamente.
    ...

    ergo la query "non è stata eseguita correttamente".
    Codice PHP:
    $con mysql_connect($host$db_user$db_psw);
                      
    mysql_select_db($db_name$con);
    $query mysql_query("SELECT username FROM users WHERE username=".$username."");
    $num mysql_num_rows($query);
    if (
    $num >= 1)
      {      echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('Error!','Username already exists! Choose another')</script>";  }
      else  {    echo 
    "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>        <script src=\"js/custom_alert.js\"></script>        <script type=text/javascript>_alert('LOL!','Puoi continuare!')</script>";  } 
    Perchè non viene eseguita correttamente, non capisco..

    Help!

  9. #9
    Perchè evidentemente la query è sbagliata.
    Falla stampare a video e prova ad eseguirla a mano.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    ho letto un po' superficialmente, ma se username è una stringa, allora mancano gli apici
    codice:
    $query = mysql_query("SELECT username FROM users WHERE username='".$username."'");
    ma mi sembra troppo banale, scusate se ho ... toppato

Tag per questa discussione

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.