Foros del Web » Programando para Internet » PHP »

Problema con form de usuario en php

Estas en el tema de Problema con form de usuario en php en el foro de PHP en Foros del Web. Hola muy buenas, tengo un problemilla con un login de una pagina programada con php: Tengo una carpeta en el servidor visible a todo el ...
  #1 (permalink)  
Antiguo 30/12/2004, 13:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 71
Antigüedad: 20 años, 1 mes
Puntos: 0
Problema con form de usuario en php

Hola muy buenas, tengo un problemilla con un login de una pagina programada con php:
Tengo una carpeta en el servidor visible a todo el mundo (\html), y con todos los permisos a todos los usuarios, y en su interior se encuentra otra carpeta llamada \php con todos los permisos pero solo para usuarios locales y propietario.Bien, dentro de \html se encuentran "login.php" y "verify.php", que como imaginareis login es la pagina donde el usuario introducira su nombre y pass, y veriry la que hace las comprobaciones mirando en la BD y si todo es correcto te reenvia a un archivo "x.php" situado en la carpeta \php. Pues bien, el problema es que cuando verifica la autenticidad del usuario, da un error (por lo visto bastante comun) del tipo Cannot modify header information - headers already sent by... ...y por supuesto no redirecciona, con lo que no hacemos nada...

El codigo de verify.php es el siguiente:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>verificando...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #A8B5E1;
}
-->
</style></head>
<?php
if (empty($usuario) )
{
echo "inroduce tu nombre de usuario para Vialmasters.com";
break;
}
if (empty($passwd) )
{
echo "introduce tu contraseña de inicio de sesion, melón";
break;
}
$userBD = "x";
$passBD = "x";
mysql_connect("x.com:3306",$userBD,$passBD)
or die("no se puede conectar con la BD");
mysql_select_db("xbd");
$sqlquery = "SELECT clave from usuarios where usuario = '".$usuario."' ";
$queryresult = mysql_query($sqlquery) or die("no se ha podido ejecutar la consulta");
if($row = mysql_fetch_array($queryresult) )
{
if ($row["clave"] == $passwd)
{
//session_start();
//$_SESSION["usuario"] = $usuario;
//$_SESSION["clave"] = $passwd;
//session_register('usuario');
//echo '<SCRIPT LANGUAGE="javascript">location.href = "../php/app.php"; </SCRIPT>';
header("location:/php/app.php");
}
else
{
echo '<SCRIPT LANGUAGE="javascript">alert("contraseña incorrecta, por favor introduce un nombre de usuario y contraseña correctos.");
location.href = "login.php";
</SCRIPT>';
}
}
else
{
echo '<script language="javascript">alert("usuario no registrado, escriba a...");location.href="login.php"</script>';
}

?>
<body>
</body>
</html>
  #2 (permalink)  
Antiguo 30/12/2004, 13:24
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
El problema es que la funcion header() esta creando conflictos. Para solucionar esto lo unico que debes hacer es poner
<?
ob_start();
?>
al principio de todo el codigo de la pagina que te tiro el error.(Es importante que este antes que todo!) y pon este otro al final de todo despues de el ultimo caracter
<?
ob_end_flush();
?>
__________________
-- May The Force Be With You --
  #3 (permalink)  
Antiguo 10/01/2005, 09:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 71
Antigüedad: 20 años, 1 mes
Puntos: 0
Nnnop¡

HE probado a hacer lo que me comentas pero me sigue dando el mismo error, ahora la pagina de verificacion queda asi:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>verificando...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? ob_start(); ?>
<style type="text/css">
<!--
body {
background-color: #A8B5E1;
}
-->
</style></head>
<?php
if (empty($usuario) )
{
echo "inroduce tu nombre de usuario para Vialmasters.com";
break;
}
if (empty($passwd) )
{
echo "introduce tu contraseña de inicio de sesion, melón";
break;
}
$userBD = "xxx";
$passBD = "xxx";
mysql_connect("xxx.com:3306",$userBD,$passBD)
or die("no se puede conectar con la BD");
mysql_select_db("qab644");
$sqlquery = "SELECT clave from usuarios where usuario = '".$usuario."' ";
$queryresult = mysql_query($sqlquery) or die("no se ha podido ejecutar la consulta");
if($row = mysql_fetch_array($queryresult) )
{
if ($row["clave"] == $passwd)
{
session_start();
$_SESSION["usuario"] = $usuario;
$_SESSION["clave"] = $passwd;
//session_register('usuario');
//echo '<SCRIPT LANGUAGE="javascript">location.href = "/php//app.php"; </SCRIPT>';
header("location:/php/app.php");
}
else
{
echo '<SCRIPT LANGUAGE="javascript">alert("contraseña incorrecta, por favor introduce un nombre de usuario y contraseña correctos.");
location.href = "login.php";
</SCRIPT>';
}
}
else
{
echo '<script language="javascript">alert("usuario no registrado, para cualquier solititud escriba a [email protected]");location.href="login.php"</script>';
}
?>
<?
ob_end_flush();
?>
<body>
</body>
</html>

