Avatar billede ohhelpme Nybegynder
30. november 2008 - 18:20 Der er 15 kommentarer og
1 løsning

php kode fejler

Hej,
hva' går der galt?

fejl beskerne er:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 207

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 218

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 218

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 207

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 218

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/a4837628/public_html/login/include/database.php on line 194

koden er her:


<?

include("constants.php");

     

class MySQLDB

{

  var $connection;        //The MySQL database connection

  var $num_active_users;  //Number of active users viewing site

  var $num_active_guests;  //Number of active guests viewing site

  var $num_members;        //Number of signed-up users

  /* Note: call getNumMembers() to access $num_members! */



  /* Class constructor */

  function MySQLDB(){

      /* Make connection to database */

      $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());

      mysql_select_db(DB_NAME, $this->connection) or die(mysql_error());

     

      /**

      * Only query database to find out number of members

      * when getNumMembers() is called for the first time,

      * until then, default value set.

      */

      $this->num_members = -1;

     

      if(TRACK_VISITORS){

        /* Calculate number of users at site */

        $this->calcNumActiveUsers();

     

        /* Calculate number of guests at site */

        $this->calcNumActiveGuests();

      }

  }



  /**

    * confirmUserPass - Checks whether or not the given

    * username is in the database, if so it checks if the

    * given password is the same password in the database

    * for that user. If the user doesn't exist or if the

    * passwords don't match up, it returns an error code

    * (1 or 2). On success it returns 0.

    */

  function confirmUserPass($username, $password){

      /* Add slashes if necessary (for query) */

      if(!get_magic_quotes_gpc()) {

          $username = addslashes($username);

      }



      /* Verify that user is in database */

      $q = "SELECT password FROM ".TBL_USERS." WHERE username = '$username'";

      $result = mysql_query($q, $this->connection);

      if(!$result || (mysql_numrows($result) < 1)){

        return 1; //Indicates username failure

      }



      /* Retrieve password from result, strip slashes */

      $dbarray = mysql_fetch_array($result);

      $dbarray['password'] = stripslashes($dbarray['password']);

      $password = stripslashes($password);



      /* Validate that password is correct */

      if($password == $dbarray['password']){

        return 0; //Success! Username and password confirmed

      }

      else{

        return 2; //Indicates password failure

      }

  }

 

  /**

    * confirmUserID - Checks whether or not the given

    * username is in the database, if so it checks if the

    * given userid is the same userid in the database

    * for that user. If the user doesn't exist or if the

    * userids don't match up, it returns an error code

    * (1 or 2). On success it returns 0.

    */

  function confirmUserID($username, $userid){

      /* Add slashes if necessary (for query) */

      if(!get_magic_quotes_gpc()) {

          $username = addslashes($username);

      }



      /* Verify that user is in database */

      $q = "SELECT userid FROM ".TBL_USERS." WHERE username = '$username'";

      $result = mysql_query($q, $this->connection);

      if(!$result || (mysql_numrows($result) < 1)){

        return 1; //Indicates username failure

      }



      /* Retrieve userid from result, strip slashes */

      $dbarray = mysql_fetch_array($result);

      $dbarray['userid'] = stripslashes($dbarray['userid']);

      $userid = stripslashes($userid);



      /* Validate that userid is correct */

      if($userid == $dbarray['userid']){

        return 0; //Success! Username and userid confirmed

      }

      else{

        return 2; //Indicates userid invalid

      }

  }

 

  /**

    * usernameTaken - Returns true if the username has

    * been taken by another user, false otherwise.

    */

  function usernameTaken($username){

      if(!get_magic_quotes_gpc()){

        $username = addslashes($username);

      }

      $q = "SELECT username FROM ".TBL_USERS." WHERE username = '$username'";

      $result = mysql_query($q, $this->connection);

      return (mysql_numrows($result) > 0);

  }

 

  /**

    * usernameBanned - Returns true if the username has

    * been banned by the administrator.

    */

  function usernameBanned($username){

      if(!get_magic_quotes_gpc()){

        $username = addslashes($username);

      }

      $q = "SELECT username FROM ".TBL_BANNED_USERS." WHERE username = '$username'";

      $result = mysql_query($q, $this->connection);

      return (mysql_numrows($result) > 0);

  }

 

  /**

    * addNewUser - Inserts the given (username, password, email)

    * info into the database. Appropriate user level is set.

    * Returns true on success, false otherwise.

    */

  function addNewUser($username, $password, $email){

      $time = time();

      /* If admin sign up, give admin user level */

      if(strcasecmp($username, ADMIN_NAME) == 0){

        $ulevel = ADMIN_LEVEL;

      }else{

        $ulevel = USER_LEVEL;

      }

      $q = "INSERT INTO ".TBL_USERS." VALUES ('$username', '$password', '0', $ulevel, '$email', $time)";

      return mysql_query($q, $this->connection);

  }

 

  /**

    * updateUserField - Updates a field, specified by the field

    * parameter, in the user's row of the database.

    */

  function updateUserField($username, $field, $value){

      $q = "UPDATE ".TBL_USERS." SET ".$field." = '$value' WHERE username = '$username'";

      return mysql_query($q, $this->connection);

  }

 

  /**

    * getUserInfo - Returns the result array from a mysql

    * query asking for all information stored regarding

    * the given username. If query fails, NULL is returned.

    */

  function getUserInfo($username){

      $q = "SELECT * FROM ".TBL_USERS." WHERE username = '$username'";

      $result = mysql_query($q, $this->connection);

      /* Error occurred, return given name by default */

      if(!$result || (mysql_numrows($result) < 1)){

        return NULL;

      }

      /* Return result array */

      $dbarray = mysql_fetch_array($result);

      return $dbarray;

  }

 

  /**

    * getNumMembers - Returns the number of signed-up users

    * of the website, banned members not included. The first

    * time the function is called on page load, the database

    * is queried, on subsequent calls, the stored result

    * is returned. This is to improve efficiency, effectively

    * not querying the database when no call is made.

    */

  function getNumMembers(){

      if($this->num_members < 0){

        $q = "SELECT * FROM ".TBL_USERS;

        $result = mysql_query($q, $this->connection);

        $this->num_members = mysql_numrows($result);

      }

      return $this->num_members;

  }

 

  /**

    * calcNumActiveUsers - Finds out how many active users

    * are viewing site and sets class variable accordingly.

    */

  function calcNumActiveUsers(){

      /* Calculate number of users at site */

      $q = "SELECT * FROM ".TBL_ACTIVE_USERS;

      $result = mysql_query($q, $this->connection);

      $this->num_active_users = mysql_numrows($result);

  }

 

  /**

    * calcNumActiveGuests - Finds out how many active guests

    * are viewing site and sets class variable accordingly.

    */

  function calcNumActiveGuests(){

      /* Calculate number of guests at site */

      $q = "SELECT * FROM ".TBL_ACTIVE_GUESTS;

      $result = mysql_query($q, $this->connection);

      $this->num_active_guests = mysql_numrows($result);

  }

 

  /**

    * addActiveUser - Updates username's last active timestamp

    * in the database, and also adds him to the table of

    * active users, or updates timestamp if already there.

    */

  function addActiveUser($username, $time){

      $q = "UPDATE ".TBL_USERS." SET timestamp = '$time' WHERE username = '$username'";

      mysql_query($q, $this->connection);

     

      if(!TRACK_VISITORS) return;

      $q = "REPLACE INTO ".TBL_ACTIVE_USERS." VALUES ('$username', '$time')";

      mysql_query($q, $this->connection);

      $this->calcNumActiveUsers();

  }

 

  /* addActiveGuest - Adds guest to active guests table */

  function addActiveGuest($ip, $time){

      if(!TRACK_VISITORS) return;

      $q = "REPLACE INTO ".TBL_ACTIVE_GUESTS." VALUES ('$ip', '$time')";

      mysql_query($q, $this->connection);

      $this->calcNumActiveGuests();

  }

 

  /* These functions are self explanatory, no need for comments */

 

  /* removeActiveUser */

  function removeActiveUser($username){

      if(!TRACK_VISITORS) return;

      $q = "DELETE FROM ".TBL_ACTIVE_USERS." WHERE username = '$username'";

      mysql_query($q, $this->connection);

      $this->calcNumActiveUsers();

  }

 

  /* removeActiveGuest */

  function removeActiveGuest($ip){

      if(!TRACK_VISITORS) return;

      $q = "DELETE FROM ".TBL_ACTIVE_GUESTS." WHERE ip = '$ip'";

      mysql_query($q, $this->connection);

      $this->calcNumActiveGuests();

  }

 

  /* removeInactiveUsers */

  function removeInactiveUsers(){

      if(!TRACK_VISITORS) return;

      $timeout = time()-USER_TIMEOUT*60;

      $q = "DELETE FROM ".TBL_ACTIVE_USERS." WHERE timestamp < $timeout";

      mysql_query($q, $this->connection);

      $this->calcNumActiveUsers();

  }



  /* removeInactiveGuests */

  function removeInactiveGuests(){

      if(!TRACK_VISITORS) return;

      $timeout = time()-GUEST_TIMEOUT*60;

      $q = "DELETE FROM ".TBL_ACTIVE_GUESTS." WHERE timestamp < $timeout";

      mysql_query($q, $this->connection);

      $this->calcNumActiveGuests();

  }

 

  /**

    * query - Performs the given query on the database and

    * returns the result, which may be false, true or a

    * resource identifier.

    */

  function query($query){

      return mysql_query($query, $this->connection);

  }

};



