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>

1voto

luis2016 comentado

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

1voto

steven comentado

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

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

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

0voto

steven comentado

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

1voto

Leonardo-Tadei comentado

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.

1voto

steven comentado

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

1voto

steven comentado

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?

1voto

Leonardo-Tadei comentado

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, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

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

Conecta