bonjour,
J'ai une page php qui 'génère' mes articles auquelles je désire permettre l'ajout de commentaire au visiteur identifié..
un exemple .
le formulaire à droite vérifie l'identité du visiteur s'il veut poster ( vous pouvez essayer avec "admin" , "admin") .
Si l'identification est ok , le code insére la partie 'ajout de commentaire' en bas de la page ....
Malheureusement mon test d'insertion ne fonctionne que lorsque on "recharge à nouveau " la page après une identification réussie ...!
le code d'insertion :
il ne prend en compte la varaible $_SESSION['nom'] qu'après un 'reload' , alors que cette varaible existe puisqu'elle affiche le message "ok registration: vous etes correctement identifie" (j'utilise également un test if(!isset ...)
Dans le flux ce code se trouve à la suite "ajouter un commentaire" (ce qui a peut-etre son importance)
Code d'authentification :
... je compte scinder les instructions en fonction par la suite
si vous avez une idée du 'pourquoi' je dois faire un "reload" ..!??
Merci d'avance .
Modifié par kzone (15 Jun 2007 - 22:16)
J'ai une page php qui 'génère' mes articles auquelles je désire permettre l'ajout de commentaire au visiteur identifié..
un exemple .
le formulaire à droite vérifie l'identité du visiteur s'il veut poster ( vous pouvez essayer avec "admin" , "admin") .
Si l'identification est ok , le code insére la partie 'ajout de commentaire' en bas de la page ....
Malheureusement mon test d'insertion ne fonctionne que lorsque on "recharge à nouveau " la page après une identification réussie ...!

le code d'insertion :
<!-- pour poster il faut etre identifier -->
<?php
// si les identifiant de session nom n'existe pas c'est que l'utilisateur
// n'est pas identifié et donc ne peut poster
// on N'AFFICHERA PAS le formulaire d'ajout de texte
if(!isset($_SESSION['nom'])) {
echo 'pour poster vous devez vous ';
?><a href="#identification"> identifiez</a><?php
}
// si existe , c'est que utilisateur est identifié ==> affice le
// fomulaire d'ajout de commentaire
else {
echo 'utilisateur : ' . $_SESSION['nom'];
?><!-- Partie Html -->
<form action="" method="post">
<p>
<label for="textelibre">Ajouter un commentaire :</label>
<textarea name="textelibre" value=""></textarea>
</p>
<p>
<input type="submit" name="ajout" value="ajouter"/>
</p>
</form><!-- fin partie Html -->
<?php // retour PHP
}
?>
il ne prend en compte la varaible $_SESSION['nom'] qu'après un 'reload' , alors que cette varaible existe puisqu'elle affiche le message "ok registration: vous etes correctement identifie" (j'utilise également un test if(!isset ...)
Dans le flux ce code se trouve à la suite "ajouter un commentaire" (ce qui a peut-etre son importance)
Code d'authentification :
<?php
// initialisation de la session
//session_start();
// si le formulaire n'a pas été envoyé => $_POST n'existe pas
// dond si n'existe pas on affiche le formulaire
if(!isset($_POST['send'])) {
// on affiche
?><!-- passage au code HTML -->
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<p>
<label for="nom">Pseudo :
<input name="nom" type="text"/>
</label>
</p>
<p>
<label for="password">Mot de Passe :
<input name="password" type="text"/>
</label>
</p>
<!-- soummission du formulaire -->
<p>
<input type="submit" name="send" value="s'identifier"/>
</p>
</form>
<?php
// l'utilisateur peut s'etre identifier dans un autre page
}
else {
// retour PHP
// sinon (si formulaire a déjà été envoyé et donc que $_POST['send'] existe
// on peut vérifier les informations entrées par l'utilisateur avec
// celle contenue dans la base de données.
// recuperation des donnees
$nom = addslashes($_POST['nom']);
$motdepasse = $_POST['password'];
// string requete a la base
$requete = "SELECT motdepasse".
"FROM authentification".
"WHERE nom='$nom'";
// APPEL DE CONNECTION
$dbhost = 'localhost';
$dblogin = '*******';
$dbpass = '********';
$dbname = 'Commentaire';
// connection au serveur
$con = mysql_connect($dbhost, $dblogin, $dbpass) or die ("ipmosible de se connecter au serveur");
// connection a la base
mysql_select_db($dbname, $con) or die("impossible de se connecter a la base");
$req = mysql_query("SELECT motdepasse FROM authentification WHERE nom='$nom'") or die ("erreur sql syntaxe");
$resultat = mysql_fetch_array($req);
// traitement des resultat
if($motdepasse != NULL && $resultat['motdepasse'] == $motdepasse) {
// le mot de passe est valide et l'utilisateur est identifié
// on change id session
session_regenerate_id();
// sauvegarde des infos des varaibles de sessions
$_SESSION['nom'] = $nom;
echo "ok registration: vous etes correctement identifie";
} // fin de if
else {
// pas ok
echo "utilisateur inconnu ";
} //fin de else
} // fin de ELSE
?>
... je compte scinder les instructions en fonction par la suite

si vous avez une idée du 'pourquoi' je dois faire un "reload" ..!??
Merci d'avance .
Modifié par kzone (15 Jun 2007 - 22:16)