Salut tout le monde.
J'ai installé Wamp Server mais lorsque je test en local mes projets et que par exemple j'appuie sur le bouton valider je tombe sur une erreur 404 Not foud. je sais plus comme faire la, aidez moi :cry:
Version imprimable
Salut tout le monde.
J'ai installé Wamp Server mais lorsque je test en local mes projets et que par exemple j'appuie sur le bouton valider je tombe sur une erreur 404 Not foud. je sais plus comme faire la, aidez moi :cry:
Bonjour et bienvenu sur le forum,
vérifie l'attribut "action" de ton <form>
Bonsoir,
Même les TP de Sylvie me rendent la même réponse.
Le chemin que je suis dans wamp est : projets > mon fichier.php et puis le script s'effectue et lorsque que j'appuie sur ok j'ai cette erreur. Je n'ai rien trouvé sur google ou autre.
Bonjour,
Désolé pour le double post :(
L'attribut action de mon form est POST. Mais le problème est toujours réccurent. Faut t-il que j'ai déja un site web ? je ne comprend plus.
Ou faut-il que je mette un sorte d'adresse d'accueil lorsque l'on clique sur le bouton OK ?
Merci d'avance.
Bonjour,
POST va dans l'attribut "method"
"action" doit contenir d'url de la page qui doit traiter les données.
Exemple :
Code:<form method="post" action="login.html">
Oui effectivement je me suis trompé en disant cela :oops: mais voici mon script fait grâce a un tuto qui est trés bon:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <html> <head><title>Imc.php</title></head> <body> <h1>Entrez vos Paramètres</h1> <form name="inscription" method="post" action="imc.php"> Entrez votre prénom : <input type="text" name="prénom"/> Entrez votre taille (sous la forme 1.XX) : <input type="text" name="taille"/> Entrez votre poids (en kilos) : <input type="text" name="poids"/> <input type="submit" name="valider" value="Ok"/> </form> <?php if (isset ($_POST['valider'])){ $prénom=$_POST['prénom']; $taille=$_POST['taille']; $poids=$_POST['poids']; $IMC=$poids/($taille*$taille); echo 'Bonjour '.$prenom.'<br/> Votre IMC (indice de masse corporelle) est exactement : '.$IMC.'<br/>'; if($IMC<16.5){ $verdict='Vous êtes en dénutrition'; } elseif($IMC<18.5){ $verdict='Vous êtes maigre'; } elseif($IMC<25){ $verdict='Vous avez une corpulence normale'; } elseif($IMC<30){ $verdict='Vous êtes en surpoids'; } elseif($IMC<35){ $verdict='Vous avez une obésité modérée'; } elseif($IMC<40){ $verdict='Vous avez une obésité sévère'; } elseif($IMC>40){ $verdict='Vous avez une obésité massive'; } echo $verdict; } ?> </body> </html>
Est-ce que ton script s'appelle bien "imc.php" ? Sinon tu dois mettre le nom de ton fichier dans l'attribut action.Code:<form name="inscription" method="post" action="imc.php">
Si ca ne résoud pas le problème, est-ce que ton formulaire provient d'un include ? Si oui il faut probablement mettre le nom du script parent dans l'attribut "action"
C'est a dire ? Je n'ai pas indiqué dans le nom de mon script imc.php ? A la base non mais je l'ai modifié et rien ne change. Pour ce qui est de l'include ... c'est quoi ? :oops:.
Et mettre le nom du script dans l'attribut action, indique moi la marche a suivre je n'en ai pas la moindre idée ;)
Merci
Le tag ACTION de la balise FORM indique où l'utilisateur doit être redirigé une fois le formulaire validé (aka: une fois le bouton Submit cliqué).
Sur votre serveur, le fichier imc.php existe-t-il ?
Yeah les gars, vous m'enlevez d'un poids ;) en fait pour resumer.
Il faut que mon fichier ai le même nom que dans action. A la majuscule prés ?
Donc voila maintenant cela marche correctement.
Merci a vous et de votre temps passé ;)
hmmm normalement tout ce qui est en rapport avec des fichiers est justement sensible à la casse ! donc oui !
si le fichier s'appelle : WoooHHHHHOOOomonFF_ichier_delaMaurtQuituuuuetout.php
il faudra écrire :EXEMPLE (temporaire) : http://www.pierre-roels.be/media/fil...nDe_casSS3.phpCode:<form method="post" action="WoooHHHHHOOOomonFF_ichier_delaMaurtQuituuuuetout.php">
code du fichierCode:
1
2
3
4
5
6
7 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="submit" value="Appeler ce fichier avec la casse" /> </form> <form method="post" action="<?php echo strtolower($_SERVER['PHP_SELF']); ?>"> <input type="submit" value="Appeler ce fichier SANS la casse" /> </form>
Justement, j'ai une autre question :s. Comment faire pour que lorsquee l'on appuie sur le bouton OK on soit redirigé vers une autre page ou sera affichée la réponse, automatiquement?
Là il faudrait diviser le code en deux:
mapage1.php:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <html> <head><title>Imc.php</title></head> <body> <h1>Entrez vos Paramètres</h1> <form name="inscription" method="post" action="mapage2.php"> Entrez votre prénom : <input type="text" name="prénom"/> Entrez votre taille (sous la forme 1.XX) : <input type="text" name="taille"/> Entrez votre poids (en kilos) : <input type="text" name="poids"/> <input type="submit" name="valider" value="Ok"/> </form> </body> </html>
mapage2.php:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php if (isset ($_POST['valider'])){ $prénom=$_POST['prénom']; $taille=$_POST['taille']; $poids=$_POST['poids']; $IMC=$poids/($taille*$taille); echo 'Bonjour '.$prenom.'<br/> Votre IMC (indice de masse corporelle) est exactement : '.$IMC.'<br/>'; if($IMC<16.5){ $verdict='Vous êtes en dénutrition'; } elseif($IMC<18.5){ $verdict='Vous êtes maigre'; } elseif($IMC<25){ $verdict='Vous avez une corpulence normale'; } elseif($IMC<30){ $verdict='Vous êtes en surpoids'; } elseif($IMC<35){ $verdict='Vous avez une obésité modérée'; } elseif($IMC<40){ $verdict='Vous avez une obésité sévère'; } elseif($IMC>40){ $verdict='Vous avez une obésité massive'; } echo $verdict; } ?>
Plusieurs possibilités... il faudrait savoir exactement ce que tu souhaites faire...
Problème 1 :
- soumission du formulaire (A.php), on reste sur le meme fichier (A.php)
- on y effectue les vérifications (A.php)
- on affiche le message de confirmation sur un autre fichier (B.php)
Problème 2 :
- soumission du formulaire (A.php), on envoie sur un autre fichier (B.php)
- on effectue les vérification dans cet autre fichier (B.php)
- on affiche le message dans ce meme fichier (B.php)
Problème 3 :
- soumission du formulaire (A.php), on envoie sur un autre fichier (B.php)
- on effectue les vérification dans cet autre fichier (B.php)
- on affiche le message dans un 3ieme fichier (C.php)
Bon normalement, séparer les formulaires est déjà assez rare donc le problème 3 ne sert à peu près à rien.
Je vais donc apporter des éléments de réponse pour les 2 premiers.
Solution 1
FORMULAIRE :et une fois qu'on a fini les tests (et avant tout affichage HTML quel qu'il soit) on utilisera header()Code:<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Solution 2Code:header("Location: monAutreFichier.php");
FORMULAIRE :et une fois qu'on a fini les tests (et avant tout affichage HTML quel qu'il soit) on a plus qu'à afficher les messages avec echo()Code:<form method="post" action="monAutreFichier.php">
Donc si je comprend bien je dois constituer deux fichiers php distincts ?
Je prendrais la solution 1. Donc dans le fichier imc.php je met :
et dans le fichier reponse.php (exemple ) je metCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <html> <head><title>Imc.php</title></head> <body> <h1>Entrez vos Paramètres</h1> <form name="inscription" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> Entrez votre prénom : <input type="text" name="prénom"/> Entrez votre taille (sous la forme 1.XX) : <input type="text" name="taille"/> Entrez votre poids (en kilos) : <input type="text" name="poids"/> <input type="submit" name="valider" value="Ok"/> </form> <?php if (isset ($_POST['valider'])){ $prénom=$_POST['prénom']; $taille=$_POST['taille']; $poids=$_POST['poids']; $IMC=$poids/($taille*$taille);
mais header je le met ou ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <html> <body> echo 'Bonjour '.$prénom.'<br/> Votre IMC (indice de masse corporelle) est exactement : '.$IMC.'<br/>'; if($IMC<16.5){ $verdict='Vous êtes en dénutrition'; } elseif($IMC<18.5){ $verdict='Vous êtes maigre'; } elseif($IMC<25){ $verdict='Vous avez une corpulence normale'; } elseif($IMC<30){ $verdict='Vous êtes en surpoids'; } elseif($IMC<35){ $verdict='Vous avez une obésité modérée'; } elseif($IMC<40){ $verdict='Vous avez une obésité sévère'; } elseif($IMC>40){ $verdict='Vous avez une obésité massive'; } echo $verdict; } ?> </body> </html>
En réalité ce n'est pas si simple et c'est pourquoi j'ai dit (ou alors je l'ai tellement pensé fort que j'ai oublié) qu'en général on reste toujours dans le même fichier car c'est bien plus simple :)
Voici ce qu'on fait généralement (tout dans le même fichier) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 <html> <head><title>Imc.php</title></head> <body> <?php // J'ai rajouté un champ de type hidden dans le formulaire // Il y a un bug dans IE qui ne soumet pas le bouton submit qd on valide en appuyant sur ENTER plutot qu'en cliquant ;) if (isset ($_POST['action']) && $_POST['action'] == "envoyer"){ $prénom=$_POST['prénom']; $taille=$_POST['taille']; $poids=$_POST['poids']; $IMC=$poids/($taille*$taille); echo 'Bonjour '.$prénom.'<br/> Votre IMC (indice de masse corporelle) est exactement : '.$IMC.'<br/>'; if($IMC<16.5){ $verdict='Vous êtes en dénutrition'; } elseif($IMC<18.5){ $verdict='Vous êtes maigre'; } elseif($IMC<25){ $verdict='Vous avez une corpulence normale'; } elseif($IMC<30){ $verdict='Vous êtes en surpoids'; } elseif($IMC<35){ $verdict='Vous avez une obésité modérée'; } elseif($IMC<40){ $verdict='Vous avez une obésité sévère'; } elseif($IMC>40){ $verdict='Vous avez une obésité massive'; } echo $verdict; } } else { ?> <h1>Entrez vos Paramètres</h1> <form name="inscription" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> Entrez votre prénom : <input type="text" name="prénom"/> Entrez votre taille (sous la forme 1.XX) : <input type="text" name="taille"/> Entrez votre poids (en kilos) : <input type="text" name="poids"/> <input type="submit" name="valider" value="Ok"/> <input type="hidden" name="action" value="envoyer"/> </form> <?php } ?> </body> </html>
Donc:
Mais ce script ne change pas de page. Le resultat reste le même :cry:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <html> <head><title>Imc.php</title></head> <body> <h1>Entrez vos Paramètres</h1> <form name="inscription" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> Entrez votre prénom : <input type="text" name="prénom"/> Entrez votre taille (sous la forme 1.XX) : <input type="text" name="taille"/> Entrez votre poids (en kilos) : <input type="text" name="poids"/> <input type="submit" name="valider" value="Ok"/> <input type="hidden" name="action" value="envoyer"/> </form> <?php if (isset ($_POST['action']) && $_POST['action'] == "envoyer"){ $prénom=$_POST['prénom']; $taille=$_POST['taille']; $poids=$_POST['poids']; $IMC=$poids/($taille*$taille); echo 'Bonjour '.$prénom.'<br/> Votre IMC (indice de masse corporelle) est exactement : '.$IMC.'<br/>'; if($IMC<16.5){ $verdict='Vous êtes en dénutrition'; } elseif($IMC<18.5){ $verdict='Vous êtes maigre'; } elseif($IMC<25){ $verdict='Vous avez une corpulence normale'; } elseif($IMC<30){ $verdict='Vous êtes en surpoids'; } elseif($IMC<35){ $verdict='Vous avez une obésité modérée'; } elseif($IMC<40){ $verdict='Vous avez une obésité sévère'; } elseif($IMC>40){ $verdict='Vous avez une obésité massive'; } echo $verdict; } ?> </body> </html>
ce "DONC" n'est pas correct... ce n'est pas du tout ce que j'ai écrit. Voici ce que fait mon code : SI l'utilisateur a soumis le formulaire il affiche les "réponses" sans afficher rien d'autre SINON il affiche le formulaire
Pourquoi vouloir absolument changer de page ?
y'a pas pire méthode même si des fois on ne peut faire autrement mais ici ce n'est pas le cas
Excuse moi j'aurai du formulé autrement. j'en suis désolé ;)
je souhaite changer de page car lorsque l'on a un formulaire assez long en terme de case a remplir tout sa. C'est plus utile et visible d'arriver sur une autre page plutot que de devoir descendre tout le formulaire pour arriver a la réponse :?
Merci