HELP !!!!! pb de variable je pensse

mickey180 Messages postés 2 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 19 janvier 2004 - 19 janv. 2004 à 08:20
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 - 19 janv. 2004 à 14:12
Boujors à tous.

Je suis nouveau dans le monde du PHP et j'ai un petit pb avec une de mes page.

EXPLICATION : Cette page fait partie d'un intranet et doit servir à daclaré des absence de personnel. Le pb est que lorsque que j'envoie les données le script me retourne un message d'erreur "Il manque des informations" alors que tous les champs sont rempli.

Je ne trouve pas mon erreur. :question)

Pourriez vous m'aider SVP . Je vous remerci par avance :shy)

Voici le code de ma page :
---------------------------------------------------------------------

<?
include "sessions.php";

if(!empty($id_abs)&&!empty($date_deb)&&!empty($date_fin)) {
include("connexiondb.php"); //Ouvre la connexion à la base de donnée
//On insere l'absence.
$sql = "insert into absence (id_abs,date_deb,date_fin) values($id_abs,$date_deb,$date_fin)";
if(!mysql_query($sql)) { //On test que la requete sql ce déroule correctement
$messageErreur="Oups , il y a une erreur avec la base de donnée";
} else { //Tous c'est bien déroulé
$messageOk=1;
}
//Toujours fermer la connexion à la base
mysql_close($ConnectDB_conn);
} else if(!empty($HTTP_POST_VARS)) { //Est-ce que la page a été posté ?
$messageErreur="Il manque des informations"; //Donc il manque les réponses ..
}
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<?
if(!$alreadyConnect) { //Si la personne n'est pas authentifié
echo " Vous n'etes pas identifié
";
} else if($messageOk) { //Le message à bien été enregistré
echo "Votre message à bien été envoyé
";
} else { //Bon laisson écrire un message
if(isset($messageErreur)) { //Si il y a un message d'erreur alors on l'affiche
echo "$messageErreur";
}
//Tableau des mois pour la daute de debut et de fin
$mois = array(1=> "Janvier", "Février", "Mars", "Avril", "Mai", "juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
$debut = time(); //date du jour
$fin = time(); //date du jour
$date_deb = date("Y-n-d",$debut); //Mise en forme de la date de debut de l'absence
$date_fin = date("Y-n-d",$fin); // Mise en forme de la date de fin de l'absence
?>

<form action=\"<?echo $REQUEST_URI?>\" method=\"post\" name=\"CreaMessage\">
----

Absence,

----

Nom du Professeur :,
<select name="id_abs">
<? //Nous allons affiché tous les membres étant professeur.
include("connexiondb.php"); //Ouvre la connexion à la base de donnée
//On regarde tous les membres en s'excluant bien sur, et on classe les resultats par rapport au login
$res=mysql_query("select * from user where id!=$messagerie order by login");
while($row = mysql_fetch_array($res)) { //Tant qu'il y a des résultats
echo "<option value=\\"".$row["id"]."\\" ";
if($id_abs==$row["id"]) echo "selected"; //En réponse du message
echo " >".$row["login"]."</option>";
}
//On ferme la connexion à la base
mysql_close($ConnectDB_conn);
?>
</select>,

----

Date de début :,
<?
// Construction de la liste des jours
$debut_j = date("d",$debut); // $debut -> jour
echo "<select name='jourd'>\\n";
for ($n=1; $n<=31; $n++)
{ echo " <option value=$n";
if ($debut_j == $n)
{ echo " selected";
}
echo "> $n\\n";
}
echo "</select>\\n";

// Construction de la liste pour les mois
$debut_m = date("m",$debut); // $debut -> mois
echo "<select name='moisd'>\\n";
for ($n=1; $n<=12; $n++)
{ echo "<option value=$n\\n";
if ($debut_m == $n)
{ echo " select";
}
echo "> $mois[$n]\\n";
}
echo "</select>";

// Construction de la liste pour les années
$debut_a = date("Y",$debut); // $debut -> année
echo "<select name='anneed'>\\n";
for ($n=$debut_a; $n<=$debut_a+1; $n++)
{ echo " <option value=$n";
if ($debut_a == $n)
{ echo " selected";
}
echo "> $n\\n";
}
echo "</select>\\n";?>,

----

Date de fin :,
<?
// Construction de la liste des jours
$fin_j = date("d",$debut); // $fin -> jour
echo "<select name='jourf'>\\n";
for ($n=1; $n<=31; $n++)
{ echo " <option value=$n";
if ($fin_j == $n)
{ echo " selected";
}
echo "> $n\\n";
}
echo "</select>\\n";

// Construction de la liste pour les mois
$fin_m = date("m",$fin); // $fin -> mois
echo "<select name='moisf'>\\n";
for ($n=1; $n<=12; $n++)
{ echo "<option value=$n\\n";
if ($fin_m == $n)
{ echo " select";
}
echo "> $mois[$n]\\n";
}
echo "</select>";

// Construction de la liste pour les années
$fin_a = date("Y",$fin); // $fin -> année
echo "<select name='anneef'>\\n";
for ($n=$fin_a; $n<=$fin_a+1; $n++)
{ echo " <option value=$n";
if ($fin_a == $n)
{ echo " selected";
}
echo "> $n\\n";
}
echo "</select>\\n";?>,

----

,

</form>

<?
} //Fin du cas normal
?>

<form method="post">

</form>

</html>

3 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
19 janv. 2004 à 10:34
lu!

deux petites question, la premiere
pkoi tu fais un if(!empty) ?
à mon avis c plutot un if (empty) que tu veux non? tu veux bien mettre un messge d'erreur si les http_post est vide?

deuxieme question (là c pour moi:)
-> pkoi tu mets deux\\ ? chez moi ça met une erreur ça! je dois mettre qu'un seul \merci pour la reponse ;)
0
mickey180 Messages postés 2 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 19 janvier 2004
19 janv. 2004 à 13:43
salut davwart.

Si je ne met pas de ! avant empty sa plante et oui je veux qu'il y ai un message d'erreur si le http_post est vide.

Le pb est que par default tous les champs sont rempli avec des menu déroulant. Un avec le nom de la personne absente les autres avec la date du systeme. dons si l'utilisateur clic sur envoi sa devrai envoyer les donnée à la base. Mais non sa marche pas. Alors que si je remplace les menu déroulant par des zones de saisie (l'utilisateur doit donc saisir la date) et si je laisse le format par defaut (anglais : aaaa-mm-jj), cela fonctionne. comprend pas?!

pour les deux \\\\ chez moi ça mt une erreur quand j'en met qu'un seul, de plus les script et tutos que g recup sur le net en montre 2 alors j'en fait autant.

PS : Je deteste travail les dates !!!!!!!!!!!!! Grrrrrr
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
19 janv. 2004 à 14:12
bizarre, j'ai essayé ton truc chez moi en enlevant le ! devant empty et ça fonctionne...

et les \\\\ je comprends pas, pkoi chez toi ça plante et chez moi non ! lol
haaa l'informatique et ses secrets...
0
Rejoignez-nous