/* Create database connection */

$database = new MySQLDB;



?>
Avatar billede amews_aj Nybegynder
30. november 2008 - 18:25 #1
Du skal lige huske underscore

mysql_numrows    -->  mysql_num_rows
Avatar billede amews_aj Nybegynder
30. november 2008 - 18:26 #2
Nej hov, slog det lige op, numrows kan bruges som alias.
Avatar billede amews_aj Nybegynder
30. november 2008 - 18:28 #3
Prøv lige at sætte or die(mysql_error()) på dine querys
Avatar billede arne_v Ekspert
30. november 2008 - 18:28 #4
put

or die(mysql_error())

på alle queries, så kan du se hvor det går galt.

Hvis jeg skulle gætte så er USERNAME og PASSWORD reserverede ord.
Avatar billede mcgoat Nybegynder
30. november 2008 - 18:35 #5
er det ikke her den fejler?

$q = "SELECT password FROM ".TBL_USERS." WHERE username = '$username'";

hedder tabelen "TBL_USERS", eller er det en variabel?
Avatar billede ohhelpme Nybegynder
30. november 2008 - 18:50 #6
Tabelerne heder:

users,

active_users,

active_guests,

banned_users,
Avatar billede ohhelpme Nybegynder
30. november 2008 - 18:51 #7
jeg prøver lige med det i har skrevet :)
Avatar billede ohhelpme Nybegynder
30. november 2008 - 18:55 #8
sorry men hva' er "querys"
Avatar billede amews_aj Nybegynder
30. november 2008 - 19:03 #9
mysql_query(.....)

