session + controle de controle de champ

session + controle de controle de champ - PHP - Programmation

Marsh Posté le 08-03-2005 à 10:47:25    

Bonjour
 
J'ai un problème de logique dans mon script php pourriez vous jeter un oeil pour me donner votre avis.
 
Ce que je veux c'est juste vérifier que le champ "valeur" soit rempli et si c'est le cas on insere dans la base et on affiche un message comme quoi l'opération s'est bien déroulée sinon on affiche un message d'erreur.
 

Code :
  1. <?
  2.  include ('inclusions/connexion.php');
  3. session_start();
  4. // On relaye la session
  5. if (session_is_registered("authentification" ))
  6. { // vérification sur la session authentification (la session est elle enregistrée ?)
  7. if (@$_GET['action'] == "ajout" )
  8.     {
  9.    if (!empty($_POST ['valeur']))
  10.     {
  11. $qte= trim($_POST['qte']);
  12. $ref= trim($_POST['ref']);
  13. $valeur= trim($_POST['valeur']);
  14.    
  15. $query_ins_paiement = "INSERT INTO tab_stock(stock_id, stock_qte, stock_ref, stock_valeur) VALUES('$qte','$ref','$valeur')";
  16.    
  17.     // on insère les informations du formulaire dans la table
  18.     mysql_query($query_ins_paiement) or die('Erreur SQL!'.$query_ins_paiement.'<br>'.mysql_error());
  19.     // on affiche le message
  20.    
  21.     header("Location:accueil.php?erreur=valeur" );
  22. // ici les éventuelles actions en cas de réussite de la connexion
  23. }
  24. else {
  25. header("Location:index.php?erreur=intru" ); // redirection en cas d'echec
  26. }
  27. }
  28. }
  29. else {
  30.   // redirection si utilisateur a envoyé le formulaire
  31.   header("Location:accueil.php?erreur=envoye" );
  32. }
  33. ?>
  34. <?
  35.   include ('inclusions/entete.php');
  36.   ecrit_head();
  37. ?>
  38. <script type="text/javascript">
  39. function verif_valeur()
  40. {
  41.        if (document.form_valeur.valeur.value == "" )
  42.    {
  43.        alert("Le champ Valeur est obligatoire." )
  44.        return false;
  45.     }
  46.   else
  47.   {
  48.    form_valeur.submit;
  49.    return true;
  50.   }
  51.  }
  52. </script>
  53. ...
  54. <? 
  55.     if(isset($_GET['erreur']) && ($_GET['erreur'] == "valeur" ))
  56.   { // Affiche l'erreur   
  57.     ?>
  58.       <span style="color:red">vous devez au moins remplir le champ valeur</span>
  59.   <?
  60.   }
  61.   ?>
  62.    <? 
  63.     if(isset($_GET['erreur']) && ($_GET['erreur'] == "envoye" ))
  64.   { // Affiche l'erreur   
  65.     ?>
  66.       <span style="color:green">Insertion realisees</span>
  67.   <?
  68.   }
  69.   ?> 
  70. <label for="bouton">&nbsp;</label>
  71.             <input type="submit" name="bouton" id="bouton" value="Envoyer" title="Validez votre demande"  />
  72.            </fieldset>
  73. </form>


 
C'est surement assez confus mon code mais j'essaye depuis 2 jours et la je commence à bloquer.
Mon bug c'est quand j'envoie le formulaire et que le champ valeur est vide il me tue ma session.
 
Si vous pouviez me donner un coup de main j'apprécierai énormement

Reply

Marsh Posté le 08-03-2005 à 10:47:25   

Reply

Marsh Posté le 08-03-2005 à 10:52:35    

Citation :

@$_GET['action'] == "ajout"

???
 
c'est quoi l'erreur possible, tester la variable alors qu'elle n'existe pas ??? dans ce cas c'est un isset qu'il te faut, pas un "@"


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 08-03-2005 à 10:56:20    

merci deja pour cela. C'est qu'il me renvoyait une alerte alors j'ai mis ça devant pour eviter l'erreur. Mais c'est vrai que ce que tu dis c'est bien plus logique.

Reply

Marsh Posté le 08-03-2005 à 10:59:07    

mais quand j'écris ça :
 
if (isset($_GET['action'] == "ajout" ))
 
j'ai une erreur "unexpected T_IS_EQUAL, expecting ',' or ')'"
 
J'ai résolu ce problème mais il m'en reste un. Quand j'arrive sur la page j'ai le message "vous devez au moins remplir le champ valeur" qui s'affiche par defaut.  
 
Merci xav pour ta correction, je suis un ane sur ce coup la


Message édité par skynicko le 08-03-2005 à 11:02:50
Reply

Marsh Posté le 08-03-2005 à 10:59:38    

[:matleflou]
 
www.php.net/isset


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 08-03-2005 à 10:59:58    

il te manque " )" a la fin de ton isset:
isset($_GET['action'])

Reply

Marsh Posté le 08-03-2005 à 11:04:01    

Le isset j'avais oublié une parenthese je m'en suis rendu compte. C'est la fatigue. Pour mon dernier souci quelqu'un a une idée ?

Reply

Marsh Posté le 08-03-2005 à 11:06:03    

vous pas faire passer les variable de la session dans le formulaire ?

Reply

Marsh Posté le 08-03-2005 à 11:08:37    

en fait si j'aimerai bien mais deja je vais resoudre ce problème apres je moccuperai de ça.

Reply

Marsh Posté le 08-03-2005 à 11:14:52    

P.S: je te conseille de tester quand meme que tes valeurs $_POST['qte'] & co soient passées


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-03-2005 à 11:14:52   

Reply

Marsh Posté le 08-03-2005 à 11:19:05    

le truc c'est que mon chef il m'a dit qu'il veut tester juste le champ valeur le reste ça lui pose pas problème. J'ai essayé d'insister mais il veut pas. Il a pas envie de tout remplir c'est un flemard

Reply

Marsh Posté le 08-03-2005 à 11:20:19    

Oui mais dans ce cas on peut te faire foirer ton script, si on envoie pas de qte (je dis pas si on l'envoie vide, je dit si on l'envoie pas du tout)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-03-2005 à 11:26:29    

le truc c'est que mon script sera utilisé uniquement par mon patron sur un serveur local. Vous penez qu'à ce niveau la ça comporte tout de meme des risques ?

Reply

Marsh Posté le 08-03-2005 à 11:37:14    

on a rarement idée à quel point il faut mettre des anti-cons dans un script meme (surtout d'ailleurs) si tu le fait pour ton chef http://webxav.chez.tiscali.fr/gif/src1/hotshot.gif


Message édité par Xav_ le 08-03-2005 à 11:37:35

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 08-03-2005 à 15:09:58    

Sache que si l'utilisateur peut faire une connerie, il la fera, ce n'est qu'une question de temps.
Alors autant "securiser" ton script de ce point de vue.


Message édité par cerel le 08-03-2005 à 15:10:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed