Foros del Web » Programando para Internet » PHP »

Problema con Fpoll/Login

Estas en el tema de Problema con Fpoll/Login en el foro de PHP en Foros del Web. Que tal, Buenos días! Les comento mi problema, he estado buscando por la web y no encontre solución alguna. Instale el script php Fpoll v1.1 ...
  #1 (permalink)  
Antiguo 15/02/2015, 09:18
Avatar de Damin  
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Pregunta Problema con Fpoll/Login

Que tal, Buenos días!
Les comento mi problema, he estado buscando por la web y no encontre solución alguna.
Instale el script php Fpoll v1.1 y al querer logear me tira el siguiente error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/cstrikec/public_html/fpoll/admincp/login.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /home/cstrikec/public_html/fpoll/admincp/login.php:37) in /home/cstrikec/public_html/fpoll/admincp/login.php on line 50


Aquí les dejo el login.php:

Código:
<?php

// Author: PHPFront.com © 2005
// License: Free (GPL)
//
// Version: 1.1
//
// Created: 8.12.2005 
//
// More information and downloads 
// available at http://www.PHPFront.com
//
// #### login.php ####





include("config.php");

//logout procedure
if($_GET['do']=="kill"){
	
	setcookie ("user");	
	setcookie ("pass");

	header("Location: index.php");
	
}


//checking user details
$user = $_POST['user'];
$pass = md5($_POST['pass']);

$checkuser = mysql_query("SELECT * FROM fpoll_config WHERE user='$user' AND pass='$pass'");
$returned = mysql_num_rows($checkuser);

if($returned=="1"){
	
	$referer = $_POST['referer']; 

	setcookie ("user", $user, time()+3600); 
	setcookie ("pass", $pass, time()+3600);
	
	header("Location: index.php");
		
}else{
	
	header("Location: index.php");
	
}



?>
Probe si tenia espacios antes y despues del <?php ?>
Agradezco de antemano a quienes compartan conmigo su conocimiento phpcistico.

Saludos a todos!
  #2 (permalink)  
Antiguo 15/02/2015, 10:15
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con Fpoll/Login

La función mysql_query te está devolviendo false, es decir, que ha fallado la consulta. No veo que hayas establecido conexión con la base de datos antes de realizar la consulta, y no creo que lo hayas hecho en el archivo config que incluyes al principio, si no lo has hecho deberás hacerlo de la siguiente forma:
Código PHP:
$enlace =  mysql_connect('localhost''usuario_mysql''contraseña_mysql'); 
Después mysql_query recogerá automáticamente el enlace de mysql_connect, pero estaria mejor que le indicaras cual es de la siguiente forma:

Código PHP:
mysql_query("SELECT * FROM fpoll_config WHERE user='$user' AND pass='$pass'",$enlace); 
PD: La extensión mysql de php se considerá obsoleta, deberias usar la nueva extensión orientada a objetos que la sustituye: mysqli

http://www.forosdelweb.com/f18/anuncio-extension-mysql-php-considera-obsoleta-1008145/

Última edición por Macf; 15/02/2015 a las 10:22
  #3 (permalink)  
Antiguo 15/02/2015, 11:04
Avatar de Damin  
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con Fpoll/Login

Antes que nada gacias por tu respuesta Macf.
En respuesta:
La conexion a la base de datos esta en un config.php.
Este es un script viejo (2005), pero es el que mejor se adapta a mis necesidades de encuestas, no encontre otro parecido.

te cito el config.php

Código:
<?php

// Author: PHPFront.com © 2005
// License: Free (GPL)
//
// Version: 1.1
//
// Created: 8.12.2005 
//
// More information and downloads 
// available at http://www.PHPFront.com
//
// #### config.php ####


//database variables
$host = 'localhost';
$user = 'usuario';
$pass = 'password';
$dbname = 'database';


	

//connect to the mysql database
$mysql = mysql_connect($host,$user,$pass);
$db = mysql_select_db($dbname,$mysql); 


//grab config vars


function config($config) {
	
	$get_config = mysql_fetch_array(mysql_query("select * from fpoll_config"));
	$config = $get_config[$config];
	return $config;
	
	
}

