Foros del Web » Programando para Internet » PHP »

Problemas Varios

Estas en el tema de Problemas Varios en el foro de PHP en Foros del Web. Buenos días a todos: Tengo unas dudas, estoy empezando a programar en php, y el siguiente código me da varios errores: <form name="control" method="post" action=""> ...
  #1 (permalink)  
Antiguo 17/12/2007, 03:31
 
Fecha de Ingreso: diciembre-2007
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 0
Problemas Varios

Buenos días a todos:
Tengo unas dudas, estoy empezando a programar en php, y el siguiente código me da varios errores:
<form name="control" method="post" action="">
<p align="center"><strong>CONTROL DE USUARIOS:</strong></p>
<div align="center"><strong>Usuario:</strong><input name="usuario" type="text" value=""></div>
<p align="center"><strong>Contraseña: </strong><input name="contraseña" type="password"></p>
<p align="center"><input name="aceptar" type="submit" value="Aceptar"></p>
</form>
<?php
//conectarse a la bd
include('conexion.php');
$enlace=conectar();
//coger los datos pasados por el formulario
$usuario=$_POST["usuario"];
$contraseña=$_POST["contraseña"];
//crear la consulta para comprobar si exite usuario y contraseña
$consulta="SELECT * from Usuarios WHERE usuario='$usuario' AND contraseña='$contraseña'";
$resultado=mysql_query($consulta,$enlace);
//comprobar si los datos introducidos son correctos
if (mysql_num_rows($resultado)>0){
//usuario y contraseña válidos
//defino una sesión y guardo datos en una variable
session_start();
session_register("sesion");
//$usuario = "SI";
// lo envio a la página de la consulta
header ("Location: //gestion/BLOG.php");
exit;
}else {
//si no existe le mando otra vez a la portada
header("Location:INDEX.php?$errorusuario=si");
exit;
}
//destruimos de memoria los datos de la consulta
mysql_free_result($resultado);
?>
PRIMER ERROR:
Nada abro la pagina Index.php me sale el formulario y el siguiente error:
Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php:2) in /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php on line 29
SEGUNDO ERROR:
Cuando introduzco los datos para entrar en el formulario, que se seguro que los datos son correctos me muestra 3 errores:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php:2) in /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php on line 21

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php:2) in /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php:2) in /home/.sites/28/site1/.users/92/web17613685/web/Blog/INDEX.php on line 25

me estoy volviendo loca porque no encuentro que hago mal, solo hago que mirarlo y compararlo con diferentes ejemplos que veo por internet.

Ayuda por favor.
  #2 (permalink)  
Antiguo 17/12/2007, 09:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Problemas Varios

El error es que tienes salida de texto antes de enviar el header, por lo que indica tu script tienes salida de texto desde la linea 2, por eso no puedes enviar el header.

Necesitas mover tu código PHP para que se ejecute antes de que dibujes tu pagina.

Saludos.
  #3 (permalink)  
Antiguo 17/12/2007, 09:35
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Problemas Varios

Creo que quieres poner la pagina piernas arriba

error en salida de texto antes del header
esto
header ("Location: //gestion/BLOG.php");

a posición arriba del formulario

Bienvenidos a FDW
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #4 (permalink)  
Antiguo 17/12/2007, 10:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas Varios

He intentado poner el codigo antes que el formulario pero es peor no me carga la pagina
  #5 (permalink)  
Antiguo 17/12/2007, 11:02
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problemas Varios

creo que lo mejor es dividir el código, por ejemplo:
index.php
Código PHP:
<form name="control" method="post" action="checar.php">
<p align="center"><strong>CONTROL DE USUARIOS:</strong></p>
<div align="center"><strong>Usuario:</strong><input name="usuario" type="text" value=""></div>
<p align="center"><strong>Contrase&ntilde;a: </strong><input name="contraseña" type="password"></p>
<p align="center"><input name="aceptar" type="submit" value="Aceptar"></p>
</form>
<?
    
if(!empty($_GET['errorusuario']))
        echo 
'<div align="center">Nombre de Usuario y/o Contrase&ntilde;a Incorrectos</div>';
?>
checar.php
Código PHP:
<?php
session_start
();
//conectarse a la bd
include('conexion.php');
$enlace=conectar();
//coger los datos pasados por el formulario
$usuario=$_POST["usuario"];
$contraseña=$_POST["contraseña"];
//crear la consulta para comprobar si exite usuario y contraseña
$consulta="SELECT * from Usuarios WHERE usuario='$usuario' AND contraseña='$contraseña'";
$resultado=mysql_query($consulta,$enlace);
//comprobar si los datos introducidos son correctos
if (mysql_num_rows($resultado)>0){
//usuario y contraseña válidos
//defino una sesión y guardo datos en una variable
$_SESSION['autentificado']='si';//
//session_register("sesion"); <-- ya no se usa.
//$usuario = "SI";
// lo envio a la página de la consulta
header ("Location: gestion/BLOG.php");
exit;
}else {
//si no existe le mando otra vez a la portada
$_SESSION=array();//limpiamos nuestra variable de session por lo que pudiera tener
session_destroy();//destruimos la seccion
header("Location: index.php?errorusuario=si");//redireccionamos al index
exit;
}
//destruimos de memoria los datos de la consulta
mysql_free_result($resultado);
?>
espero y te sirva, saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 17/12/2007, 12:21
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Problemas Varios

Ok... el primer error es el que ya te han dicho aca, envias informacion al browser y luego envias header() lo que es un error puesto que header debe ir solo o la informacion al browser, pero no conviene que se envien los dos, los otros errores son a causa del primero ;).

Te propongo este codigo:
Código PHP:
$html '<form name="control" method="post" action="">
<p align="center"><strong>CONTROL DE USUARIOS:</strong></p>
<div align="center"><strong>Usuario:</strong><input name="usuario" type="text" value=""></div>
<p align="center"><strong>Contraseña: </strong><input name="contraseña" type="password"></p>
<p align="center"><input name="aceptar" type="submit" value="Aceptar"></p>
</form>'
;

//preguntamos si el boton aceptar ha sido presionado
if($_POST['aceptar'] == "Aceptar"){
    
//conectarse a la bd
    
include('conexion.php');
    
$enlace=conectar();
    
//coger los datos pasados por el formulario
    
$usuario=$_POST["usuario"];
    
$contraseña=$_POST["contraseña"];
    
//crear la consulta para comprobar si exite usuario y contraseña
    
$consulta="SELECT * from Usuarios WHERE usuario='$usuario' AND contraseña='$contraseña'";
    
$resultado=mysql_query($consulta,$enlace);
    
//comprobar si los datos introducidos son correctos
    
if(mysql_num_rows($resultado)>0){ 
        
//usuario y contraseña válidos 
        //defino una sesión y guardo datos en una variable 
        
session_start(); 
        
session_register("sesion"); 
        
//$usuario = "SI"; 
        // lo envio a la página de la consulta
        
header ("Location: //gestion/BLOG.php");
        exit;
    }else { 
        
//si no existe le mando otra vez a la portada 
        
header("Location:INDEX.php?$errorusuario=si"); 
        exit;
    } 
    
//destruimos de memoria los datos de la consulta
    
mysql_free_result($resultado);
}else{
    print 
$html;

Suerte
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 20/12/2007, 10:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Problemas Varios

Muchas gracias chicos ya lo tengo solucionado.
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 19:08.