SoloCodigo
		Programación Web y Scripting => PHP => Mensaje iniciado por: SpywaCorp en Domingo 27 de Abril de 2008, 05:06
		
			
			- 
				Ayudad con php y my sql
 
 hola me llamo sergio y estoy creando una pagina web para un proyecto, al principio busque como hacer un sistema de usuarios sencillo, lo encontre y lo puse a funcionar, todo funcionaba correctamente en el dominio gratuito que tenia hata qie decidi comprar uno y por lo tanto mudar las bases de datos, pero ahora me dice que tengo el siguiente error y no se por que:
 
 Warning: Cannot modify header information - headers already sent by (output started at /home/a5179736/public_html/includes/reg.php:76) in /home/a5179736/public_html/includes/reg.php on line 111
 
 Nota: el codigo funciona perfectamente para registrar usuario, pero ala hora de intentar ingresar marca el error, les agradeceria mucho me digeran cual es el error.
 
 el codigo de reg.php es este:
 
 <?
 $tipo=$_POST['tipo'];
 if ($tipo=="registro"){
 ///////////////////////////////////Registro En La Base De Datos///////////////////////////////////////////////////
 include ("config.php");
 ////////////// se Recogen Las Variables del Formulario de Registro
 $nombre=$_POST['nombre'];
 $email=$_POST['email'];
 $frace=$_POST['frace'];
 $pass=$_POST['pass'];
 $repass=$_POST['repass'];
 $usuario=$_POST['usuario'];
 ////////////////////////////////////////Sentencias SQL////////////////////////////////////////////////////////////
 $result=mysql_query($sql,$conexion);
 $resulta=mysql_query($sqla,$conexion);
 $busca=mysql_fetch_array($resulta);
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 if ($nombre=="" || $email=="" || $usuario==""){  // Verifica Que los campos no esten vacios
 
 echo "Se Requiere llenar los campos de Usuario, Nomnbre Y Email<BR>"
 ."<a href='cuerpo.htm'>Volver</a>";
 
 exit;
 } else {
 ///////////////////////////// Se Verifica Que las Dos Contrase�as sean Iaguales/////////////////
 if ($pass==$repass){
 /////////////////////// Se Verifica Si el Usuario Ya Existe En La Base De Datos///////////
 if ($usuario == $busca['usuario']){
 
 echo "Lo Sentimos, El Nombre De Usuario: $usuario <BR>Ya Esta Siendo Utilizado Por Otra Persona<BR>"
 ."Escoge Otro Nombre De Usuario <a href='cuerpo.htm'><font color='#FF0000'>Volver</font></a>";
 exit;
 }
 if ($nombre == $busca['nombre']){
 
 
 echo "El Nombre $nombre Ya esta registrado En Nuestra Base De Datos<BR>"
 ."no Puede Aver Dos Nombres Iguales, Disculpa las Molestias<BR>"
 ."<a href='cuerpo.htm'><font color='#FF0000'>Volver</font></a>";
 
 exit;
 }
 if ($email == $busca['email']){
 
 echo "El Correo $email Ya Existe en nuestra base de datos<BR>"
 ."no Puede Aver Dos Nombres Iguales, Disculpa las Molestias<BR>"
 ."<a href='cuerpo.htm'><font color='#FF0000'>Volver</font></a>";
 
 exit;
 }
 ///////////////////////////////////Inserta Los Valores En La Base de Datos/////////////////////
 mysql_query("INSERT INTO  usuario (usuario,pass,nombre,email,frace)
 VALUES ('{$usuario}','{$pass}','{$nombre}','{$email}','{$frace}')",$conexion);
 ///////////////////////////////////Pagina Despues del Registro/////////////////////////////////////////
 
 echo " Ahora Eres Un Usuario Registrado y estos son tus datos:<BR>";
 echo "$nombre<BR>"
 ."$usuario<BR>"
 ."$email<BR>"
 ."$frace<BR>";
 echo " <BR><BR><BR><a href='index.htm'>Inicio<BR>";
 
 mysql_close($conexion);
 ////////////////////////////////////////Fin De Pagina//////////////////////////////////////////////
 
 exit;
 }else {
 
 echo " Tu Contrase�a no Coincidia"
 ."<a href='cuerpo.html'>Volver</a>";
 
 }}}
 ////////////////////////////////////////////Inicio de Session////////////////////////////////////////////////
 else {
 
 include ("config.php");
 $pass=$_POST['pass'];
 $usuario=$_POST['usuario'];
 $comparar = "SELECT * FROM usuario WHERE usuario='$usuario' and pass='$pass'";
 $obtener = "SELECT * FROM usuario WHERE usuario='$usuario'";
 $resultado = mysql_query($comparar,$conexion);
 $dcompara= mysql_fetch_array($resultado);
 $dres = mysql_query($obtener,$conexion);
 $datos= mysql_fetch_array($dres);
 $busuario= $dcompara ['usuario'];
 $bnombre= $datos ['nombre'];
 $bfrace= $datos ['frace'];
 $bemail= $datos ['email'];
 //vemos si el usuario y contrase�a es v�ildo
 //si la ejecuci�n de la sentencia SQL nos da alg�n resultado
 if (mysql_num_rows($resultado)!=0){
 session_name("spywa");
 session_start();
 // Guardamos una variable
 $_SESSION['usuario'] = $busuario;
 $_SESSION['nombre'] = $bnombre;
 $_SESSION['frace'] = $bfrace;
 $_SESSION['email'] = $bemail;
 $_SESSION["ultimavez"]= date("Y-n-j H:i:s");
 ///////////////////////////////////////
 //echo"Bienvenido $usuario<BR>"
 //."$email<BR>"
 //."$frace<BR><BR>";
 header("Location: index.htm");// Pagina a La que se envian despues de inisiar session
 mysql_free_result($resultado);
 mysql_free_result($dres);
 mysql_close($conexion);
 exit;
 }else {
 //si no existe el usuario
 header("Location: cuerpo.htm");
 }
 }
 ?>
 
 
 el codigo de config.php es este:
 
 <?
 ///////////////////////////////////Variables Del Servidor//////////////////////////////////////////////////
 $servidor=""; // Servidor De La Base De datos
 $userdb=""; //Usuario De La Base De Datos
 $passdb=""; //password De La Base De Datos
 $dbname =""; //Nombre de La Base De Datos
 /////////////////////////Conexion Y Selecion de La Base De Datos//////////////////////////////////////////////
 $conexion=mysql_connect("$servidor","$userdb","$passdb"); // Conexion ala Base de Datos
 mysql_select_db ("$dbname",$conexion) OR die ("No se puede conectar");
 //////////////////////////////////Sentencias SQL//////////////////////////////////////////////////////////////
 $comparar = "SELECT * FROM usuario WHERE usuario='$usuario' and pass='$pass'";
 $obtener = "SELECT * FROM usuario WHERE usuario='$usuario'";
 $sql="SELECT * FROM usuario";
 $sqla="SELECT * FROM usuario";
 $ahora = date("Y-n-j H:i:s");
 ?>
- 
				No puedes hacer un redireccionamiento por HTTP después de que has enviado alguna cabecera...
 me explico, para crear una sesión, haces el llamado a session_start(), con lo que ya estas enviando una cabecera HTTP; posteriormente haces un llamado a header(), que envía otra cabecera HTTP, y eso es lo que te está penalizando el PHP.
 
 Te puedo sugerir 2 cosas:
 
 1. Utiliza redireccionamiento por HTML (con los tag <META> dentro de <HEAD>, en el momento no recuerdo como hacerlo) en vez de hacerlo con header();
 
 2. Redireccionar a un HTML (index.htm) puede hacerte perder las variables de sesión.