8722 sujets

Développement web côté serveur, CMS

Bonjour,
j'ai un formulaire avec un action action="index.php?confirm.php" et celui-ci ne passe pas. J'ai un message d'erreur du type :

Warning: main() ['function.include']: Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /home/xxxxx/www/index.php on line 123

Je me demandais donc si il était possible de mettre le fameux index.php?page= car sans cela ça fonctionne mais bon je n'ai que le contenu de ma page confirm.

Merci d'avance
Modifié par jiojio (13 Nov 2006 - 13:34)
Hello,
tu n'es pas au bon endroit pour ce topic. Mais cette action est tout à fait faisable, l'erreur indique uque tu appelles une fonction qui n'a pas été définie.
oui mais c'est juste une fonction include... je fais ça pour toute mes pages et pas d'erreurs. Mais la je le fais pour un form et j'ai une erreur.
Bonjour.

Je ne comprend pas ça : action="index.php?confirm.php".
Je ne connais pas cette syntaxe.

Quel est le script chargé de traiter la requete ? index.php ou confirm.php ?
ma page index.php contient des div qui constituent ma page. Dans cette page index.php j'ai une div contenu ou je place les pages de mon site comme par exemple mon formulaire (qui est donc une page à part formulaire.htm). Dans mon menu quand j'apelle ma page formulaire.htm mon lien est donc index.php?pahe=formulaire pour dire d'avoir ma page index (avec tous les div d'affichage) + ma page formulaire que j'apelle avec un include dans mon div contenu.

Alors là quand je confirme mon formulaire si je mets FORM="confirm.php" j'aurais juste ma page confim.php alors que je voudrais ma page index + confirm

J'espere que c'est claire Smiley confus
Oui. Donc cette syntaxe action="index.php?confirm.php" (que je ne connais pas) ne doit pas marcher.

Ce que vous devriez faire, c'est tester au début de votre page index.php la présence d'un contenu $_POST, et dans l'affirmative autoriser l'inclusion de confirm.php dans la div idoine...

Vous pouvez aussi, (mais est-ce nécessaire, ou même judicieux), faire action="index.php?commande=confirm" pour récupérer l'information par GET (le formulaire continuera d'être expédié par POST, mais la variable $_GET['commande'] contiendra "confirm".
Je vous dis ça uniquement pour prendre conscience qu'on peut utiliser conjointement POST et GET...

Donc, la meilleur manière devrait être de tester POST:



// Au début de la page
$toConfirm = false;
if (isset($_POST['une_variable']))
    $toConfirm = true;

<div id="confirm">
<?php
    if ($toConfirm) include "confirm.php";
?>
</div>
       

Modifié par GeorgesM (13 Nov 2006 - 12:25)
ok je vais tester cela. Mais il ne serait moins compliquer d'ouvrir la page confirm.php dans un popup ?
jiojio a écrit :
ok je vais tester cela. Mais il ne serait moins compliquer d'ouvrir la page confirm.php dans un popup ?


Non !
Par contre te créer une page confirm.php autonome, ça oui.
(structure complète entête-corps-pied)

Cela te permettra ainsi de créer un formulaire auto-invoqué permettant de réaliser tous les contrôles sur une seule et même page.
Bison a écrit :


Non !
Par contre te créer une page confirm.php autonome, ça oui.
(structure complète entête-corps-pied)

Cela te permettra ainsi de créer un formulaire auto-invoqué permettant de réaliser tous les contrôles sur une seule et même page.


oui c'est ce que je pensais. ça serait moins compliqué
Et que penses-tu de faire une page confirm.php qui, une fois les infos du formulaire traités, redirige par redirection (header location) vers une page index.php?page=... ?

Ou alors une page autonome comme dit plus haut, c'est encore mieux finalement, ça facilite le traitement des erreurs.
jiojio a écrit :
oui c'est ce que je pensais. ça serait moins compliqué

Décision sage et éclairée
Smiley cligne