entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

cual es el problema en mi codigo

tengo un problema que no retorna ningun error, aparentemente funciona todo bien excepto algunas cosas, el codigo esta escrito en php y opera junto con mysql

el primer problema es que mi codigo no imprime los datos de mis variables globales en la pagina perfil_usuario, y el otro problema es que cuando cierro sesion no redirecciona a mi pagina inicio

<?php  //este es el script verificador.php que verifica si los datos existen en la base de datos, no hay problema ninguno, hasta que llega el turno del otro script perfil_usuario.php
// en mi base de datos hay un usuario ficticio con los siguientes datos nombre,telefono,emaily pass

$login = $_POST['login']; $pass = $_POST['password'];

require("conexion.php");

session_start();

$comando = "SELECT * FROM utenti WHERE email ='$login' AND password ='$pass' ";

$consulta = mysql_query($comando) or die ("Error en la query: ".mysql_error());
$consulta2 = mysql_fetch_array($consulta) or die ("Error en la query: ".mysql_error());

 if ($consulta2 )
 {

  $_SESSION ['id']      =  $fila ['id'];
  $_SESSION ['nome']    =  $fila ['nome'];
  $_SESSION ['email']   =  $fila ['email'];
  $_SESSION ['tel']     =  $fila ['telefono'];

  header ("location:perfil_usuario.php");
}

else
{
echo "usurio inexistent";
}

mysql_close($conex);

?>

<?php // este es el script encargado de mostrar los datos recuperadas de mi base de datos mediante la variable global session, por una causa desconocida no imprime nada ni redirege a mi pagina inicio
session_start();
require("conexion.php");
if (!$_SESSION){  header("location:inicio.php");}

print "<h2>perfil privado</h2><br>";

echo $_SESSION['nome'];
echo $_SESSION['email'];
echo $_SESSION['tel'];

?>
<a href="logout.php">cerrar sesion</a>

luis2016 comentado Diciembre 3, 2016

Acaso en el archivo verificador.php no se deberia poner session_start() en la primera linea y después el resto del código?

steven comentado Diciembre 3, 2016

el problema ya esta resuelto, era un error tan simple con la variable, no estaba deifida correctamente.

1 Respuesta

2votos

Leonardo-Tadei Puntos192390

Hola @stevenpro97,

seguramente tenés varios errores y warnings que no estás viendo.
Modificá tu archivo php.ini para que tenga los valores usados para desarrollo, principalmente:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL
html_errors = On
log_errors = On

y relanzá Apache para que tome los cambios y veas qué está pasando.

Por lo que se ve, si bien la query se ejecuta bien, el vector $fila no tiene datos y te quedan vacías las variables de sesión. Estos errores se ven si ponés el php.ini con los valores de desarrollo.

Saludos cordiales

steven comentado Diciembre 1, 2016

el archivo creo que esta bien configurado, por si las dudas te lo muestro

; display_errors
; Default Value: On
; Development Value: On
; Production Value: Off

; display_startup_errors
; Default Value: Off
; Development Value: On
; Production Value: Off

; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

; html_errors
; Default Value: On
; Development Value: On
; Production value: On

; log_errors
; Default Value: Off
; Development Value: On
; Production Value: On

hay por debajo mas lineas que omiti, me gustaria saber por curiosidad para que sirven pero no creo que sea importante

Leonardo-Tadei comentado Diciembre 1, 2016

Estimado @stevenpro97,

todo lo que empieza con ; (punto y coma) es un comentario y no tiene efecto en la configuración...

Lo que copiaste y pegaste es el principio del archivo, que es una explicación/breve manual de lo que significa cada cosa.

steven comentado Diciembre 1, 2016

quien iba a imaginar que esas comas eran para definir los comentarios, aunque me extranaba un poco, no entiendo porque los lenguajes de programacion y otros no comparten la misma sintaxis, creo que de esta manera seria mas rapido aprender a programar, hace poco me enterado que google hizo su propio lenguaje, me da la impresion que es una copia de c++ con algunas modificaciones.
en lugar de semplificar y extender el funcionamento lo hacen mas dificil y complicado como por ejemplo el famoso angular

steven comentado Diciembre 1, 2016

procedi a remover los comentarios y quite todas las comas de las lineas de configuracion pero mi problema sigue ahi, creo haber descubierto el error pero no se de que manera resolverlo, como puedo rescatar los datos de mi db para imprimirlos en mi pagina perfil_usuario?

Leonardo-Tadei comentado Diciembre 1, 2016

Cuales de todos los comentarios sacaste? Hay algunos que son la explicación del valor. Si los sacás realmente a todos, el archivo completo debería ser ignorado, y los valores por default usados son los valores de producción, no los de desarrollo, que son los que te hacen falta.

PD: hay antecedentes de por qué cada lenguaje de programación tiene la sintaxis que tiene y cómo define los comentarios.
En este caso, no tiene sentido tu planteo, porque el php.ini no está escrito en ningún lenguaje de programación!
PPD: angular tampoco es un lenguaje de programación. Es un framework construido sobre JavaScript.

Por favor ingresa o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

¿Eres Usuario Apple?

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta