Problème d'emploi de Isset
Posté : 25 févr. 2005, 14:38
Bonjour,
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 de verif.php
Voilà, maintenant le problème est que même si je rentre aucun pseudo ou mot de passe dans Auth.php, il me dis toujours que je suis bien identifié. en décodé, je pense que la requète if (isset['...) est mal écrite.
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.
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.