probleme au niveau des $_POST

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 : probleme au niveau des $_POST

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 21:33

Ok c'est bon j'ai saisi :D
Et la tout fonctionne merci beaucoup pour votre aide à tous

Re: probleme au niveau des $_POST

par xTG » 29 mars 2012, 20:45

Tu n'as peut être pas compris le principe des conditions alors. ^^

Code : Tout sélectionner

if( condition1 ) { // une suite d'instruction si la condition1 est respectée } else { if( condition2 ) { // une suite d'instruction si la condition1 n'est pas respectée et que la condition2 est respectée } else { // une suite d'instruction si la condition1 n'est pas respectée et que la condition2 n'est pas respectée } }
Sachant que le if de la condition2 est une suite d'instruction lorsque la condition1 n'est pas respectée.
Bref tu peux entourer les traitements par les conditions pour qu'ils ne s'exécutent que dans certains cas.

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 20:33

J'utilise la fonction empty pour qu'elle affiche un message comme quoi c'est pas bon
if(empty($num_client) OR empty($raison_sociale) OR empty($adrue_client) OR empty($advilleclient) OR empty($categorie_client) OR empty($num_representant)) 
  { 
    echo '<font color="red">Attention, tous les champs doivent être <b>remplis</b>!</font>'; 
    } 
	
je vais chercher pour que la requete s'active pas mais je trouves pas

Re: probleme au niveau des $_POST

par xTG » 29 mars 2012, 20:32

C'est pas plutôt ne faire la requête que si les champs ne sont pas vide que tu veux ?
Il faut te tourner vers la fonction empty() qui te renvoie une booléen dont la valeur dépend de si c'est vide ou non.

Concernant la connexion, même si tu n'utilises pas mysql_close() la connexion est fermée automatiquement par le système à la fin de l'exécution du script.
Mais il est quand même plus propre d'utiliser la fonction. ;)

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 19:52

:D

Sinon tu sais comment je peux close la connexion si un ou plusieurs champs sont vides ? car sinon ça rentre quand même dans ma base même si c'est vide
tout à l'heure j'ai testé une fonction close mais ça bloquait même quand je remplissais tous les champs même avec le if

Re: probleme au niveau des $_POST

par xTG » 29 mars 2012, 19:41

C'est pas parce que c'est un prof qui t'a donné ce code que c'est pas une immondice. ;)
Souvent on donne des bouts de code le plus simple possible afin que les étudiants comprennent les bases.
Mais on leur apprend pas toutes les bases... Cas de la vérification de variable par exemple dans ton cas.

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 18:02

Ok mais, pour la commande isset, c'est sur que c'est nécessaire ? car le code donné par défaut par le prof n'a même pas cette fonction, à la base le code entier était fait on avais juste a remplacer par nos tables, si je dois refaire tout le script ça me parais bizarre ...

voici le code que je suis censé utiliser
<html>
<head>
<title> Formulaire de saisie </title>
</head>
<link rel="stylesheet" media="screen" type="text/css" title="css" href="client.css" />

<body>
<div id="tete">
<h1><center><b></b></center></h1>
</div>
<br />
<div id="corps">
<center> <h2><b> FORMULAIRE DE SAISIE CLIENT </b></h2> </center> <br />

<center><b><?php
$num_client=$_POST['num_client'];
$raison_sociale=$_POST['raison_sociale'];
$adrue_client=$_POST['adrue_client'];
$advilleclient=$_POST['advilleclient'];
$categorie_client=$_POST['categorie_client'];
$num_representant=$_POST['num_representant'];

$connexion=mysql_connect("localhost","root","mysql") or die ('Erreur de connection '.mysql_error()); 
if($connexion)
{
//connexion réussie
mysql_select_db("viennoiserie",$connexion) or die ('Erreur de connection '.mysql_error()) ;
$requete="INSERT INTO clientVALUES ('$num_client','$raison_sociale','$adrue_client','$advilleclient','$categorie_client','$num_representant')";

$ok=mysql_query($requete,$connexion) ;
if($ok)
{
echo"Les informations ont été correctement ajoutées";
}
else
{
echo"Attention, l'ajout a échoué !";
}
}
else
{
echo"Problème à la connexion <br />";
}
mysql_close($connexion);
?></b> </center>
<br />
<br />

</div>

</body></html>