-->

mysql_query(.....)or die(mysql_error())
Avatar billede mcgoat Nybegynder
30. november 2008 - 19:04 #10
Burde den så ikke hedde:

$q = "SELECT password FROM users WHERE username = '".$username."'";
Avatar billede amews_aj Nybegynder
30. november 2008 - 19:09 #11
mcgoat, det er vel nogle konstanter fra constants.php der hedder TBL_USERS og er sat til users
Avatar billede ohhelpme Nybegynder
30. november 2008 - 19:22 #12
Nu har jeg gjort det i sagde
fejlbeskeden er nu:

Parse error: syntax error, unexpected T_DNUMBER in /home/a4837628/public_html/login/include/database.php on line 24
Avatar billede ohhelpme Nybegynder
30. november 2008 - 19:27 #13
i kan godt få alle filerne i bruger systemet vis det er det
Avatar billede dkfire Nybegynder
30. november 2008 - 20:47 #14
Hvad står der på linje 23 og 24 ??
Avatar billede ohhelpme Nybegynder
20. februar 2009 - 22:15 #15
oprydning...
Avatar billede dkfire Nybegynder
20. februar 2009 - 23:58 #16
Med sådan en måde at opføre sig på, så skal du ikke forvente at få meget hjælp i fremtiden.
Der er desværre alt for mange af din slags som man spilder tiden på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester