Foros del Web » Programando para Internet » PHP »

A que no encuentras el error ;)

Estas en el tema de A que no encuentras el error ;) en el foro de PHP en Foros del Web. Hola amigos! Sinceramente me rompí la cabeza, literalmente, viendo porque no me funciona este script... El problema: No crea las cookies Código PHP: <?php $seccionWeb  ...

  #1 (permalink)  
Antiguo 09/11/2011, 19:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años, 6 meses
Puntos: 1
A que no encuentras el error ;)

Hola amigos!

Sinceramente me rompí la cabeza, literalmente, viendo porque no me funciona este script...

El problema: No crea las cookies

Código PHP:
<?php
$seccionWeb 
"Ingreso al sistema";
include (
"header.php");
include (
"core/config.php");
?>
    
    <!-- BEGIN MAIN WRAPPER -->
    <div id="main-wrapper">
    
        <!-- BEGIN MAIN -->
        <div id="main">
        
            <!-- BEGIN POST -->
            <div id="post">
            
                <h3 class="section-title">Login</h3>
                
                <div class="post-entry">
<?php                
if($_POST["entrar"]){ 
    
    if(
$_POST["username"] && $_POST["password"]){
    
$str=LimpiarQuery($_POST["password"]);
$s hash_init('sha256'0$str);
hash_update($ssha1($str));
$str hash_final($s);
$contrasena md5($str);
$user LimpiarQuery($_POST['username']);
        
$Qr "SELECT * FROM usuarios WHERE nick='".$user."' or email='".$user."'";
        
$Qr1 mysql_query("$Qr");
        
$dtos mysql_fetch_array($Qr1);
        
        if(
$dtos[password] == $contrasena){
        
            
setcookie("id",$dtos["IdUser"],time()+(24 60 60));
            
setcookie("nick",$dtos["nick"],time()+(24 60 60));
            
setcookie("contrasena",$contrasena,time()+(24 60 60));
            
            echo 
"Bievenido! <a href='index.php'>Comienza a navegar!</a>";

            
        } else {
        
            
error("Contraseña incorrecta","1");
            
        }
    
    } else {
    
        
error("Todos los campos son necesarios","1");
    
    }

} else {

echo 
"Bienveid@, <b>Anonimo!</b><br><br>";
 echo
"<form name=\"Login\" method=\"post\" action=\"login.php\">
  Usuario<br>
  <input type=\"text\" name=\"username\" id=\"username\" value=\""
.$_GET[nick]."\">
  <br>
  Contrasena <br>
  <input type=\"password\" name=\"password\" id=\"password\" value=\""
.$_GET[contrasena]."\">
  <br>
  <br>
  <input type=\"submit\" name=\"entrar\" value=\"Entrar\"><br><br>
  - <a href='registro.php'>No estas registrado? Registrate!</a><br>
  - <a href='password.php'>Recordar la contraseña</a>
</form>"
;

}

?>
            
            </div>
            <!-- EMD POST -->
            
        </div>
        <!-- END MAIN -->
        </div>
<?php
require ("side.php");
require (
"foother.php")
?>
Estructura de la Db de usuarios:

IdUser nick password email fecha nombre pais sexo avatar ip rank

Test:
Registro: http://ialianza.net/registro.php
Por si no se quieren registrar
User: test
Pass: test
Login: http://ialianza.net/login.php
Ver variables -> Si sale en blanco funciona (en el codigo html verán un comentario que dice <!-- Usuario correcto --> http://ialianza.net/logeado.php

Te recomiendo que por mas que Ver Variables de error mires en las opciones de tu navegador las cookies para corroborar que no existe.

Espero ayuda.
Gracias!
  #2 (permalink)  
Antiguo 09/11/2011, 19:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: A que no encuentras el error ;)

Tienes razón, no lo encontré...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 09/11/2011, 20:00
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Hola, estoy comenzando a leer y lo primero es que no estas haciendo bien el query:

Código PHP:
Ver original
  1. $Qr = "SELECT * FROM usuarios WHERE nick='".$user."' or email='".$user."'";
  2.         $Qr1 = mysql_query("$Qr");

quita esas comillas a mysql_query

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes razón, no lo encontré...
jeje yo tampoco XD

