OVH Cloud OVH Cloud

Probleme avec un formulaire

5 réponses
Avatar
user
Bonjour,

J'écris un petit script Php me permettant de remonter des informations
selon des dates données.
Mon code est le suivant:

HTML:
<form name="form" method="post" action="<?php print
$_SERVER['PHP_SELF']; ?>"><input type=
"text" name="jourDebut" size="2" maxlength="2"> <input type="text"
name="moisDebut" size="2" maxlength="2"> <input type="text" name=
"anneeDebut" size="4" maxlength="4">au<input type="text" name=
"jourFin" size="2" maxlength="2"> <input type="text" name="moisFin"
size="2" maxlength="2"> <input type="text" name="anneeFin" size="4"
maxlength="4"> </form>

PHP:
<?php

function date_timestamp($jour)
{
$elements =array();
$elements = preg_split("/(-|\/)/",$jour);

if ( strlen ($elements[0]) != 4 )
{
$elements = array_reverse($elements);
}
return sprintf('%04d%02d%02d',$elements[0],$elements[1],$elements[2]);
}

//retourne la date de début et la date de fin
$separateur = "-";
$date_debut_format = $_POST['jourDebut'] . $separateur .
$_POST['moisDebut'] . $separateur . $_POST['anneeDebut'];
$date_fin_format = $_POST['jourFin'] . $separateur . $_POST['moisFin']
. $separateur . $_POST['anneeFin'];

$date_debut = date_timestamp($date_debut_format);
$date_fin = date_timestamp($date_fin_format);
?>

Pour l'instant j'ai ce message d'erreur:

Notice: Undefined index: jourDebut in c:\program
files\easyphp1-8\www\contacts_test.php on line 81

Notice: Undefined index: moisDebut in c:\program
files\easyphp1-8\www\contacts_test.php on line 81

Notice: Undefined index: anneeDebut in c:\program
files\easyphp1-8\www\contacts_test.php on line 81

Notice: Undefined index: jourFin in c:\program
files\easyphp1-8\www\contacts_test.php on line 82

Notice: Undefined index: moisFin in c:\program
files\easyphp1-8\www\contacts_test.php on line 82

Notice: Undefined index: anneeFin in c:\program
files\easyphp1-8\www\contacts_test.php on line 82

Je ne comprends pas bien cette notion d'"Undefined index".
Une idée ?

5 réponses

Avatar
P. Renaud
wrote:

Pour l'instant j'ai ce message d'erreur:

Notice: Undefined index: jourDebut in c:program

Je ne comprends pas bien cette notion d'"Undefined index".
Une idée ?


Pour une explication vague, oui, tu as un "undefined index" parce que
ton script n'arrive pas à récupérer une des variables que tu lui passes
en POST.

Pour une explication précise, non, mais si tu fais comme suit, ça marche
sans problème :

<html>
<head>
<title></title>
</head>
<body>

<!-- TA PARTIE HTML (avec un <input type"submit"> en plus ?) -->
<!-- TA PARTIE PHP -->

</body>
</html>

Avatar
Poppi
Essaie de déclarer tes varialbles avant de les utiliser :

$anneeFin="";
$moisFin="";
$jourFin="";
$...

Pareil pour toutes celles qui sont en Undefined index, tu mets ca en haut de
page et ca devrait marcher.
Avatar
Jedi121
a émis l'idée suivante :
J'écris un petit script Php me permettant de remonter des informations selon
des dates données.
Mon code est le suivant:

HTML:
<form name="form" method="post" action="<?php print
maxlength="4"> </form>

PHP:
<?php
?>

Pour l'instant j'ai ce message d'erreur:

Notice: Undefined index: jourDebut in c:program
fileseasyphp1-8wwwcontacts_test.php on line 81

Je ne comprends pas bien cette notion d'"Undefined index".
Une idée ?


Bonjour, bien que ce ne soit pas bien clair dans ton message je crois
comprendre que la partie HTML et la partie PHP sont dans le même
fichier. Il est donc normal que lors du premier chargement de la page
PHP ne connaisse pas les variables $_POST puisque leformulaire n'a pas
été transmis.
Si tu soumets ton formulaire, les messages devraient disparaitre.

Je pense que tu as du oublier que PHP est exécuté côté serveur et que
le HTML résultant est transmis au client Web.

Les "Motice" sont des alertes PHP qui t'informent que le déroulement du
programme n'a pas été interrompu mais qu'il lui semble étonnant d'avoir
rencontré tel ou tel cas. Ici il t'annonce que tu utilises les clefs du
tableau $_POST qui n'existent pas.

Avatar
John GALLET
Bonjour,

Notice: Undefined index: jourDebut in c:program
fileseasyphp1-8wwwcontacts_test.php on line 81


Cette question revenant suffisament souvent et n'ayant pas réponse claire
directement dans le manuel, elle est désormais référencée dans la FAQ de
ce forum et ne sera désormais plus publiée.

http://faqfclphp.free.fr/#rub4.1

JG

Avatar
dede
Ici il t'annonce que tu utilises les clefs du tableau $_POST qui
n'existent pas.


le mieux étant :
if(isset($_POSTblabla)){blabla}else{blabla}

Comme ça, pas d'erreur possible...