function access() {
	
	
	if($_COOKIE['user']){
		
		
		$user = $_COOKIE['user'];
		$pass = $_COOKIE['pass'];
		
		$checkuser = mysql_query("SELECT * FROM fpoll_config WHERE user='$user' AND pass='$pass'");
		$returned = mysql_num_rows($checkuser);
		
		if($returned=="1"){
			//continue loading page..
		}
		else{
			
		
		
			include("templates.php");
		
			echo $login_header;
		
		
			?>
			<form action="login.php" method="post">
			<table cellspacing="1" cellpadding="4" border="0" bgcolor="#f2f2f2">
			<tr><td width="130">User</td><td><input type="text" name="user" /></td></tr>
			<tr><td>Password</td><td><input type="password" name="pass" /></td></tr>
			</table><br />
			<input type="hidden" name="referer" value="<? echo $_SERVER['REQUEST_URI']; ?>" />
			<input type="submit" value="Login" name="login" />
			</form>
			<?
		
			echo $footer;
		
		
			exit;
		
		}
		
	}else{
		
		include("templates.php");
		
		echo $login_header;
		
		
		?>
		<form action="login.php" method="post">
		<table cellspacing="1" cellpadding="4" border="0" bgcolor="#f2f2f2">
		<tr><td width="130">User</td><td><input type="text" name="user" /></td></tr>
		<tr><td>Password</td><td><input type="password" name="pass" /></td></tr>
		</table><br />
		<input type="hidden" name="referer" value="<? echo $_SERVER['REQUEST_URI']; ?>" />
		<input type="submit" value="Login" name="login" />
		</form>
		<?
		
		echo $footer;
		
		
		exit;
		
		
		
	}
	
	
	
}


	
?>
La realidad es que entiendo muy poco de php, no logro hacerlo funcionar.
Por lo que googlee me dice que esta haciendo llamada a 2 headers, como esta en la linea 37 y luego vuelve a llamarlo en la linea 50.
Disculpa mi ignorancia jeje.

Saludos!
  #4 (permalink)  
Antiguo 15/02/2015, 11:32
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con Fpoll/Login

Una pregunta, ¿los datos que estás metiendo en user y pass existen en la base de datos?, es decir, ¿la consulta debería devolver algún registro?, porque si esta fallando al meter datos erróneos, pero funciona bien con datos que existen la solución seria poner un condicional al contar las filas:

Código PHP:
if ($checkuser!=false){
      
$returned mysql_num_rows($checkuser);
} else {
      
$returned 0;

En el caso en que la consulta si que deba devolver registros, es decir, que en la base de datos exista el usuario introducido y su contraseña sea correcta haz lo siguiente:

Agrega esta linea detrás de la query, debajo de la línea de mysql_query, esto te dirá que error da la consulta, si haces el favor de ponerlo aqui.
Código PHP:
echo mysql_errno($mysql) . ": " mysql_error($mysql). "\n"
Ah, se me olvidaba, tranquilo con los headers, te salta ese error porque se ha mostrado en pantalla el error de la consulta sql, cuando consigamos arreglarla funcionarán bien las cookies. Pero no te olvides de esconder las alertas de php en la aplicación final, por si acaso.

Vuelvo a recomendarte encarecidamente migrar mysql a mysqli, es un cambio muy sencillo y evitarás problemas futuros.

Última edición por Macf; 15/02/2015 a las 11:45
  #5 (permalink)  
Antiguo 15/02/2015, 13:09
Avatar de Damin  
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con Fpoll/Login

Gracias por la nueva respuesta Macf, sos muy amable.

No entiendo un pomo, sigo sin poder hacerlo funcionar, debido a tu insitencia de que mysql esta obsoleto buscare algun script mas reciente y funcional.

Agradezco tu tiempo y conocimiento!

PD: He encontrado otro script, pero cada encuesta genera una ID y esa ID aleatoria tenes que hacer un paste en el include php, habra alguna forma de hacer que genere siempre una misma ID? el script se llama SMART PHP POLL

Última edición por Damin; 15/02/2015 a las 14:25
  #6 (permalink)  
Antiguo 15/02/2015, 15:55
Avatar de Macf  
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problema con Fpoll/Login

No hace falta que cambies el script completo, si ya has entendido como funciona el que ya tenias y te sirve para lo que necesitas no te llevaría demasiado trabajo cambiar tu mismo de mysql a mysqli, solo tienes que cambiar la forma en la que tu script se conecta a la base de datos, pero en realidad es muy parecido, mira estos ejemplos:

Código PHP:
//Conexión Usando mysqli
$mysqli = new mysqli("example.com""user""password""database");
$result $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row $result->fetch_assoc();

//Conexión Usando mysql
$c mysql_connect("example.com""user""password");
mysql_select_db("database");
$result mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row mysql_fetch_assoc($result); 
Siento no haberte podido ayudar a que funcionara, si quieres seguir intentándolo intenta responderme/hacer lo que te dije en el post anterior.
  #7 (permalink)  
Antiguo 15/02/2015, 16:47
Avatar de Damin  
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con Fpoll/Login

No es problema alguno Macf! agradezco muchisimo tu ayuda, siempre recurro a este foro y encuentro soluciones.

Muchas gracias igual!

Un abrazo grande!

Etiquetas: html, mysql, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.