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
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part <form method="post" action="login.html">
Oui effectivement je me suis trompé en disant cela mais voici mon script fait grâce a un tuto qui est trés bon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <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 ? .
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.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part <form method="post" action="WoooHHHHHOOOomonFF_ichier_delaMaurtQuituuuuetout.php">
code du fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Solution 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part <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 met
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager