<?php
session_start();
$conectarbd= mysql_connect( "localhost", "root", "");
if($conectarbd){
$conectar_tabla= mysql_select_db("bag");
if($conectar_tabla){
$comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$_POST['mail']."' && pass='".$_POST['pass']."'");
if($comprueba){
$nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$_POST['mail']."' && pass = '".$_POST['pass']."'"));
$_SESSION['nick']= $nick[0];
if($_SESSION['nick']!= ""){
echo "<p> ".$nick[0]." </p>";
}else{
header("Location: ../index.html");
}
}
}
}
session_destroy();
?>
Alguien podria orientarme un poco con el tema de sesiones?
Me he mirado el manual de php --> http://www.php.net/manual/es/features.sessions.php
Pero siguiendo esos pasos, no se porque me salen errores:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\projecte\pag\content.php:153) in C:\xampp\htdocs\projecte\pag\content.php on line 154
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\projecte\pag\content.php:153) in C:\xampp\htdocs\projecte\pag\content.php on line 154
Si quito el session_start(); y session_destroy(); , funciona bien. Lo que pasa es que quiero privatizar esa pagina para que el que no esté registrado/autentificado no pueda verla.
la verdad no se por que no funciona, debe ser porque usas xampp, te recomiendo AppServ a menos que uses perl tambien.
prueba con esto:
<?php
$mail="johnconnor";
$pass="123";
session_start();
$conectarbd=mysql_connect("localhost","root","laclave");
if($conectarbd){
$conectar_tabla= mysql_select_db("dbusers");
if($conectar_tabla){
$comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass='".$pass."'");
if($comprueba){
$nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass = '".$pass."'"));
$_SESSION['nick']=$nick[0];
if($_SESSION['nick']!= ""){
echo "<p> ".$nick[0]." </p>";
}else{
header("Location: ../index.html");
}
}
}
}
session_destroy();
?>
CUIDADO CON LOS ATAQUES SQL!
Saludos!
El problema está claro, en algun lugar estas 'printando' algo, es decir enviando algo al documento html generado. Esto no se puede hacer antes de usar
header("Location: ../index.html");
Puesto que una vez que printamos algo (por ejemplo
echo 'hola') ya no se permite modificar la cabecera del documento con header(location...), por ejemplo el siguiente codigo:
<?php
echo "printando algo";
header("Location: http://www.google.com/");
?>
Te da el siguiente warning ( y obviamente luego no redirije a www.google.com):
Citarprintando algo
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\PoC.php:2) in C:\AppServ\www\PoC.php on line 3
Cita de: JohnConnor en 3 Mayo 2012, 17:19 PM
la verdad no se por que no funciona, debe ser porque usas xampp, te recomiendo AppServ a menos que uses perl tambien.
prueba con esto:
<?php
$mail="johnconnor";
$pass="123";
session_start();
$conectarbd=mysql_connect("localhost","root","laclave");
if($conectarbd){
$conectar_tabla= mysql_select_db("dbusers");
if($conectar_tabla){
$comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass='".$pass."'");
if($comprueba){
$nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass = '".$pass."'"));
$_SESSION['nick']=$nick[0];
if($_SESSION['nick']!= ""){
echo "<p> ".$nick[0]." </p>";
}else{
header("Location: ../index.html");
}
}
}
}
session_destroy();
?>
CUIDADO CON LOS ATAQUES SQL!
Saludos!
si.. los ataques sql seran en breves mi siguiente ojeada xd gracias!
Cita de: El As del Club Paris en 3 Mayo 2012, 18:23 PM
El problema está claro, en algun lugar estas 'printando' algo, es decir enviando algo al documento html generado. Esto no se puede hacer antes de usar
header("Location: ../index.html");
Puesto que una vez que printamos algo (por ejemplo echo 'hola') ya no se permite modificar la cabecera del documento con header(location...), por ejemplo el siguiente codigo:
<?php
echo "printando algo";
header("Location: http://www.google.com/");
?>
Te da el siguiente warning ( y obviamente luego no redirije a www.google.com):
aaaaaaaaamigo jaajajaja muchas gracias! Vaya error más tonto..
ya lo solucioné con javascript/php
echo"<script language='javascript'>window.location='../index.php';</script>;";
gracias !