Si sabes a que se puede deber te agradeceria enormemente que me echaras un cablecillo, un saludo¡
  #4 (permalink)  
Antiguo 16/01/2005, 10:04
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
tu pusiste esto:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>verificando...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? ob_start(); ?>
<style type="text/css">
<!--
body {
background-color: #A8B5E1;
}
-->
</style></head>
<?php
if (empty($usuario) )
{
echo "inroduce tu nombre de usuario para Vialmasters.com";
break;
}
if (empty($passwd) )
{
echo "introduce tu contraseña de inicio de sesion, melón";
break;
}
$userBD = "xxx";
$passBD = "xxx";
mysql_connect("xxx.com:3306",$userBD,$passBD)
or die("no se puede conectar con la BD");
mysql_select_db("qab644");
$sqlquery = "SELECT clave from usuarios where usuario = '".$usuario."' ";
$queryresult = mysql_query($sqlquery) or die("no se ha podido ejecutar la consulta");
if($row = mysql_fetch_array($queryresult) )
{
if ($row["clave"] == $passwd)
{
session_start();
$_SESSION["usuario"] = $usuario;
$_SESSION["clave"] = $passwd;
//session_register('usuario');
//echo '<SCRIPT LANGUAGE="javascript">location.href = "/php//app.php"; </SCRIPT>';
header("location:/php/app.php");
}
else
{
echo '<SCRIPT LANGUAGE="javascript">alert("contraseña incorrecta, por favor introduce un nombre de usuario y contraseña correctos.");
location.href = "login.php";
</SCRIPT>';
}
}
else
{
echo '<script language="javascript">alert("usuario no registrado, para cualquier solititud escriba a [email protected]");location.href="login.php"</script>';
}
?>
<?
ob_end_flush();
?>
<body>
</body>
</html> pero tienes que poner esto
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>verificando...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<? ob_start(); ?>
<style type="text/css">
<!--
body {
background-color: #A8B5E1;
}
-->
</style></head>
<?php
if (empty($usuario) )
{
echo "inroduce tu nombre de usuario para Vialmasters.com";
break;
}
if (empty($passwd) )
{
echo "introduce tu contraseña de inicio de sesion, melón";
break;
}
$userBD = "xxx";
$passBD = "xxx";
mysql_connect("xxx.com:3306",$userBD,$passBD)
or die("no se puede conectar con la BD");
mysql_select_db("qab644");
$sqlquery = "SELECT clave from usuarios where usuario = '".$usuario."' ";
$queryresult = mysql_query($sqlquery) or die("no se ha podido ejecutar la consulta");
if($row = mysql_fetch_array($queryresult) )
{
if ($row["clave"] == $passwd)
{
session_start();
$_SESSION["usuario"] = $usuario;
$_SESSION["clave"] = $passwd;
//session_register('usuario');
//echo '<SCRIPT LANGUAGE="javascript">location.href = "/php//app.php"; </SCRIPT>';
header("location:/php/app.php");
}
else
{
echo '<SCRIPT LANGUAGE="javascript">alert("contraseña incorrecta, por favor introduce un nombre de usuario y contraseña correctos.");
location.href = "login.php";
</SCRIPT>';
}
}
else
{
echo '<script language="javascript">alert("usuario no registrado, para cualquier solititud escriba a [email protected]");location.href="login.php"</script>';
}
?>

<body>
</body>
</html><?
ob_end_flush();
?>
__________________
-- May The Force Be With You --
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 09:10.