PHP - Seission avec coockies

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 23 nov. 2009 à 20:21
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 25 nov. 2009 à 14:55
Bonjour,

j'ai une page ou je demande le prénom du visiteur pour lui dire bonjour, bienvenue, avec session_start(); et je voudrai que dans le formulaire ou il tape son prémon que l'ordinateur ce rappelle de son prénom et lui affiche des qu'il vas cliquer sur le formulaire pour réinscrire son prénom, quand il revient, donc je pense au coockies.

j'ai donc récupérai un code que j'ai modifier mais sa ne marche pas.
Quelqu'un pourai t'il m'expliquer pourquoi ?

Merci d'avance, coordialement.

-----------------------le code en entier------------------------------
<?php session_start(); // mettre au début de chaque page obigatoire

// Si il y a un cookie $_COOKIE['login']
if(isset($_COOKIE['login']))
{
// Alors c'est tout bon, on cree donc une session pour etre connecte
$_SESSION['SiteAdmin'] = $_COOKIE['login'];
// Et on envoie le visiteur a la page d'accueil de la gestion du site
header('Location: ./gestion_accueil.php');
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Prénom visiteur</title>
</head>

<div class="entete" >

<?php
include('/Program files 2/wamp/www/maison/commun/template/entete.php'); // appel l'entete du site
?>


</div> <div class="pied">

</div>

<body>

<?php
// Si il y a une variable $_POST['login']
if(isset($_POST['login']))
{
// Si la variable $_POST['login'] vaut "Justin"
if($_POST['login'] == 'Justin')
{
// On definit une variable $_SESSION['SIteAdmin'] qui vaut : le login
$_SESSION['SiteAdmin'] = $_POST['login'];

//======= CREATION D'UN COOKIE
// Date d'expiration = Timestamp actuel + 30 000 000 secondes soit presque un an
$date_expiration = time() + 30000000;
// Ecrire le cookie(nom du cookie, valeur du cookie, date d'expiration)
setcookie("login",$_POST['login'],$date_expiration);
//============================

// On envoie l'administrateur sur la page de d'accueil de gestion
header('Location: ./gestion_accueil.php');
}

else // Si le login ou mot de passe est incorrect
{
echo 'Mauvais login et/ou mot de passe';
}
}
// Si il n'y a pas eu de validation du formulaire, on ne fait rien
else { }

?>
<center><h1>bonjour visiteur, veuillez taper votre prénon</h1>
<form id="identification" action="cible.php" method="post" name="identification">
Login : <input type="text" name="login" size="20"/><br />
<input type="submit" name="validation" value="Validation"/>
</form></center>


<?php
include('/Program files 2/wamp/www/maison/commun/template/pied.php3'); // appel le pied de page
$_COOKIE['prenom_visiteur']
?>

</body>
</html>
-----------------------------------fin du code----------------------------------------------
A voir également:

6 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
23 nov. 2009 à 21:50
bonsoir,

il faut créer les cookies avant de générer du code.

j'ai corrigé a vu d'oeil mais je n'ai pas testé

aussi tu commente beaucoup trop

de genre :
// Si il y a un cookie $_COOKIE['login']
if(isset($_COOKIE['login'])) 

ça ne sert à rien là on voit plus vite ce qu'il se passe en lisant juste
if(isset($_COOKIE['login']))


voilà le code corrigé mais non testé:

<?php

	session_start();

	if(isset($_COOKIE['login'])) {
		$_SESSION['SiteAdmin'] = $_COOKIE['login'];
		header('Location: ./gestion_accueil.php');// envoie le visiteur a la page d'accueil de la gestion du site
	}

	if(isset($_POST['login'])) {
		if($_POST['login'] == 'Justin') {
			$_SESSION['SiteAdmin'] = $_POST['login'];
			$date_expiration = time() + 30000000;
			setcookie("login",$_POST['login'],$date_expiration);
			header('Location: ./gestion_accueil.php'); // envoie le visiteur a la page d'accueil de la gestion du site
		}
		else $badPass = 'Mauvais login et/ou mot de passe';
	}
	
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Prénom visiteur</title>
</head>
<body>

	<div class="entete" >
<?php
	include('/Program files 2/wamp/www/maison/commun/template/entete.php'); // appel l'entete du site
?>
	</div>

	<div class="pied"></div>

<?php if(isset($badPass)) echo '<p>'.$badPass.'</p>'; ?>

	<div style="margin:auto;">
	<h1>bonjour visiteur, veuillez taper votre prénon</h1>
	<form id="identification" action="cible.php" method="post" name="identification">
		Login : <input type="text" name="login" size="20"/><br />
		<input type="submit" name="validation" value="Validation"/>
	</form>
	</div>


<?php
	include('/Program files 2/wamp/www/maison/commun/template/pied.php3'); // appel le pied de page
	//$_COOKIE['prenom_visiteur'];
?>

</body>
</html> 
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
24 nov. 2009 à 03:42
bonsoir,

J'ai testé mais ca ne fonctionne pas, je suis un peut perdu, car voila mon code que j'utilisé avant de récupere ce script php que j'ai modier.
Pour bien comprendre je désire la même chose mais avec un coockies afin que lorsque le visiteur revient sur le site son prénom s'affiche automatiquement et qu'il clique sur valider.

Merci d'avance, coordialement.



-------------------voila ce que j'utiliser avant---------------------------------

<?php session_start(); // mettre au début de chaque page obigatoire ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Prénom visiteur</title>
</head>

<div class="entete" >

<?php
include('/Program files 2/wamp/www/maison/commun/template/entete.php'); // appel l'entete du site
?>

</div> <div class="pied">

</div>

<body>

<p align="center">
Bonjour visiteur.<br />
Veuillez taper votre prénom :</p>

<form action="cible.php" method="post">
<p align="center">
<input type="text" name="prenom" /> <input type="submit" value="Valider" />


<?php
include('/Program files 2/wamp/www/maison/commun/template/pied.php3'); // appel le pied de page
?>

</body>
</html>

------------------------------------------------------fin-------------------------------------------------
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
24 nov. 2009 à 11:45
tu as des bases en php?
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
24 nov. 2009 à 13:43
Bonjour,

oui, mais pas suffusant créer un script.

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
24 nov. 2009 à 21:08
alors il te faut apprendre !

https://openclassrooms.com/fr/

inutile de faire ça si tu ne sais rien en faire...
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 nov. 2009 à 14:55
Ton système permet à n'importe qui de se connecter avec le pseudo qu'il veut !
Stockes à la fois le login et le mot de passe, ensuite, vérifie s'ils correspondent.
0