Por que utilizas HASH_HMAC? no te gustaría trabajar con binarios.

Saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Última edición por iovan; 09/11/2011 a las 20:06
  #4 (permalink)  
Antiguo 09/11/2011, 20:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes razón, no lo encontré...
La idea es intentar ayudarme
Jaja

Cita:
Iniciado por iovan Ver Mensaje
Hola, estoy comenzando a leer y lo primero es que no estas haciendo bien el query:

Código PHP:
Ver original
  1. $Qr = "SELECT * FROM usuarios WHERE nick='".$user."' or email='".$user."'";
  2.         $Qr1 = mysql_query("$Qr");

quita esas comillas a mysql_query


jeje yo tampoco XD

Por que utilizas HASH_HMAC? no te gustaría trabajar con binarios.

Saludos
Comillas eliminadas.

Uso HASH_HMAC porque me enseñaron a hacerlo con eso jaja. ¿Alguna idea para mejorarlo?¿Alguna idea sobre el error?
  #5 (permalink)  
Antiguo 09/11/2011, 20:11
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Si las $_SESSION son cookies que se almacenan en el servidor, entonces imagino que $_COOKIES serán las que se almacenan en el cliente.

Que tal si tu navegador tiene desactivadas las cookies. Podría ser el caso no?
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 09/11/2011, 20:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por iovan Ver Mensaje
Si las $_SESSION son cookies que se almacenan en el servidor, entonces imagino que $_COOKIES serán las que se almacenan en el cliente.

Que tal si tu navegador tiene desactivadas las cookies. Podría ser el caso no?
Podría ser. Pero lamentablemente no es así
Está la prueba para todos ustedes en la web y no funciona... Me estoy desesperando jaja

Me recomendaron a cambiar y poner sessions...

Como seria la sentencia en vez de

Código PHP:
setcookie("id",$dtos["IdUser"],time()+(24 60 60)); 
            
setcookie("nick",$dtos["nick"],time()+(24 60 60)); 
            
setcookie("contrasena",$contrasena,time()+(24 60 60)); 
Para "setear" las sessions

¿ Y a la vez, como las puedo "leer" ?

Gracias!
  #7 (permalink)  
Antiguo 09/11/2011, 20:19
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

dame acceso al servidor por FTP y vemos que se puede hacer.

jaja aunque lo dije en broma si quieres lo puedes hacer tengo como 20 minutos antes de irme igual y te ayudo o igual y no soluciono nada. xD

Un saludo.

P.D: utilizas $_COOKIE['id'] $_COOKIE['nick'] $_COOKIE['contrasena'] para consultar los valores

así como lo escribí?

Para setear la sesión solo es así:

Código PHP:
Ver original
  1. $_SESSION['variable'] = "valor";
  2.  
  3. //Y las lees así:
  4.  
  5. echo $_SESSION['variable'];

Pero no abandones el tema hasta que se solucione ;D. Verás se me ocurre agregar más parámetros en el setcookie
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #8 (permalink)  
Antiguo 09/11/2011, 20:26
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: A que no encuentras el error ;)

Será que...
Código PHP:
Ver original
  1. // MAL
  2. if($dtos[password] == $contrasena){
  3.  
  4. // Bien
  5. if($dtos['password'] == $contrasena){
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 09/11/2011, 20:38
 
Fecha de Ingreso: mayo-2010
Mensajes: 35
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por Sourcegeek Ver Mensaje
Será que...
Código PHP:
Ver original
  1. // MAL
  2. if($dtos[password] == $contrasena){
  3.  
  4. // Bien
  5. if($dtos['password'] == $contrasena){
Gracias Sourcegeek!
Pero no soluciono nada.
  #10 (permalink)  
Antiguo 09/11/2011, 20:58
Avatar de Martriay  
Fecha de Ingreso: noviembre-2010
Mensajes: 80
Antigüedad: 14 años
Puntos: 5
Respuesta: A que no encuentras el error ;)

Te recomiendo que pruebes parte por parte del código a ver por donde va el error, intenta poniendo un echo dentro de cada construcción, es decir, ir comentando las partes con mayor indentación (sentencias dentro de otras), como por ejemplo adentro de cada if() un echo "a este if pude entrar" y así ir probando qué módulos funcionan y cuales no.
  #11 (permalink)  
Antiguo 09/11/2011, 21:00
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: A que no encuentras el error ;)

Bueno, igual estaba mal esa parte
Ahora, ya te dijeron como usar sesiones, pero si quieres continuar con Cookies, deberías comprobar varias cosas:

- ¿Logra entrar al if?, es decir, ¿te imprime Bienvenido?
- ¿Ya viste y comprobaste lo que obtienes en $dtos? (Haz un print_r)
- ¿Cómo logras comprobar si se guardaron o no las cookies? ¿Ya hiciste print_r al array de $_COOKIE?

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #12 (permalink)  
Antiguo 09/11/2011, 21:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: A que no encuentras el error ;)

Sugiero que actives la notificacion de todos los errores, incluidos los notice y warnings, porque?... tengo la leve sospecha de que para crear cookies PHP envia encabezados especificos al navegador y, al tener una salida HTML previa (completamente innecesaria y sin sentido) ya no se pueden crear las cookies.

Revisa el manual, por favor: http://www.php.net/setcookie#refsect...etcookie-notes, aunque no es muy claro al respecto, si menciona lo de hacer uso de ob_* para conservar la salida en buffer antes de crear las cookies.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 09/11/2011, 21:49
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por Triby Ver Mensaje
Sugiero que actives la notificacion de todos los errores, incluidos los notice y warnings, porque?... tengo la leve sospecha de que para crear cookies PHP envia encabezados especificos al navegador y, al tener una salida HTML previa (completamente innecesaria y sin sentido) ya no se pueden crear las cookies.
ehh si si si esto puede ser el problema.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #14 (permalink)  
Antiguo 09/11/2011, 21:57
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: A que no encuentras el error ;)

Hola,

Cita:
Iniciado por Triby Ver Mensaje
... tengo la leve sospecha de que para crear cookies PHP envia encabezados especificos al navegador y, al tener una salida HTML previa ...
Exactamente, las cookies son parte del protocolo HTTP, y van en el header de la petición HTTP, por lo tanto van antes de cualquier salida HTML. No se pueden usar después por el mismo motivo que header().

Saludos,
  #15 (permalink)  
Antiguo 09/11/2011, 22:02
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: A que no encuentras el error ;)

Siguiendo la linea de Triby, tenés que descartar todo tipo de error, a cualquier nivel, que en tu script, y sin ver el código de lo includes, son varios


Hice una simplificación de tu script

Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors',1);
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <title>titulo</title>
  9. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  10. </head>
  11. <body>
  12.   <!-- BEGIN MAIN WRAPPER -->
  13.     <div id="main-wrapper">
  14.      
  15.         <!-- BEGIN MAIN -->
  16.         <div id="main">
  17.          
  18.             <!-- BEGIN POST -->
  19.             <div id="post">
  20.              
  21.                 <h3 class="section-title">Login</h3>
  22.                  
  23.                 <div class="post-entry">
  24. <?php    
  25. $nick = "";
  26. $contrasena= "";            
  27. if(isset($_POST["entrar"])){  
  28.  
  29.     if($_POST["username"] && $_POST["password"]){
  30.     $nick = $_POST['username'];    
  31.     $contrasena=$_POST["password"];
  32.     $dtos = array("password" => "xxxxx", "otracosa" => "zzzz");    
  33.         if($dtos['password'] == $contrasena){
  34.         setcookie("id",'carlos',time()+(24 * 60 * 60));
  35.         setcookie("nick",'charly',time()+(24 * 60 * 60));
  36.         setcookie("contrasena",$contrasena,time()+(24 * 60 * 60));
  37.         echo "Bievenido! <a href='index.php'>Comienza a navegar!</a>";
  38.         }else{
  39.         echo "Contraseña incorrecta";
  40.         }
  41.     }else{
  42.     echo "Todos los campos son necesarios";
  43.     }
  44.  
  45. }else{
  46.  
  47. echo "Bienveid@, <b>Anonimo!</b><br><br>";
  48. echo"<form name=\"Login\" method=\"post\" action=\"login.php\">
  49. Usuario<br>
  50. <input type=\"text\" name=\"username\" id=\"username\" value=\"$nick\">
  51. <br>
  52. Contrasena <br>
  53. <input type=\"password\" name=\"password\" id=\"password\" value=\"$contrasena\">
  54. <br>
  55. <br>
  56. <input type=\"submit\" name=\"entrar\" value=\"Entrar\"><br><br>
  57.  - <a href='registro.php'>No estas registrado? Registrate!</a><br>
  58.  - <a href='password.php'>Recordar la contraseña</a>
  59. </form>";
  60. }
  61.  
  62. ?>    
  63.            </div>
  64.         </div>
  65.         </div>
  66.  
  67. </body>
  68. </html>

en esta estructura, funciona y las cookies se crean.
en tu código original hay cosas como esta

$dtos[password]
que debería ser
$dtos['password']

ó

Código PHP:
Ver original
  1. <input type=\"text\" name=\"username\" id=\"username\" value=\"".$_GET[nick]."\">
  2.   <br>
  3.  Contrasena <br>
  4.  <input type=\"password\" name=\"password\" id=\"password\" value=\"".$_GET[contrasena]."\">

Cuando $_GET no existe, lo corregi en mi ejemplo, declarando
$nick = "";
$contrasena = "";
Antes del $_POST['entrar'] y redefiniéndolos después.

En tu caso, la cosa funciona a medias, porque la condición para la comparación de clave, se cumple (por lo que asumo que la recuperación de la base de datos es correcta), aunque las cookies no se crean, esto último me tiene algo confundido, siempre tengo en cuenta (También señalado por Triby) que segun el manual de php:

Cita:
setcookie() define una cookie a ser enviada junto con el resto de los headers de HTTP. Al igual que otros headers, las cookies deben ser enviadas antes de cualquier tipo de output del script (ésta es una restricción del protocolo). Ésto implica que se hagan las llamadas a esta función anteriormente a cualquier output, incluyendo las etiquetas <html> y <head> al igual que espacios en blanco.
Teniendo en cuenta esto, yo siempre en mis scripts, pongo los headers en una función y los imprimo posteriormente a las cookies, algo así

Código PHP:
Ver original
  1. if($dtos['password'] == $contrasena){
  2.         setcookie("id",'carlos',time()+(24 * 60 * 60));
  3.         setcookie("nick",'charly',time()+(24 * 60 * 60));
  4.         setcookie("contrasena",$contrasena,time()+(24 * 60 * 60));
  5.                                headers();

Pero para probar tu script, puse exprofeso, como se vé los headers al inicio en el HTML, sin embargo las cookies se crearon sin problemas y sin mostrar errores y/o warnings. No sé, puede que haya habido algún cambio, yo ahora probé sobre Windows y con php 5.3.3 con php como fastCgi, cuando vos estas con la 5.2.1, no sé si eso influya.
te recomiendo que pruebes mi script, y sobre ella vayas haciendo una a una las modificaciones a ver en que momento se genera el error.

Saludos

PD
hice una prueba extra subi el test a mi server en internet con php 5.1, las cookies se crearon sin problemas, asi que lo del manual de php, no parece estar al día.
Tambien puse un campo extra para que ingresen un valor cualquiera y verifiquen

Demo
http://foros.emprear.com/php/test_cookie/login.php
una vez loguedos hay un link a la página que lee las cookies
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 09/11/2011 a las 22:20
  #16 (permalink)  
Antiguo 09/11/2011, 22:29
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: A que no encuentras el error ;)

Hola,

Cita:
Iniciado por emprear Ver Mensaje
... hice una prueba extra subi el test a mi server en internet con php 5.1, las cookies se crearon sin problemas, asi que lo del manual de php, no parece estar al día. ...
Posiblemente es una opción de configuración:
http://www.php.net/manual/es/outcont...tput-buffering

Creo que en muchos lugares está configurada en On para evitar este problema, pero indiscutiblemente era una opción a tomar en cuenta.

Saludos,
  #17 (permalink)  
Antiguo 09/11/2011, 22:58
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: A que no encuentras el error ;)

Que pasa si la salida previa es mayor a 4096 bytes (valor por default)?

