Je début en php (j+2) et j'essaye de m'inspirer d'un livre que vous citiez dans vos colonnes : PHP 5 avancé. Maintenant, j'essaye de recopier bètement pour me familiariser avec le code et j'ai quelque soucis à comprendre un emploi d'ISSET donné par le bouquin (en clair cela ne fonctionne pas!)
je m'explique : (pour ceux qui ont le bouquin : page 243 & 244)
deux fichiers auth.php et verif.php.
Le 1er auth.php est une méthode POST pour envoyer en superglobale deux informations (pseudo et motdepasse) vers verif.php
code de auth.php :
Code : Tout sélectionner
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Identification</title>
</head>
<body>
<form method ="post" action="verif.php">
<p>
<label for"nom">Pseudo :</label>
<input type="text" name="pseudo">
</p>
<p>
<label for"motdepasse">Mot de Passe :</label>
<input type="password" name="motdepasse">
</p>
<p>
<input type ="submit" value="s'identifier">
</p>
</form>
</body>
</html>Code : Tout sélectionner
<?php
//initialisation de la session
session_start();
//si on a reçu toutes les données du formulaire
if (isset ($_POST['pseudo']) and isset ($_POST['motdepasse'])) {
//on les reprend
$nom=$_POST['pseudo'];
$motdepasse=$_POST['motdepasse'];
//dans notre cas, tous les mots de passe sont valides
//on sauvegarde donc son nom dans la session
$_SESSION['nom']=$nom;
$message ='Vous êtes correctement identifié';
//en cas de non identification - non utlisé
//$message 'Mauvais mot de passe';
//$message .=<A href="auth.php">retour</A>';
} else {
//un des champs n'est pas rempli
$message ='le login ou le mot de passe est vide <BR>';
$message .='<A href="auth.php">retour</A>';
$message .='<BR> $nom';
}
?>
<HTML>
<HEAD><TITLE>Identification</TITLE></HEAD>
<BODY>
<P>
<?php echo $message ?>
</P></BODY>
</HTML>
A propos, pour ceux qui ont le livre, je ne suis pas expert mais la ligne original était :
if (isset ($_POST['nom']) and isset ($_POST['motdepasse'])) {
au lieu de
if (isset ($_POST['pseudo']) and isset ($_POST['motdepasse'])) {
et c'est moi qui est changé 'nom' en 'pseudo'. Me suis-je trompé ou ai-je corrigé une coquille du livre. (et dans ce cas je me dirais que je débute bien !!!). Merci de votre aide.