PHP - no me funciona la práctica: utilizaremos sesiones, cookies y funciones

 
Vista:
sin imagen de perfil

no me funciona la práctica: utilizaremos sesiones, cookies y funciones

Publicado por dev3rt (12 intervenciones) el 09/04/2017 23:24:39
ENUNCIADO
//He puesto los archivos que he echo en php debajo de su enunciado correspondiente:
//No me funciona correctamente,me falla, espero que alguien me pueda ayudar,muchas gracias y un saludo.
Introducción
En esta práctica utilizaremos sesiones, cookies y funciones para validar en una página web.
estructura
Utilizaremos cuatro archivos:
A. formulari.html
Este archivo será simplemente un formulario que nos pida un nombre de usuario y un password. El archivo nos enviará a validacio.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
<title>LOGIN</title>
</head>
<body>
<form method="post" action="validacio.php">
<p>Introdueix el nom d'usuari:
<input type="text" name="usuari"><br>
</p>
<p>Introdueix la contrasenya:
<input type="password" name="contrasenya"><br>
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>
B. validacio.php
Este archivo utilizará la función comprovaPassword (login) para saber si la pareja usuario / password es correcto. En este caso, iniciará sesión dando valor a la variable de sesión login y nos redirigirá a la página contingut.php. Si comprovaPassword devuelve false, nos redirigirá al formulario inicial con la instrucción header ( "Location: formulari.html");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include 'funcions.inc';
 
$usuari = $_POST['usuari'];
$contrasenya = $_POST['contrasenya'];
//print_r($_POST);
 
 
 
 
 
if(login_ok($usuari,$contrasenya)){
	session_start();
	$_SESSION['$usuari'];
	$_SESSION['$contrasenya'];
	header("Location:  contingut.php");
 
}else{
 
	header("Location:  formulari.html");
 
}
 
?>
C. contingut.php
Será una página en la que, si hemos iniciado sesión, se nos mostrará el mensaje 'Sesión iniciada' y en caso contrario nos mostrará 'Sesión no iniciada' y un link a formulari.html.
1
2
3
4
5
6
7
<?php
if($_SESSION['usuari'] && $_SESSION['contrasenya']){
	echo "SESSION INICIADA";
}else{
	echo "SESSION NO INICIADA".'<a href="formulari.html">Formulari</a>';
}
?>


D. funcions.inc
Este archivo contendrá las funciones necesarias para el proyecto (como mínimo, comprovaPassword).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function login_ok($usuari,$contrasenya){
 
	if($usuari == "Tom" && $contrasenya == "Patata"){
 
		return true;
 
	}else{
 
		return false;
	}
 
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

no me funciona la práctica: utilizaremos sesiones, cookies y funciones

Publicado por xve (6935 intervenciones) el 10/04/2017 07:54:15
No se si hay mas errores, pero el que veo a simple vista, es que no defines las variables de sesión...

Prueba a cambiar el archivo validacio.php por este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
include 'funcions.inc';
 
$usuari = $_POST['usuari'];
$contrasenya = $_POST['contrasenya'];
//print_r($_POST);
 
if(login_ok($usuari,$contrasenya)){
	$_SESSION['$usuari']=$usuari;
	$_SESSION['$contrasenya']=$contrasenya;
	header("Location: contingut.php");
 
}else{
 
	header("Location: formulari.html");
 
}
?>

En el archivo contingut.php tendras que poner nuevamente al inicio del mismo el session_start() para poder leer las variables de sesión... algo así:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
function login_ok($usuari,$contrasenya){
	if($usuari == "Tom" && $contrasenya == "Patata"){
		return true;
	}else{
		return false;
	}
}
?>

coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

no me funciona la práctica: utilizaremos sesiones, cookies y funciones

Publicado por dev3rt (12 intervenciones) el 10/04/2017 16:37:07
Gracias por tu respuesta querido amigo,pero hay algun tipo de problema en el archivo contingut.php
Contingut.php este es su contenido
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
if($_SESSION['usuari'] && $_SESSION['contrasenya']){
 
	echo "SESSION INICIADA";
 
}else{
 
	echo "SESSION NO INICIADA".'<a href="formulari.html">Formulari</a>';
 
}
 
?>
yo creo que esta el problema entre este archivo y al de validacio.php porque a la hora de entrar usuario Tom y contraseña Patata pues dice un error undefined variable:_SESSION in /opt/lampp/htdocs/practica/contingut.php on line 2
y me muestra session no iniciada cuando la sessio deberia de poner como mensaje iniciada,
Un saludo amigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

no me funciona la práctica: utilizaremos sesiones, cookies y funciones

Publicado por dev3rt (12 intervenciones) el 11/04/2017 00:24:37
El archivo contingut.php creo que tiene que ser algo así:pero no se como solucionarlo el problema esta entre este archivo y el de validacio.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
session_start();
if(isset($_SESSION['usuari'])){
 
	echo "SESSION INICIADA";
 
}else{
 
	echo "SESSION NO INICIADA".'<a href="formulari.html">Formulari</a>';
 
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar