8797 sujets

Développement web côté serveur, CMS

Bonsoir.
Comme dit dans le titre, j'ai un souci avec la fonction include.
Mon problème se situe au niveau de la transmission de données issues d'un formulaire et qui sont traitées par une page en php. le formulaire est inclu dans un div, comme vous pouvez le voir : http://auberge.crevoux.free.fr/auberge2/index.php?page=formulaire

Une fois le traitement effectué par la page php, celle ci renvoie vers une page de confirmation.

Ce que je voudrais, c'est que cette page de confirmation soit affichée elle aussi au meme endroit que mon formulaire.

Je n'arrive pas à savoir où inscrire une telle action. Dans le script qui traite mon formulaire? dans la page de confirmation?

Merci d'avance pour votre aide.

PS: j'ai oublié de préciser la nature du message d'erreur Smiley confus le voici :

Warning: include(./index.php?page=mailsent) [function.include]: failed to open stream: Invalid argument in K:\web\auberge2\script_resa.php on line 20

Warning: include() [function.include]: Failed opening './index.php?page=mailsent' for inclusion (include_path='.;D:/Program Files/EasyPHP 2.0b1\php5\pear\') in K:\web\auberge2\script_resa.php on line 20

D'aprés ce que j'ai pu trouver sur le net, cela doit être un problème de chemin, mais mon problème reste le même... Smiley ohwell
Modifié par Ptisouiss (10 Dec 2007 - 20:53)
Bonsoir Ptisouiss

Peux-tu mettre ton code?
Sans le code il nous est difficile de situer ton problème...

Mais apparemment ton chemin qui conduit à ton fichier est mal renseigné
a écrit :

Warning: include() [function.include]: Failed opening './index.php?page=mailsent' for inclusion (include_path='.;D:/Program Files/EasyPHP 2.0b1\php5\pear\') in K:\web\auberge2\script_resa.php on line 20

Smiley smile
Modifié par Ipszy (10 Dec 2007 - 22:53)
Alors voilà le code du fichier php traitant le formulaire :

<?php
if($_POST['action'] == 'submitted')
{
$adress = "auberge.crevoux@wanadoo.fr";
$sujet = "Réservation d'une chambre";
$message = "Une reservation a été effectué depuis le site Réservation en ligne L'Auberge de Crévoux :\n";
$message .= "Nom: {$_POST['nom']}\nE-mail: {$_POST['email']}\nadresse: {$_POST['adresse']}\ntelephone: {$_POST['tel']}\n";
$message .= "Nombre de personne: {$_POST['perso']}\nNombre de chambre: {$_POST['chamb']}\n";
$message .= "Date d'arrivee: {$_POST['arrive']} Date de depart: {$_POST['depart']}\n";
$message .= "Pension complete: {$_POST['pension']}\nMessage: {$_POST['mess']}\n";
$entete = "From: Réservation en ligne l'auberge de Crévoux\n";
mail($adress, $sujet, $message, $entete);
include "index.php?page=mailsent;
}
?>
Salut Ptisouiss Smiley cligne ,

Ton formulaire tel qu'il est codé n'a aucune chance de fonctionner puisque le bouton submit qui sert à l'envoyer se retrouve en dehors des balises <form> et </form> Smiley eek !

Sinon quelques remarques :

- pourquoi utiliser une table pour la mise en forme plutôt que les CSS (ben oui quoi, tu es sur AlsacréationS Smiley lol ) ?

- la balise <label> seule ne sert pas à grand chose alors que <label for="monid">Un libellé:</label> permet de donner le focus au champ de saisie ayant pour id "monid" quand le libellé est cliqué.

- si Javascript est désactivé chez ton visiteur, aucun champ n'est vérifié avant envoi (d'ailleurs la vérification du mail est erronée puisque aaa@aaa est accepté Smiley smile )

- pourquoi faire le test if($_POST['action'] == 'submitted') alors que if(isset($_POST)) suffirait ?

Pour en revenir à ta question, il me semble que tu confonds include qui sert à insérer du code dans la page et header qui permet de faire une redirection :
header("Location: index.php?page=mailsent");

A+ Smiley biggrin
Modifié par Heyoan (11 Dec 2007 - 00:23)
wouaah tout ca d'un coup Smiley smile
Merci à toi pour toutes ces infos, je vais me mettre au boulot tout de suite! Smiley smile
Pour le formulaire, il est vrai que je pourrais m'efforcer à utiliser CSS. Mais c'est un formulaire que j'ai récupéré sur un ancien site, et par fleme, j'avoue, je l'ai réutilisé. Ta remarque tombe à pic d'ailleurs car j'ai des souci de positionnement de mon formulaire quand je visionne mon site avec IE 7 (alors qu'avec firefox, j'ai ce que je veux). Je sais pas si ca vient de là, mais je vais modifier tout ça, et faire quelque chose de plus clean.

Pour mon problème, je test ca tout de suite.

Merci l'ami Smiley cligne
Il y a un autre problème sur la plupart de tes pages, tu inclus un document html complet.
Les includes en php ne sont PAS des frames, il ne s'agit pas d'une page affichée dans une autre mais d'une insertion de code html. Il faut donc que la cible contienne uniquement la portion de code voulue, pas de doctype, head, body, etc.
C.F. la validation
Necromantik a écrit :
Il y a un autre problème sur la plupart de tes pages, tu inclus un document html complet.
Les includes en php ne sont PAS des frames, il ne s'agit pas d'une page affichée dans une autre mais d'une insertion de code html. Il faut donc que la cible contienne uniquement la portion de code voulue, pas de doctype, head, body, etc.
C.F. la validation


Salut et merci pour tes précisions.
J'ai effectivement été confronté hier soir à des erreurs lors de la validation de mes pages. On m'indiquait que des balises <body> et d'autre n'avaient rien à faire là Smiley smile J'ai donc commencé à nettoyer mes pages. Le seul problème, c'"est que je faisais tout ca avec kompozer, et que le vilain remettait ce que j'enlevais a chaque fois!! mais j'ai compris pourquoi Smiley smile

Merci encore pour votre aide Smiley cligne