Cita:
Iniciado por php.ini para PHP v5.3.8
; Output buffering is a mechanism for controlling how much output data
; (excluding headers and cookies) PHP should keep internally before pushing that
; data to the client. If your application's output exceeds this setting, PHP
; will send that data in chunks of roughly the size you specify.

; Turning on this setting and managing its maximum buffer size can yield some
; interesting side-effects depending on your application and web server.
; You may be able to send headers and cookies after you've already sent output
; through print or echo.
You also may see performance benefits if your server is
; emitting less packets due to buffered output versus PHP streaming the output
; as it gets it. On production servers, 4096 bytes is a good setting for performance
; reasons.
; Note: Output buffering can also be controlled via Output Buffering Control
; functions.
; Possible Values:
; On = Enabled and buffer is unlimited. (Use with caution)
; Off = Disabled
; Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = On
De que se puede hacer, por supuesto que se puede, sin embargo, creo que es preferible manipular la salida correctamente que estar contando o dependiendo de la cantidad de bytes que se enviaron para que las cosas funcionen. Y, aun con esta configuracion, seria mucho mas confiable usando ob_* porque uno mismo tiene el control y, de todos modos... sigue sin gustarme la idea.

P.D.: emprear, apuesto a que tu HTML improvisado no llega a los 4kb antes de crear las cookies y el original de HyQnet si sobrepasa ese limite.

P.D.2: Para salir de dudas copie el codigo de emprear, lo pegue en Notepad++ y son solo 2022 bytes, incluyendo el PHP.
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 09/11/2011 a las 23:04
  #18 (permalink)  
Antiguo 09/11/2011, 23:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: A que no encuentras el error ;)

Triby:
en eso estoy. le estoy agregando data...
no me salia. pero para colmo tengo activado el gzip, asi que me quede corto, voty a ver si le pongo mas datos
ya lo modifiqué,
el tamaño en el disco es de 206kb
con el gzip reduce a 28248
mi phpinfo reporta que output_buffering esta en 4096, y no muestra ningún error

Corrección:
Ya pude generar el error, el tema pasaba por agregar datos antes de la creación de las cookies, el form de acceso quedo en medio de la página por si les interesa,
y las cookies NO se crean

Corrección 2:
El que no esta al dia con el manual soy Yo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 09/11/2011 a las 23:37
  #19 (permalink)  
Antiguo 09/11/2011, 23:56
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: A que no encuentras el error ;)

Hola,

Cita:
Iniciado por Triby Ver Mensaje
... sigue sin gustarme la idea. ...
Creo que no me di a entender bien

Básicamente estaba aseverando lo que habías escrito anteriormente, y haciendo la aclaración del motivo por el cual posiblemente a emprear si le funcionaba. Es decir, al usar gzip está usando un método de buffer, o estaba usando el buffer de ouput_buffer.

A algunos les servirá usar el gzip, a otro el output_buffer y a otros usar alguno manual o ninguno, aunque personalmente prefiero no usar ninguno. Dependerá de cada quien investigar para que sirven y utilizar el método que mas le convenga.

Saludos,
  #20 (permalink)  
Antiguo 10/11/2011, 13:08
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por iovan Ver Mensaje
Si las $_SESSION son cookies que se almacenan en el servidor, entonces imagino que $_COOKIES serán las que se almacenan en el cliente.

Que tal si tu navegador tiene desactivadas las cookies. Podría ser el caso no?
$_SESSION no es una cookie, requiere de una cookie en el cliente para identificar la sesión del usuario en el servidor, y si no, pasar el SID por GET u alguna otra forma, consulte el manual de PHP
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #21 (permalink)  
Antiguo 10/11/2011, 15:17
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Hola maycolalvarez la verdad es que tienes razón. Yo había dijo eso como para resumir hehe.

Mira te cuento yo había entendido que la Sessiones eran cookies por que se guardan en tmp del servidor:

Si buscan en el tmp de tu servidor los archivos que empiezan por sess_ seguido del id de sesion que genera el método session_id(). Si abre este archivo con un editor se ve algo como esto

sesion_name|x:#:"this_value"

es lo que consultas en PHP como

Código PHP:
Ver original
  1. echo $_SESSION['session_name']; // Imprime this_value
