Foros del Web » Programando para Internet » PHP »

Errores que no se ven... problemas conexión?

Estas en el tema de Errores que no se ven... problemas conexión? en el foro de PHP en Foros del Web. Buenos días: Estoy creando un proyecto web a partir de otro proyecto ya creado (en un principio solo cambia el nombre de la BBDD ya ...
  #1 (permalink)  
Antiguo 22/08/2011, 05:44
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Errores que no se ven... problemas conexión?

Buenos días:

Estoy creando un proyecto web a partir de otro proyecto ya creado (en un principio solo cambia el nombre de la BBDD ya que usan el mismo usuario, misma password y están en la misma IP).

El caso es que copio el proyecto original (que funciona al 100%) cambio el nombre de la BBDD (en parámetros.php que contiene el host, la BBDD, user y password), y en el php de validación cambio un select de una vista a una tabla ... y compruebo.

Pues bien después de estas modificaciones al introducir un usuario y un password me saltan unos errores de validacion (tipo usuario dado de baja...) que no solo no deberían dar si no que además no entendemos porque entra a darlos.

No puedo decir mucho más porque si que saltan una pantalla de error pero se ve solo durante un momento y no se como poder pararla para copiar los errores.

He probado con PHPEdit y lo único que puedo ver que me diga es: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at T:\iniciosesion.php:11)

Podeis ayudarme? además si me decis como puedo conseguir que se "paren" las pantallas de error o un comando de comprobación que los deje fijo hasta mover o tocar algo?

Un saludo y gracias.

Cpujades
  #2 (permalink)  
Antiguo 22/08/2011, 06:14
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Mueve el session_start() a la primera línea del fichero en el que te da el error.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 22/08/2011, 07:01
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

Cita:
Iniciado por vgonga1986 Ver Mensaje
Mueve el session_start() a la primera línea del fichero en el que te da el error.

Un saludo.
Justo debajo del [Body] ?
  #4 (permalink)  
Antiguo 22/08/2011, 07:11
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

No, en la primera línea del fichero. Pega el código aquí si quieres, pero vamos, la primera línea es la primera línea:
Código PHP:
Ver original
  1. <?php
  2. //Más código PHP
  3. ?>
  4. <!-- código HTML -->

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 23/08/2011, 01:25
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

pego el código a ver si veis algo vosotros...
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<link rel="stylesheet" type="text/css" href="index.css"/>
<title></title>
</head>
<body>

<?php
session_start();

	//Se añade el archivo conexion.php que posee los parametros de conexion
	include_once "conexion.php";


	//Se recogen los dos campos enviados por el formulario de inicio de sesion
	$nick = $_POST["txtNick"];
	$pwd = $_POST["txtPwd"];

	//En esta cadena se irá almacenando todos los posibles errores que se vayan produciendo.
	$cadenaerror="";

	//Se comprueba si se han introducido datos en el formulario de inicio de sesion.
	if($nick=="" || $pwd=="")
	{
		?>
			<script>
				window.location.href = "index.php";
			</script>
		<?php
	}
	else
	{

		//Se crea una consulta para comprobar si el usuario existe
		$sql = "SELECT id_usuarios,nombre,password,usuarioweb,baja,fecvalidez FROM usuarios WHERE nombre='$nick' and password='$pwd'";

		//Se crea una conexion y se recoge los datos de la consulta
		$registros=conexion($sql);

		//Comprobamos si hemos recibido algun registro de la consulta, si obtenemos
		// un valor de 0 significa que el usuario no esta en la B.D.
		if (mysql_num_rows($registros) == 0)
			{
				?>
					<script>
						window.location.href = "index.php";
					</script>
				<?php
			}
			else
			{
				$cadenaerror="Se han producido los siguientes errores:<br>";

				//Esta variable se igualará a 'cero' en el caso que se produzca algún error
				//	y si es así no se realizará la creación de la sesión.
				$exito=1;

				$campo = mysql_fetch_array($registros);
				//Comprobamos si el usuario esta dado de alta en el servicio Web [0=No dado de alta][1=Dado de alta]
				if ($campo["USUARIOWEB"]==0)
				{
					$cadenaerror=$cadenaerror."El usuario no está dado de alta en el servicio web.<br>";
					$exito=0;
				}

				//Comprobamos si el usuario esta dado de baja en el sistema [0=No dado de baja][1=Dado de baja]
				if($campo["BAJA"]==1)
				{
					$cadenaerror=$cadenaerror."El usuario está dado de baja en el sistema.<br>";
					$exito=0;
				}

				//Comprabamos la validez de su fecha con la hora del servidor, si esta es mas baja el usuario estará
				//	caducado. NOTA!!! La hora que se obtiene es la del servidor (DEBE ESTAR UNA HORA ATRASADO)
				if($campo["FECVALIDEZ"]<date('Y-m-d'))
				{
					$cadenaerror=$cadenaerror."El usuario está caducado.<br>";
					$exito=0;
				}

				if($exito==1)
				{
					$_SESSION["nombre"] = $campo["NOMBRE"];
					$_SESSION["idusuario"] = $campo["ID_USUARIOS"];

					?>
						<script>
							window.location.href = "clientes.php";
						</script>
					<?php
				}
				else
				{
					//El siguiente script devuelve a 'index.php' la cadena con los errores producidos.
					?>
						<script>
							window.location.href = "index.php?error=<?php echo utf8_encode($cadenaerror);?>";
						</script>
					<?php

				}
			}
	}

?>
</body>
</html>
  #6 (permalink)  
Antiguo 23/08/2011, 01:47
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

Cita:
Iniciado por vgonga1986 Ver Mensaje
No, en la primera línea del fichero. Pega el código aquí si quieres, pero vamos, la primera línea es la primera línea:
Código PHP:
Ver original
  1. <?php
  2. //Más código PHP
  3. ?>
  4. <!-- código HTML -->

Un saludo.
Ya lo tengo lo primero de todo en el código :(
  #7 (permalink)  
Antiguo 23/08/2011, 01:56
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <?php
  3. ?>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7.  
  8. <link rel="stylesheet" type="text/css" href="index.css"/>
  9. <title></title>
  10. </head>
  11. <body>
  12.  
  13. <?php
  14.  
  15.     //Se añade el archivo conexion.php que posee los parametros de conexion
  16.     include_once "conexion.php";
  17.  
  18.  
  19.     //Se recogen los dos campos enviados por el formulario de inicio de sesion
  20.     $nick = $_POST["txtNick"];
  21.     $pwd = $_POST["txtPwd"];
  22.         //....

session_start() debe estar siempre antes del envío de las cabeceras, es decir, antes del tag <header>.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #8 (permalink)  
Antiguo 23/08/2011, 02:12
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

Nada lo he cambiado y me sigue entrando a los errores de "no dado de alta en el servicio web" y "usuario caducado".
Es que es raro porque el usuario, si miras la BBDD, está dado de alta y sin caducar... es como que lee mal la bbdd ...
  #9 (permalink)  
Antiguo 23/08/2011, 02:18
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Haz un var_dump($campo) para ver qué datos te vienen de la base de datos. Probablemente sea de la consulta o de la conexión, pero como utilizas funciones para ambas cosas, no sé decirte.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #10 (permalink)  
Antiguo 23/08/2011, 02:20
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

Cita:
Iniciado por vgonga1986 Ver Mensaje
Haz un var_dump($campo) para ver qué datos te vienen de la base de datos. Probablemente sea de la consulta o de la conexión, pero como utilizas funciones para ambas cosas, no sé decirte.

Un saludo.
Var_dump? nunca he usado esto que me dices... es que soy bastante novata (como habrás comprobado) me puedes explicar mejor?
  #11 (permalink)  
Antiguo 23/08/2011, 02:45
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Después de esta línea:
Código PHP:
Ver original
  1. $campo = mysql_fetch_array($registros);
Añades esto:
Código PHP:
Ver original
  1. var_dump($campo);

var_dump es simplemente para imprimir el contenido de una variable, con cierto formato.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #12 (permalink)  
Antiguo 23/08/2011, 02:56
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

Al poner la línea y ejecutar el logueo de usuarios salta durante 1 seg. unos errores que son imposibles de leer.. hay alguna forma de pararla para poder leerlo?
  #13 (permalink)  
Antiguo 23/08/2011, 03:00
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Vamos a ver, el tema de que las pantallas se te queden sólo durante un segundo, es porque el tu script continúa y hace una redirección. Lo que tienes que hacer es comentar (o borrar) la parte de código que hace la redirección para que no se realice o añadir la sentencia exit; después de la zona en la que quieres que pare.

En segundo lugar, lo que te va a imprimir no son errores, es el contenido de la variable $campo formateado.

En tercer lugar, te recomiendo que modifiques las redirecciones de tu web. Ahora lo tienes así:
Código PHP:
Ver original
  1. ?>
  2.     <script>
  3.         window.location.href = "index.php";
  4.     </script>
  5. <?php

Como ves, tienes que cerrar la sentencia de PHP y poner JS, pero qué pasa si el usuario tiene desactivado JS? Yo que tú cambiaría estas redirecciones y usaría PHP directamente, con:
Código PHP:
Ver original
  1. header('Location: index.php');

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #14 (permalink)  
Antiguo 23/08/2011, 04:18
Avatar de cpujades  
Fecha de Ingreso: agosto-2011
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Errores que no se ven... problemas conexión?

vgonga YA LO HE SOLUCIONADO!!! muchaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas gracias!!!!
lo del exit ha sido fundamental!!! al parar la redirección he visto que el error eran las mayúsculas!! se ve (yo no lo sabía) que en una vista no tiene tan en cuenta las mayúsculas-minúsculas como en una tabla. Eso era una vez que lo he cambiado ha entrado raudo y veloz donde debía... MUCHISISIMAS GRACIAS POR TU TIEMPO Y PACIENCIA!.

Voy a ver como va lo de los puntos por ayuda para darte un buen porrón de ellos :)
  #15 (permalink)  
Antiguo 23/08/2011, 04:24
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Errores que no se ven... problemas conexión?

Bueno, me alegro que lo hayas solucionado al final. Lo de los puntos me da igual, yo estoy aquí para ayudar a los que saben un poco menos y aprender de los que saben un poco más. Y explicando también se aprende.

Un saludo y suerte.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: errores, tabla, ven, usuarios
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 23:04.