Mostrando resultados del 1 al 4 de 4
  1. #1
    hola que tal ps me cambie de servidor no creo aver movido nada a estos archivos solo lo unico que cambio fue que uso un phpadmin mas actualizado y en mi pagina me da este error que antes no salia

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/cap01/public_html/include/database.php on line 20

    Warning: Cannot modify header information - headers already sent by (output started at /home/cap01/public_html/include/database.php:20) in /home/cap01/public_html/include/session.php on line 113

    Warning: Cannot modify header information - headers already sent by (output started at /home/cap01public_html/include/database.php:20) in /home/cap01/public_html/process.php on line 29

    Este es mi archivo del database.php

    Código PHP:
    <?php
    include("constants.php");
    define('TBL_ATTEMPTS','login_attempts');
    define('TBL_USERS','users');
    define('ATTEMPTS_NUMBER',10);
    class 
    MySQLDB
    {
       var 
    $connection;         //The MySQL database connection

       
    function MySQLDB(){
          
    $this->connection mysql_connect(DB_SERVERDB_USERDB_PASS) or die(mysql_error());
          
    mysql_select_db(DB_NAME$this->connection) or die(mysql_error());
       }

       function 
    confirmIPAddress($value) {
        
    $q "SELECT attempts, (CASE when lastlogin is not NULL and DATE_ADD(LastLogin, INTERVAL 10 MINUTE)>NOW() then 1 else 0 end) as Denied ".
       
    " FROM `login_attempts` WHERE ip = '$value'";
     
       
    $result mysql_query($q$this->connection);
       
    $data mysql_fetch_array($result);   
     
       
    //Verify that at least one login attempt is in database

       
    if (!$data) {
         return 
    0;
       } 
       if (
    $data["attempts"] >= ATTEMPTS_NUMBER)
       {
          if(
    $data["Denied"] == 1)
          {
             return 
    1;
          }
         else
         {
            
    $this->clearLoginAttempts($value);
            return 
    0;
         }
       }
       return 
    0;  
      }
       
       function 
    addLoginAttempt($value) {
       
    // increase number of attempts
       // set last login attempt time if required    
          
    $q "SELECT * FROM ".TBL_ATTEMPTS." WHERE ip = '$value'"
          
    $result mysql_query($q$this->connection);
          
    $data mysql_fetch_array($result);
          
          if(
    $data)
          {
            
    $attempts $data["attempts"]+1;

            if(
    $attempts==3) {
             
    $q "UPDATE ".TBL_ATTEMPTS." SET attempts=".$attempts.", lastlogin=NOW() WHERE ip = '$value'";
             
    $result mysql_query($q$this->connection);
            }
            else {
             
    $q "UPDATE ".TBL_ATTEMPTS." SET attempts=".$attempts." WHERE ip = '$value'";
             
    $result mysql_query($q$this->connection);
            }
           }
          else {
           
    $q "INSERT INTO ".TBL_ATTEMPTS." (attempts,IP,lastlogin) values (1, '$value', NOW())";
           
    $result mysql_query($q$this->connection);
          }
        }
       
       
       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 
    1//Indicates password failure
          
    }
       }
       
       function 
    confirmUserName($username){
          
    /* Add slashes if necessary (for query) */
          
    if(!get_magic_quotes_gpc()) {
              
    $username addslashes($username);
          }

          
    /* Verify that user is in database */
          
    $q "SELECT * FROM ".TBL_USERS." WHERE username = '$username'";
          
    $result mysql_query($q$this->connection);
          if(!
    $result || (mysql_numrows($result) < 1)){
             return 
    1//Indicates username failure
          

          
          return 
    0;

       }
       
       function 
    clearLoginAttempts($value) {
        
    $q "UPDATE ".TBL_ATTEMPTS." SET attempts = 0 WHERE ip = '$value'"
        return 
    mysql_query($q$this->connection);
       }
       
       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;
       }
          
       function 
    displayUsers(){
       
    $q "SELECT username,password "
           
    ."FROM ".TBL_USERS." ORDER BY username";
       
    $result mysql_query($q$this->connection);

       
    $num_rows mysql_numrows($result);

       if(
    $num_rows == 0){
          echo 
    "Users table is empty";
          return;
       }

       echo 
    "<p><table align=\"left\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n";
       echo 
    "<tr><td class=\"tableheadprop\">&nbsp;Username&nbsp;</td><td class=\"tableheadprop\">&nbsp;Password&nbsp;</td></tr>\n";
       for(
    $i=0$i<$num_rows$i++){
          
    $uname  mysql_result($result,$i,"username");
          
    $upass mysql_result($result,$i,"password");

          echo 
    "<tr><td class=\"tableprop\">$uname</td><td class=\"tableprop\">$upass</td></tr>\n";
       }
       echo 
    "</table></p><br>\n";
       }
       
       function 
    displayAttempts($value){
       
    $q "SELECT ip, attempts,lastlogin "
           
    ."FROM ".TBL_ATTEMPTS." WHERE ip = '$value' ORDER BY lastlogin";
       
    $result mysql_query($q$this->connection);

       
    $num_rows mysql_numrows($result);

       if(
    $num_rows == 0){
          echo 
    "LoginAttempts table is empty";
          return;
       }

       echo 
    "<p><table align=\"left\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n";
       echo 
    "<tr><td class=\"tableheadprop\">&nbsp;Your IP Address&nbsp;</td><td class=\"tableheadprop\">&nbsp;Attempts&nbsp;</td><td class=\"tableheadprop\">&nbsp;LastLogin&nbsp;</td></tr>\n";
       for(
    $i=0$i<$num_rows$i++){
          
    $uip  mysql_result($result,$i,"ip");
          
    $uattempt mysql_result($result,$i,"attempts");
          
    $ulogin mysql_result($result,$i,"lastlogin");
          

          echo 
    "<tr><td class=\"tableprop\">$uip</td><td class=\"tableprop\">$uattempt</td><td class=\"tableprop\">$ulogin</td></tr>\n";
       }
       echo 
    "</table></p><br>\n";
       }

    };

    /* Create database connection */
    $database = new MySQLDB;

    ?>

    Este es el de session.php

    Código PHP:
    <?php
    include("database.php");
    include(
    "form.php");

    class 
    Session
    {
       var 
    $username;            //Username given on sign-up
       
    var $userid;              //Random value generated on current login
       
    var $userlevel;           //The level to which the user pertains
       
    var $time;                //Time user was last active (page loaded)
       
    var $logged_in;           //True if user is logged in, false otherwise
       
    var $userinfo = array();  //The array holding all user info
       
    var $url;                 //The page url current being viewed
       
    var $referrer;            //Last recorded site page viewed
       
    var $ip;                  //Remote IP address  

       
    function Session(){
          
    $this->ip $_SERVER["REMOTE_ADDR"];
          
    $this->time time();
          
    $this->startSession();
       }

       function 
    startSession(){
          global 
    $database;  
          
    session_start();   
          
          
    /* Determine if user is logged in */
          
    $this->logged_in $this->checkLogin();

          
    /* Set referrer page */
          
    if(isset($_SESSION['url'])){
             
    $this->referrer $_SESSION['url'];
          }else{
             
    $this->referrer "/";
          }

          
    /* Set current url */
          
    $this->url $_SESSION['url'] = $_SERVER['PHP_SELF'];
       }

       function 
    checkLogin(){
          global 
    $database
          
    /* Check if user has been remembered */
          
    if(isset($_COOKIE['cookname'])){
             
    $this->username $_SESSION['username'] = $_COOKIE['cookname'];
          }

          if(isset(
    $_SESSION['username'])){
             if(
    $database->confirmUserName($_SESSION['username']) != 0){
                unset(
    $_SESSION['username']);
                return 
    false;
             }

             
    $this->userinfo  $database->getUserInfo($_SESSION['username']);
             
    $this->username  $this->userinfo['username'];
             return 
    true;
          }
          else{
             return 
    false;
          }
       }

       function 
    login($subuser$subpass$subremember){
          global 
    $database$form;  
            
          unset(
    $form->errors);
          
    /* Checks if this IP address is currently blocked*/    
          
    $result $database->confirmIPAddress($this->ip);

          if(
    $result == 1){
             
    $error_type "access";
             
    $form->setError($error_type"Access denied for ".TIME_PERIOD." minutes");
          } 

          
    /* Return if form errors exist */
          
    if($form->num_errors 0){
             return 
    false;
          }
          
          
    $error_type "attempt";

          
    /* Username and password error checking */
          
    if(!$subuser || !$subpass || strlen($subuser trim($subuser)) == 0){
             
    $form->setError($error_type"Username or password not entered");
          }
          
          if(
    $form->num_errors 0){
             return 
    false;
          }

          
    /* Checks that username is in database and password is correct */
          
    $subuser stripslashes($subuser);
          
    $result $database->confirmUserPass($subuser$subpass);

          if(
    $result == 1){
             
    $form->setError($error_type"Invalid username or password.");
             
    $database->addLoginAttempt($this->ip);
          }
          
          if(
    $form->num_errors 0){
             return 
    false;
          }

          
    /* Username and password correct, register session variables */
          
    $this->userinfo  $database->getUserInfo($subuser);
          
    $this->username  $_SESSION['username'] = $this->userinfo['username'];

          
          
    /* Null login attempts */
          
    $database->clearLoginAttempts($this->ip);

          if(
    $subremember){
             
    setcookie("cookname"$this->usernametime()+COOKIE_EXPIRECOOKIE_PATH);
          }

          
    /* Login completed successfully */
          
    return true;
       }

       function 
    logout(){
          global 
    $database;  

          if(isset(
    $_COOKIE['cookname'])){
             
    setcookie("cookname"""time()-COOKIE_EXPIRECOOKIE_PATH);
          }

          unset(
    $_SESSION['username']);

          
    $this->logged_in false;
          
       }
    };


    /* Initialize session object */
    $session = new Session;

    /* Initialize form object */
    $form = new Form;

    ?>
    Este el de process.php

    Código PHP:
    <?php
    include("include/session.php");

    class 
    Process
    {
       function 
    Process(){
          global 
    $session;

          if(isset(
    $_POST['sublogin'])){
             
    $this->procLogin();
          }
          else if(
    $session->logged_in){
             
    $this->procLogout();
          }
          else{
              
    header("Location: ".$url);
           }
       }


       function 
    procLogin(){
          global 
    $session$form;
          
    /* Login attempt */
          
    $retval $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']));
          
          
    /* Login successful */
          
    if($retval){
            
    $url $_POST['url'];
            
    header("Location: ".$url);
          }
          
    /* Login failed */
          
    else{
             
    $_SESSION['value_array'] = $_POST;
             
    $_SESSION['error_array'] = $form->getErrorArray();
            
    $url $_POST['url'];
             
    header("Location: ".$url);
          }
       }
       
       function 
    procLogout(){
          global 
    $session;
          
    $retval $session->logout();
          
    header("Location: index.php?loggedout=1");
       }
       

    };

    $process = new Process;

    ?>

  2. #2
    Es porque la query no dió ningún resultado y los otros dos errores es porque se mostró el primer error y luego el script continuó tratando de enviar headers.

    Ponle un if de esta forma:

    if(!$result = mysql_query($q, $this->connection)){
    die('Error');
    }

    Como no hay resultados $result pasa a ser valor booleano false y por eso te da el primer mensaje de error.
    Intenta darle un echo a la query y pegalo en el phpmyadmin y vee que está fallando.

  3. #3
    A mi me apareció tambien un error parecido al cambiar de servidor.
    Las posibles soluciones ya se han dicho y fueron en algunos caso que habia un espacio al principio, y otra es que la consulta no dio ningun resultado pero como era necesaria realizar la consulta para que no apareciera el error le puse "@" delante y listo @mysql_fetch_array()

  4. #4
    Registro
    22-septiembre-2011
    Ubicación
    Hermosillo, México
    Edad
    30
    Mensajes
    62
    Como menciona zkizzik, el error es por que la consulta no te trae ningun resultado, y los siguientes errores son en consecuencia del primero.

    Cita Iniciado por jotali Ver Mensaje
    A mi me apareció tambien un error parecido al cambiar de servidor.
    Las posibles soluciones ya se han dicho y fueron en algunos caso que habia un espacio al principio, y otra es que la consulta no dio ningun resultado pero como era necesaria realizar la consulta para que no apareciera el error le puse "@" delante y listo @mysql_fetch_array()
    No creo que poner @ sea la mejor solución, eso no quita que el error exista, simplemente no lo notificara. Lo mejor sería agregar validaciones como comenta zkizzik.

    Saludos

  5. Likes Isabela dio clic en "Me agrada" a este mensaje

Temas similares

  1. Facebook Warning‏
    Hola a tod@s. He recibido este correo de Facebook, del correo facebookmail.com. Asunto del correo: Facebook Warning‏ Hola, Se ha...
    Respuestas: 3
    Último mensaje: 26-sep-2011
  2. Error Warning: call_user_func_array() [function.call-user-func-array]
    Buenas foro, tengo el siguiente problema: http://i.imgur.com/lg904.png Aparece en la cabezera del blog (Betamina) Ya probe volviendo a subir...
    Respuestas: 0
    Último mensaje: 24-may-2011
  3. Blog en el que los visitantes puedan postear
    Bueno amigos hacer algunos días vi por allí un tema (no estoy seguro si fue en este foro) de una página de esas de megustafacebook hecha en blogger,...
    Respuestas: 11
    Último mensaje: 09-oct-2010
  4. critiquen lo mas que puedan
    ola jovenes solicito criticas,regaños,ayudas consejos para este blog.......haber si me motivo a seguir con el,cambiarlo o borrarlo.....gracias ...
    Respuestas: 4
    Último mensaje: 29-jun-2010
  5. Muchos: !!!!!!! WARNING !!!!!!!
    Hola compañeros: Veréis ya ando desesperado con este tema.He instalado de nuevo un par de veces wordpress actualiandolo a la ultima version,y tb...
    Respuestas: 4
    Último mensaje: 13-oct-2009

Normas de publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •