variable de session remplacé par un un input ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : variable de session remplacé par un un input ?

par DocType » 20 janv. 2006, 04:41

A cette heure-ci je ne vois pas de soucis. Peut être que tout a l'heure oui :lol:
m'enfin, vérifie bien, car à un moment ou un autre, tu as dû incrémenter ta variable session, reste à parcourir le chemin que l'utilisateur parcourt et par quels scripts il passe. Mais perso, je vois pas de problèmes :?

par Daviwys » 20 janv. 2006, 04:15

Voilà...
<?php
require("inc/connect.php");// Connexion à la DB
require("inc/config.php");// Infos sur la config
require('inc/qui.php');// Qui est en ligne ?
if(isset($_GET['nouv']) && $_GET['nouv']=='ok' && ltrim($_GET['rub'])!='' && ltrim($_GET['art'])!='' && ltrim($_POST['pseudo'])!='' && ltrim($_POST['message'])!='') {
	$pseudo=htmlentities(strip_tags($_POST['pseudo']));
	// Le pseudo est-il déjà pris ?...
	$r_verif_pseudo=mysql_query("SELECT pseudo FROM wb_users WHERE pseudo='$pseudo'",$idconnect);
	$nbr_verif_pseudo=mysql_num_rows($r_verif_pseudo);
	$l_verif_pseudo=mysql_fetch_object($r_verif_pseudo);
	if(($nbr_verif_pseudo>=1 && $_SESSION['pseudo']!=$l_verif_pseudo->pseudo) || (!isset($_SESSION['pseudo']) && $nbr_verif_pseudo>=1)) {
		$mem_message=$_POST['message'];
		$valide="<p align=\"center\"><strong>ERREUR : LE PSEUDO QUE VOUS D&Eacute;SIREZ UTILISER EST R&Eacute;SERV&Eacute;, D&Eacute;SOL&Eacute; !</strong></p>";
		} else {
		$comments=htmlentities(strip_tags($_POST['message']));
		mysql_query("INSERT INTO wb_commentaires (idart,idrub,datea,com,pseudo,voir) VALUES ('".$_GET['art']."','".$_GET['rub']."','".date("Y-m-d H:i:s")."','$comments','$pseudo','".$config['voir_com']."')",$idconnect);
		mysql_query("UPDATE wb_config SET nbr_com=nbr_com+1",$idconnect);
		header("Location:commentaires.php?rub=".$_GET['rub']."&art=".$_GET['art']."&confirm=ok");
		exit();
		}
	}
require('inc/date.php');
require('haut.php');
?>
<br />
		    <table width="98%" class="comments">
              <tr>
                <td align="center"><br /><u>AJOUTER UN COMMENTAIRE</u><?php if(isset($valide)) { echo $valide; } ?>
				<form action="ajout.php?rub=<?php echo $_GET['rub']; ?>&art=<?php echo $_GET['art']; ?>&nouv=ok" method="post" name="formul">
				Votre pseudo : <label><input name="pseudo" type="text"<?php if(isset($_SESSION['pseudo'])) { ?> value="<?php echo $_SESSION['pseudo']; ?>"<?php } ?> id="pseudo" maxlength="25" /></label><br />
<?php
require('inc/bbcode2.php');
?>
				<br />
				<label><textarea name="message" cols="55" rows="15" id="message"><?php if(isset($mem_message)) { echo stripslashes($mem_message); } ?></textarea></label><br /><p>
				<label><input type="submit" name="Submit" value="Envoyer" class="bouton1" /></label>
				<label><input type="reset" name="Submit2" value="Effacer" class="bouton1" /></label></p>
				</form>
				</td>
              </tr>
            </table>
<?php
require('bas.php');
?>
Merci :wink:

par DocType » 20 janv. 2006, 03:56

A la vue des éléments que tu as fourni, je ne peux te donner de réponse certaine (pourtant g sorti les torches de nuit pour mettre toute la lumière sur ton soucis).
Montre nous l'integralité de ton formulaire et de son traitement. :wink:

variable de session remplacé par un un input ?

par Daviwys » 20 janv. 2006, 03:50

Bonjour tout le monde :wink:

J'ai un petit souci que je qualifierai de "bizaroïd" ; je m'explique...

J'ai un formulaire avec 2 champs dont un input de type "text" qui me permet de recuillir le pseudo construit de cette façon :

Code : Tout sélectionner

Votre pseudo : <label><input name="pseudo" type="text"<?php if(isset($_SESSION['pseudo'])) { ?> value="<?php echo $_SESSION['pseudo']; ?>"<?php } ?> id="pseudo" maxlength="25" /></label>
Comme vous pouvez le constater, si la personne est "identifié" : je connais son pseudo grâce à une variable de session ! Et donc, j'insère automatiquement son pseudo si c'est le cas.

(Pour info, je traite mon formulaire sur la même page)
Si celui-ci est mal rempli (ou un des champs est vide), je réaffiche le formulaire avec les informations déjà saisis, sauf pour le pseudo comme vous pouvez le voir ci-dessus.

Mon problème vient après la validation du formulaire.
Lorsque c'est une personne identifié qui rempli se formulaire et qu'il a saisi un autre pseudo que le sien, la variable de session 'pseudo' est remplacé par le pseudo qu'il a saisi dans mon formulaire.

Comment celà est-il possible ? Comme je le dit plus haut : je trouve celà bizaroïd :?

Merci d'avance à tous pour vos lumières.