----------------------------------------------------------------------------------------

Es por este concepto que dije "Bueno si las sesiones se guardan en el servidor de la misma forma que las cookies se guardan en el cliente, tal ves sesiones son cookies del servidor" jaja.

Aunque ya me he puesto a leer bien el apartado "Funcionamiento de HTTP y Sessions" del libro libro Professional PHP 6 de WROX.

Si te vas a la página 316 y comienzas a leer hasta la 318 se puede entender que las sesiones son cookies, sin embargo si lees más podemos llegar a la conclusión de que las sesiones no son cookies de servidor si no son referencias a cookies que se crean en el navegador. Eso que has tu has dicho.

En este foro siempre se aprende, gracias amigo.

Saludo :D
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #22 (permalink)  
Antiguo 10/11/2011, 19:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: A que no encuentras el error ;)

Bueno... y a todo esto... aqui estamos discutiendo alegremente sobre encabezados, configuracion, opciones, buenas practicas, malas practicas, etc. y yo me pregunto donde se habra metido HyQnet que no ha venido a decir si soluciono el problema o no.

Bueno, sigamos con lo nuestro...


iovan, me intriga y, a la vez, me hace dudar un libro Profesional de PHP 6 cuando en el sitio oficial http://www.php.net/ aun esta en pañales y queriendo aprender a caminar la version 5.4

1- Podrias contarnos un poco acerca de ese libro?
2- Te enseñan a manejar algun framework? y... cual o cuales?
3- Supongo que sera con programacion orientada a objetos... algun patron en especial como MVC?
4- Tienes algun punto de comparacion con otros tutoriales, libros o sitios de aprendizaje?

P.D. No me di cuenta que hay una tabla de contenidos!
http://www.wrox.com/WileyCDA/WroxTit...fContents.html

Sigo editando
Cita:
Iniciado por http://p2p.wrox.com/book-beginning-php-6-apache-mysql-6-web-development-isbn-9780470391143/72947-where-can-you-download-php6.html
Almond pregunta: I have looked and cannot find where to download PHP6, I can only find PHP5 or earlier. Any help is greatly appreciated.
jminatel (Wrox Staff) responde: Hi Almond. For PHP 6 downloads, look at: http://snaps.php.net/
Tengo la leve sospecha de que esa pagina de PHP esta desactualizada o la gente de Wrox proviene del futuro.

Despues, en ese mismo tema, alguien sugiere un enlace para descargar PHP6... logicamente, no en php.net: http://kromann.info/php.php... Oh my dog!!!
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 10/11/2011 a las 19:56 Razón: Oh my dog!
  #23 (permalink)  
Antiguo 10/11/2011, 21:06
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por Triby Ver Mensaje
...
iovan, me intriga y, a la vez, me hace dudar un libro Profesional de PHP 6 cuando en el sitio oficial http://www.php.net/ aun esta en pañales y queriendo aprender a caminar la version 5.4
Hola Triby, cuando yo vi este libro sentí lo mismo, -Como es que se hace un PROFESSIONAL PHP versión 6 cuando el sitio oficial estará por el 5.X y en beta, así como nos dices tu.

La editorial Wrox hasta el momento no me ha fallado, me gustan los libros param i punto de vista están completos y divertidos porque suelen mostrar muchos paradigmas de la programación.

Professional PHP 6 no es un libro que enseña a programar, si no más bien está orientado a programadores que conocen bien o en un término más o menos bien, el lenguaje PHP.

Lo que me gustó del libro: Es que los autores no se detienen para enseñar que es programación orientada a objetos (Sí lo hacen pero solo en el 1° capítulo que consta de 30 páginas de una manera muy resumida)

Estoy pensado que el libro está enfocado en la seguridad. Hay mucha pero mucha información sobre ataques hacker, como prevenirlos y etc... en fin se trata de como lograr aplicaciones robustas con PHP. También se habla mucho sobre servicios web, administración de proyectos y arquitectura de sistemas.

En total son 750 páginas llenas de texto (muy pocos ejemplos con código)

Apesar de que este libro recopila bastante información muy valiosa, sobre PHP 6 tiene poco.

Yo lo llamaría PROFESSIONAL PHP 5 and a little bit of PHP 6 (jajaja)

Lo que no me gusto: No he visto que hable sobre Frameworks.

LO QUE ME GUSTA MUCHISIMO: Es el primer libro de PHP que tengo en mis manos (de los que he ojeado y de los que he leido) que trata el tema de manera real sobre seguridad.

Triby. Yo tengo la versión en Español el editado por anayamultimedia, Si gustas lo comienzo a escanear (unas 50 a 100 paginas por día) para que lo tengas y le des el visto bueno, o el visto malo :D

Un saludo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #24 (permalink)  
Antiguo 10/11/2011, 21:30
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por Triby Ver Mensaje
Bueno... y a todo esto... aqui estamos discutiendo alegremente sobre encabezados, configuracion, opciones, buenas practicas, malas practicas, etc. y yo me pregunto donde se habra metido HyQnet que no ha venido a decir si soluciono el problema o no.

Jaja es cierto ya no ha regresado. Bueno de cualquier forma nosotros nos estamos divirtiendo, verdad?

Sobre la página que está des-actualizada o proviene del futuro. Yo creo que lo pasó es que Wrox se adelanto un poco al sacar un libro sobre PHP 6 profesional. Sabes yo lo veo como si fuera de PHP 5 con una explicación de cosas que cambian en el 6 y nuevas clases para facilitar el trabajo, etc...

No he encontrado links para descargarlo en la versión de español.

Un saludo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #25 (permalink)  
Antiguo 10/11/2011, 22:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por iovan
Triby. Yo tengo la versión en Español el editado por anayamultimedia, Si gustas lo comienzo a escanear (unas 50 a 100 paginas por día) para que lo tengas y le des el visto bueno, o el visto malo :D
Te lo agradezco, pero no es necesario, con la version en ingles tengo para entretenerme un rato.

Gracias.
__________________
- León, Guanajuato
- GV-Foto
  #26 (permalink)  
Antiguo 11/11/2011, 08:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: A que no encuentras el error ;)

en efecto @iovan, los datos de Session se almacenan en el server, pero no son las "cookies" del server, esto puede prestarse a confusiones.

@triby: sinceramente me parece muy prematuro un libro profesional de PHP 6 cuando éste apenas está en beta , al menos de mi parte esperaría un RC para empezar a estudiar sobre el tema, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #27 (permalink)  
Antiguo 11/11/2011, 09:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: A que no encuentras el error ;)

Cita:
Iniciado por maycolalvarez Ver Mensaje
@triby: sinceramente me parece muy prematuro un libro profesional de PHP 6 cuando éste apenas está en beta , al menos de mi parte esperaría un RC para empezar a estudiar sobre el tema, saludos
Yo creo que está en alpha todavía...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #28 (permalink)  
Antiguo 11/11/2011, 10:56
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: A que no encuentras el error ;)

Pues ese libro para mi nada es de PHP 6, es más enfocado a la seguridad y en el manual PHP sólo encuentras algún comentario sobre esta versión pero no tienen planeado nada en la documentación. Bastante trabajo están teniendo para sacar la 5.4

Que show por alguien que no activa los errores y quiere que nosotros los adivinemos

PHP 5.4 RC1 released

Added class member access on instantiation (e.g. (new Foo)->bar()).
Changed silent conversion of array to string to produce a notice.
Numerous bug fixes and improvements in the Core and other extensions.

Por lo menos ya va salir pronto la versión 5.4
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #29 (permalink)  
Antiguo 11/11/2011, 11:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: A que no encuentras el error ;)

hola gente experta y no experta o fraudes (como yo)

lo mas facil para saber que pasa como esas malditas cookies mescladas con sessions
es hacer un x-debug con netbeans o eclipse y ver el comportamiento
  #30 (permalink)  
Antiguo 11/11/2011, 14:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: A que no encuentras el error ;)

Bueno, como ya me temia, ese numero es solo estrategia de venta, basta con ver que en su sitio ofrecen libros, no solo acerca de PHP 6, tambien de MySQL 6...

Sugiero que los que participamos en esta seccion de FDW hagamos un sitio de PHP 10 y le quitemos el mercado a Wrox.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: cookie, problema(1)
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 21:14.