Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Non Trovo L'errore

    Salve sto cercando di controllare l'esistenza di un username dentro un database ma la cosa non mi riesce...

    questo è il codice incriminato...
    Codice PHP:
    $username $security->control_Username($username);
                
    $password $security->control_Password($password);
                
    $confirmpas $security->control_Password($confirmpass);
                
    $email $security->control_Email($email);
                
    $state $security->control_Other($state);
                
    $city $security->control_Other($city);
                
                
    $password md5($password);

                
    $query $dbconnect->Query("SELECT * FROM pp_users WHERE username='$username'");
                
    $result $dbconnect->fetchAssoc($query);
            
                if (
    $result['username'] == $username) {
                    print(
    "This Username Already Exist!");
                }
                
                
    $dbconnect->Query("INSERT INTO pp_users SET username='$username', password='$password', email='$email', state='$state', city='$city'");
                print(
    "The Registration has Finished!
    We have Sent You an Email to Activate your Account!"
    ); 
    Allora se io invio il form con un username che esiste gia nel database... mi dice che esiste gia quindi va bene... ma se mando un username che non esiste non mi esce nessuna scritta e non mi inserisce i dati nel database...

    se io tolgo questa parte qua:

    Codice PHP:
    $query $dbconnect->Query("SELECT * FROM pp_users WHERE username='$username'");
                
    $result $dbconnect->fetchAssoc($query);
            
                if (
    $result['username'] == $username) {
                    print(
    "This Username Already Exist!");
                } 
    mi funziona tutto solo che non mi verifica l'esistenza dell'username... le ho provate tutte... fetch array, fetch row, fetch assoc, result eccc... sempre lo stesso problema... eppure il codice mi sembra giusto.. dove sbaglio?

    Grazie.
    Andrea.

  2. #2
    Puoi verificare con mysql_num_rows();

    Codice PHP:


    if (mysql_num_rows($query)!=0) { 
                    print(
    "This Username Already Exist!"); 
                } 

  3. #3
    ok adesso va però solo se metto mysql_num_rows($query) invece se richiamo la classe per quella funzione da sempre lo stesso errore...

    questa è la funzione che riguarda quella funzione:

    Codice PHP:
        public function numRow($result) {
            
    $result mysql_num_rows($result) or die (mysql_error());

            return 
    $result;
        } 
    cosa ha di sbagliato?

  4. #4
    camibia l'argomento che passi alla funzione con un'altro nome:
    Codice PHP:
    public function numRow($altro) { 
            
    $result mysql_num_rows($altro) or die (mysql_error()); 

            return 
    $result
        } 
    poi nel codice sopra citato dovrebbe andare così:
    Codice PHP:
    if ($dbconnect->numRow($query)!=0) { 
                    print(
    "This Username Already Exist!"); 
                } 

  5. #5
    no da sempre risultato bianco...

    posto tutta la classe database così vedi...
    Codice PHP:
    <?php
    class Database {

        var 
    $dbhost 'localhost';     // DA MODIFICARE //
        
    var $dbuser 'root';          // DA MODIFICARE //
        
    var $dbpass '';              // DA MODIFICARE //
        
    var $dbname 'powerportal';   // DA MODIFICARE //

        
    var $link;
        var 
    $query;
        var 
    $array;
        var 
    $assoc;
        var 
    $object;
        var 
    $frow;
        var 
    $lengths;
        var 
    $ffield;
        var 
    $nrow;
        var 
    $nfield;
        var 
    $result;

        public function 
    Connect() {
            
    $this->link mysql_connect($this->dbhost$this->dbuser$this->dbpass) or die (mysql_error());
            
    mysql_select_db($this->dbname$this->link) or die (mysql_error());

            return 
    $this->link;
        }

        public function 
    Query($query) {
            
    $result mysql_query($query$this->link) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchArray($query) {
            
    $result mysql_fetch_array($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchAssoc($query) {
            
    $result mysql_fetch_assoc($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchObject($query) {
            
    $result mysql_fetch_object($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchRow($query) {
            
    $result mysql_fetch_row($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchLengths($query) {
            
    $result mysql_fetch_lengths($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    fetchField($query) {
            
    $result mysql_fetch_field($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    numRow($query) {
            
    $result mysql_num_rows($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    numField($query) {
            
    $result mysql_num_fields($query) or die (mysql_error());

            return 
    $result;
        }

        public function 
    Result($query) {
            
    $result mysql_result($query) or die (mysql_error());

            return 
    $result;
        }
        
        public function 
    Close(){
            
    mysql_close($this->link) or die (mysql_error());
        }
    }
    ?>

  6. #6
    non è la classe il problema,il fatto che ti da pagina bianca potrebbe essere che:
    $dbconnect->numRow($query) restituisce 0
    fai una verifica in questo modo:
    Codice PHP:
    if ($dbconnect->numRow($query)!=0) { 
                    print(
    "This Username Already Exist!"); 
                }
    else{
     print
    "non esiste";


  7. #7
    avevo gia provato da ancora risultato bianco...

  8. #8
    A questo punto non resta che dare uno sguardo al codice php che hai postato all'inizio con le modifiche apportate...

  9. #9
    Ecco il codice della pagina registrazione completo...

    Codice PHP:
    <?php
    require_once('./class/database.class.php');
    require_once (
    './class/security.class.php');
    require_once(
    './functions/language.php');

    $dbconnect = new Database();
    $security = new Security();

    $dbconnect->Connect();
    $security->control_Post();
    $security->control_Get();

    /*if ($_SESSION['login'] == 1) {
        exit("You are Already Registered!");
    }
    else {*/
    ?>

    <script src="./scripts/submit.function.js"></script>

    <table width="75%" align="center">
        <tr>
            <td width="50%"  valign="middle" align="right">
                <?php print($language['selectlang']); ?>:
            </td>
            <td width="50%"  valign="bottom" align="left">
                <form action="<?php $_SERVER['PHP_SELF']; ?>" method="get">
                    <select name="lang" >
                        <option value="it" onclick="Invia(this.form);" selected="selected">Italiano</option>
                        <option value="en" onclick="Invia(this.form);">English</option>
                    </select>
                </form>
            </td>
        </tr>

        <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['username']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="text" value="" name="username" />
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['password']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="password" value="" name="password" maxlength="15" />
            </td>
        </tr>
            <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['confirmpass']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="password" value="" name="confirmpass" maxlength="15" />
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['email']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="text" value="" name="email" />
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['state']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="text" value="" name="state" />
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['city']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="text" value="" name="city" />
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['birthday']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <select name="day">
                    <?php
                        
    for($i=1$i<32$i++){
                            print(
    "<option value=\"$i\">$i</option>\n");
                        }
                    
    ?>
                </select>
                <select name="month">
                    <?php
                        
    for($i=1$i<13$i++){
                            print(
    "<option value=\"$i\">$i</option>\n");
                        }
                    
    ?>
                </select>
                <select name="year">
                    <?php
                        
    for($i=1950$i<2010$i++){
                            echo 
    "<option value=\"$i\">$i</option>\n";
                        }
                    
    ?>
                </select>
            </td>
        </tr>
        <tr>
            <td width="50%" height="30px" valign="middle" align="right">
                <?php print($language['captcha']); ?>:
            </td>
            <td width="50%" height="30px" valign="middle" align="left">
                <input type="text" name="captcha" value="" maxlength="5" />[img]./functions/captcha.php[/img]
            </td>
        </tr>
        <tr>
            <td width="100%" height="30px" valign="middle" align="center" colspan="2">
                <input type="submit" value="<?php print($language['register']); ?>" name="submit" />
                <input type="reset" value="<?php print($language['reset']); ?>">
            </td>
        </tr>

        </form>

    </table>

    <?php
    session_start
    ();

    if (isset(
    $_POST['submit'])) {

        
    $username $_POST['username'];
        
    $password $_POST['password'];
        
    $confirmpass $_POST['confirmpass'];
        
    $email $_POST['email'];
        
    $state $_POST['state'];
        
    $city $_POST['city'];
        
    $captcha $_POST['captcha'];
        
    $birth $_POST['year']."/".$_POST['month']."/".$_POST['day'];
        
    $date date("y/m/d");

        if (
    $username == NULL || $password == NULL || $confirmpass == NULL || $email==NULL || $captcha == NULL) {
            print(
    "You Have Left Empty an Important Field!");
        }
        else {
            if (
    $password != $confirmpass) {
                print(
    "Your Password does not Match with the Confirm!");
            }
            elseif (
    $captcha != $_SESSION['captcha']) {
                print(
    "Your Security Code is Wrong!");
            }
            else {
                
    $username $security->control_Username($username);
                
    $password $security->control_Password($password);
                
    $confirmpas $security->control_Password($confirmpass);
                
    $email $security->control_Email($email);
                
    $state $security->control_Other($state);
                
    $city $security->control_Other($city);
                
    $captcha $security->control_Other($captcha);

                
    $password md5($password);

                
    $queryuser $dbconnect->Query("SELECT * FROM pp_users WHERE username='$username'");
                
    $queryemail $dbconnect->Query("SELECT * FROM pp_users WHERE email='$email'");

                if (
    $dbconnect->numRow($queryuser) != 0) {  // Da Bianco
                    
    print("This Username Already Exist!");
                }
                elseif (
    $dbconnect->numRow($queryemail) != 0) { // Da Bianco
                    
    print("This Email Already Exist!");
                }
                else {
                    
    $dbconnect->Query("INSERT INTO pp_users SET username='$username', password='$password', email='$email', state='$state', city='$city', date_birth='$birth', date_reg='$date'");
                    print(
    "The Registration has Finished!
    We have Sent You an Email to Activate your Account!"
    );
                }
            }
        }
    }
    ?>

  10. #10
    Ciao,

    come da regolamento, vanno messi titoli attinenti ai problemi e non titoli generici come "non trovo l'errore" perché non aiutano l'utente che vuole rispondere ad identificare i thread per i quali ha le competenze tecniche.

    Ovviamente nel titolo non si può scrivere tutto, ma magari mettere qualcosa più inerente al problema, ad esempio "Non esegue query inserimento utente" farebbe capire qualcosina in più a chi legge e soprattutto fa entrare più utenti nel tuo thread

    Detto questo, per questa volta sistemo io per le prossime più attenzione
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.