Probleme de condition dans un formulaire

Paolo 4
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 11:05

Bonjour,

Voila, j'ai un formulaire avec deux champ texte 'date_tab1' et 'text_heure_liste1'.
Puis j'ai ce code php (qui menregistre ce que j'ai saisi dans mes 2 champs dans une base) lorsque je vais cliquer sur le bouton 'Submit1'
	
<?php
if (isset($_POST['Submit1'])=="Enregistrer") {
include "connexion.php";

// stockage dans la bdd
$date1 = @$_POST['date_tab1'];
$heure_liste1 = @$_POST['text_heure_liste1'];
		
// déclaration de quelques variables
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "base";
$table = "tb_hor";
			 
// connection avec MySQL
@mysql_connect($host, $user, $pass) or die("Impossible de se connecter au serveur");
// Le @ indique à php de ne pas afficher de message d'erreur
@mysql_select_db($bdd) or die("Impossible de se connecter à la base de données");

// affichage sélection
if ((htmlentities(@$_POST['date1']) !='') or (htmlentities(@$_POST['heure_liste1']) !='')) {

echo '<p class="milieu-texte">La date et l\'heure  ';
echo 'on bien été ajoutées';
echo '</p>';
}
else
echo 'Vous devez remplir les champs \'date\' et \'heure\' SVP !';
		
if(!get_magic_quotes_gpc())
{
$date1 = addslashes($date1);
$heure_liste1 = addslashes($heure_liste1);
}
$sql = "INSERT INTO " . $table . "(date, heure) VALUES('" . $date1 . "','" . $heure_liste1 . "')";
$res = mysql_query($sql);

mysql_close();}
?>
Mon probleme ces que lorsque je rempli les 2 champs ( 'date_tab1' et 'text_heure_liste1') et que je clique sur le bouton submit1, il m'affiche quand meme le message "Vous devez remplir tous les champs 'date et 'heure' SVP ! " et m'enregistre aussi mes infos dans la base de données! Ya quelque chose que je comprends pas ? quelqu'un pourai me dire pk?

Merci d'avance pour votre aide

Eléphant du PHP | 164 Messages

26 janv. 2006, 11:21

tout d'abord

vire moi le test avec magic_quote à la fin de ton script c'est inutile ici, puisque dans tes champs ue tu va saisir, il n'y aura jamais de problème avec les apostrophes.

ensuite change moi ceci en cela:

avant:
if ((htmlentities(@$_POST['date1']) !='') or (htmlentities(@$_POST['heure_liste1']) !='')) {

echo '<p class="milieu-texte">La date et l\'heure  ';
echo 'on bien été ajoutées';
echo '</p>';
}
else
echo 'Vous devez remplir les champs \'date\' et \'heure\' SVP !';
après:
if (!$_POST['date1']  or !@$_POST['heure_liste1'] ) 
{

echo '<p class="milieu-texte">La date et l\'heure  ';
echo 'on bien été ajoutées';
echo '</p>';
}
else
{
echo 'Vous devez remplir les champs \'date\' et \'heure\' SVP !';
}

et enfin vire moi tout les arobases aussi sauf devant les fonctions!!! ca sert a rien non plus de les mettre devant des $_POST.

Invité
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 11:31

Cela ne fonctionna pas non plus.. ?? Je met des @ devant @$_POST['date1'] car sinon il m'affiche pleins de message Undefined index: (J'utilise easy php 1.7)

Eléphant du PHP | 164 Messages

26 janv. 2006, 16:18

fait comme je t'ai dit et montre moi tout les message d'erreur?
puis-je voir le code de ton formulaire également?

Eléphant du PHP | 164 Messages

26 janv. 2006, 16:21

ton erreur est la je suis bête:
$date1 = @$_POST['date_tab1']; 
$heure_liste1 = @$_POST['text_heure_liste1']; 

et après tu fais ca:
if ((htmlentities(@$_POST['date1']) !='') or (htmlentities(@$_POST['heure_liste1']) !='')) { 
$_POST['date1' et $_POST['heure_liste1'] n'existe pas!! elles sont pa définies!!

si té pas trop bête tu devrai comprendre ce que je t'ai dit..... ca rl'ereur est la....