Foros del Web » Programando para Internet » PHP »

problemas con login.php

Estas en el tema de problemas con login.php en el foro de PHP en Foros del Web. Hola a todos: Tengo unos script para entrada de usuarios, y el programa lo tenia en mi localhost funcionando correctamente, pero al pasarlo a un ...
  #1 (permalink)  
Antiguo 08/04/2010, 09:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
problemas con login.php

Hola a todos: Tengo unos script para entrada de usuarios, y el programa lo tenia en mi localhost funcionando correctamente, pero al pasarlo a un servidor de internet me da el siguiente mensaje de error en la entrada de un usuario:

Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxxxx/public_html/midominio/login.php:4) in /home/xxxxxx/public_html/midominio/login.php on line 22
Usted no se ha identificado, haga clic click here aqui para iniciar sesion.


El script login.php es:
( Lasw lineas de error 4 y 22 estan en rojo)
<?php
session_start();
<?php
ob_start();
include("config.php");
$_SESSION['username']=$_POST['username'];
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because".mysql_error());
mysql_select_db($database)or die ("Could not select database because ".mysql_error());
$match = "select id from $table where username = '".$_POST['username']."'and password = '".$_POST['password']."';";
$qry=mysql_query($match) or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($qry);
if ($num_rows<=0) {

echo "Lo sentimos, no hay ningún nombre de usuario o contraseña con: <strong>".$_POST['username']."</strong><br>";

echo "<a href=entradapropietario.htm>Inténtelo de nuevo</a>";

} else {
setcookie("loggedin","".$_POST['username']."",time()+(3600*24));
include("members/profile.php");
}

ob_end_flush();

?>
  #2 (permalink)  
Antiguo 08/04/2010, 09:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problemas con login.php

Quita el segundo <?php que tienes, no tiene caso.

Saludos.
  #3 (permalink)  
Antiguo 08/04/2010, 11:59
 
Fecha de Ingreso: abril-2010
Ubicación: Chile
Mensajes: 76
Antigüedad: 14 años
Puntos: 3
Respuesta: problemas con login.php

Exasto quita el segundo php y esto modificalo

Código PHP:
Ver original
  1. setcookie("loggedin","".$_POST['username']."",time()+(3600*24));

por esto:
Código HTML:
Ver original
  1. setcookie("loggedin", $_POST['username'] ,time()+3600*24);

No hay necesidad de colocar esas comillas, y en el time tampoco hay necesidad de parentesis ya que si has visto matematicas, primero son las multiplicaciones y diviciones, luego las sumas y restas.

otra cosa, tu pagina es vulnerable a xss y sql injection solo viendo este codigo
  #4 (permalink)  
Antiguo 09/04/2010, 01:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: problemas con login.php

Gracias, se ha solucionado a medias, al quitarle las comillas, se ha conseguido conectar con el usuario, pero sigue saliendo la información del error .
El tema del <?php ha sido un error de transcripción, está bien puesto, pero el error biene del código htm que va a continuación, me explico, la pagina correcta es:

<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Language" content="es">
<titlexxxxxxxxxxxxxx::</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<LINK href="estilos.css" rel=stylesheet>
.
.
.(código htm)
.
<?php
ob_start();
include("config.php");
$_SESSION['username']=$_POST['username'];
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because".mysql_error());
mysql_select_db($database)or die ("Could not select database because ".mysql_error());
$match = "select id from $table where username = '".$_POST['username']."'and password = '".$_POST['password']."';";
$qry=mysql_query($match) or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($qry);
if ($num_rows<=0) {

echo "Lo sentimos, no hay ningún nombre de usuario o contraseña con: <strong>".$_POST['username']."</strong><br>";

echo "<a href=entradapropietario.htm>Inténtelo de nuevo</a>";

} else {
setcookie("loggedin","".$_POST['username']."",time()+(3600*24));
include("members/profile.php");
}

ob_end_flush();

?>


y el error es debido al código htm ya que si dejo solo el script de php no sale el error. Pero, la pagina es así, ¿ como lo haría?
  #5 (permalink)  
Antiguo 09/04/2010, 04:31
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: problemas con login.php

Prueba poniendo el ob_start() al principio del todo a ver si funciona.


Un saludo
  #6 (permalink)  
Antiguo 09/04/2010, 04:37
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: problemas con login.php

pon ob_start debajo del session_start, creo xD

Cita:
Iniciado por Heli0s Ver Mensaje
Prueba poniendo el ob_start() al principio del todo a ver si funciona.


Un saludo

EDIT: Te me adelantaste! :)
  #7 (permalink)  
Antiguo 09/04/2010, 06:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: problemas con login.php

Muchisimas gracias, era eso, ha sido colocarlo y salir, sois unos fieras, gracias

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:18.