(j'ai remplacé les tables et la ce sont les requetes de base fournies par le prof)
Qu'est-ce qui ne va pas dans les requetes du prof ? :lol:


Sinon j'ai modifié mon code perso et j'ai le message : Aucune base n'a été sélectionnée
Voici le code
$database_localhost = "viennoiserie";
Très bon site au passage



edit : tout fonctionne, me reste plus qu'a modifier mes "echo" et mes "else" l'ajout s'effectue maintenant sans problème :D

Re: probleme au niveau des $_POST

par piotrowski-s » 29 mars 2012, 17:56

tu devrais aussi vérifier que tes variables sont bien définies, ça t'éviterais bien des malheurs... Essaie d'apprendre la fonction isset(), empty() et leurs dérivés.

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 17:49

C'est surtout que j'ai jamais appris, c'est un projet pour le lycée mais aucune indication nous a été donnée juste un fichier php avec des anciennes commandes :D
Tout ce que je veux c'est que les données rentrées dans le formulaire s'ajoute dans la bdd .
Je vais lire :mrgreen:

Re: probleme au niveau des $_POST

par xTG » 29 mars 2012, 17:47

Ce qui ne va pas ? Ta connaissance du langage...
Donc un peu de lecture : http://phpdebutant.org/article67.php
Et je te recommande de lire tous les autres liens dans le menu de droite...

Et si tu veux savoir ce que fais ton script actuellement :
1) il se connecte à la base de données
2) il renseigne dans $sql une chaîne de caractères (ta requête)
3) il affiche trois messages grâce à echo
Et rien de plus. ;)

Donc non contrairement à ce que tu penses tu n'y es pas presque... :non:

Re: probleme au niveau des $_POST

par nask » 29 mars 2012, 17:32

J'ai rien dit
Voici l'unique message maintenant sans erreur : Les informations ont été correctement ajoutéesAttention, l'ajout a échoué !Problème à la connexion
En fait il se contente de lire mes "echo"
Voici mon code entier, qu'est-ce qui ne va pas ?
<html>
<head>
<title> Formulaire de saisie </title>
</head>
<link rel="stylesheet" media="screen" type="text/css" title="css" href="client.css" />

<body>
<div id="tete">
<h1><center><b></b></center></h1>
</div>
<br />
<div id="corps">
<center> <h2><b> FORMULAIRE DE SAISIE CLIENT </b></h2> </center> <br />

<center><b><?php
$num_client=$_POST['num_client'];
$raison_sociale=$_POST['raison_sociale'];
$adrue_client=$_POST['adrue_client'];
$advilleclient=$_POST['advilleclient'];
$categorie_client=$_POST['categorie_client'];
$num_representant=$_POST['num_representant'];

# Type="MYSQL"
# HTTP="true"
$hostname_localhost = "127.0.0.1";
$database_localhost = "viennoiserie";
$username_localhost = "root";
$password_localhost = "";
$localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR); 

//connexion réussie

$requete="INSERT INTO clientVALUES ('$num_client','$raison_sociale','$adrue_client','$advilleclient','$categorie_client','$num_representant');";
{
echo"Les informations ont été correctement ajoutées";
}
{
echo"Attention, l'ajout a échoué !";
}

{
echo"Problème à la connexion <br />";
}

?></b> </center>
<br />
<br />

</div>

</body></html>


Re: probleme au niveau des $_POST

par Invité » 29 mars 2012, 17:28

Ok je viens de supprimer ça :D
Maintenant j'ai erreur à la ligne 37

$requete="INSERT INTO clientVALUES ('$num_client','$raison_sociale','$adrue_client','$advilleclient','$categorie_client','$num_representant');";

Comment remplacer cette variable ?

Re: probleme au niveau des $_POST

par xTG » 29 mars 2012, 17:23

Normal, piotrowski-st'a donné un code qui remplace la variable $connexion par $localhost.
Faut donc répercuter le changement sur le reste du code (ou bien renommer la variable de son code ;)).

Re: probleme au niveau des $_POST

par Invité » 29 mars 2012, 17:21

Merci mais voici un nouveau message d'erreur
Notice: Undefined variable: connexion in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\VIENNOISERIE\client.php on line 34
Problème à la connexion 

Notice: Undefined variable: connexion in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\VIENNOISERIE\client.php on line 54

Warning: mysql_close() expects parameter 1 to be resource, null given in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\VIENNOISERIE\client.php on line 54

à la ligne 34 j'ai {
à la ligne 54 j'ai mysql_close($connexion);

Re: probleme au niveau des $_POST

par piotrowski-s » 29 mars 2012, 09:32

saluit essaye de remplacer
$connexion=mysql_connect("localhost","root","mysql") or die ('Erreur de connection '.mysql_error()); 
par
<?php

# Type="MYSQL"
# HTTP="true"
$hostname_localhost = "127.0.0.1";
$database_localhost = "le_nom_de_ta_base_de_donnees";
$username_localhost = "root";
$password_localhost = "";
$localhost = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR); 
?>