IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire fonctionne en GET mais pas en POST


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Formulaire fonctionne en GET mais pas en POST
    Bonjour,
    J'ai un problème avec la soumission d'un formulaire tout simple. Lorsque je met la method="get", je récupère bien un tableau avec les données entrées. Cependant lorsque je le fais en post, le tableau est désespérément vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form method="post" action="trait_contact.php">
     
    	<label for="titre" class="float"><strong>Sujet :</strong></label>
    	<input type="text" name="titre" id="titre" size="80" value="<?php echo $_SESSION['retour'][0] ?>"/><br />
    	<label for="message" class="float"><strong>Message :</strong></label>
    	<textarea name="message" id="message" rows="10" cols="45"><?php echo $_SESSION['retour'][1] ?></textarea><br />
    	<br />
     
    	<p align="center">
    	<input type="submit"/> 
    	</p>
     
    </form>
    Sur la page trait-contact.php, apres quelques include je fais juste un print_r($_POST).


    Je n'arrive pas à voir d'où peut venir l'erreur...
    Merci par avance !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et si tu enleves les quelques includes ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2006
    Messages : 321
    Points : 142
    Points
    142
    Par défaut
    j' ai eu le soucis il n'y a pas longtemps et c'était du au fait que mon script a été créé sur un serveur en php4 et pas testé sur php 5.

    Il est possible aussi que le safe mode est désactivé et donc tu ne pourras pas utiliser les sessions, je te conseille d'enlever tes includes temporairement et de mettre des valeurs en dur à tes input afin de ne tester réellement que le formulaire.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre réponse. Le site est hébergé par 1and1 si ca peut aider. Je vais chercher de mon coté.

    Mais sinon de mieux en mieux, lorsque j'arrive sur la page de traitement je teste si $_POST est défini et non vide, et dans ce cas j'affiche un message d'erreur, ce que j'ai depuis tout à l'heure.

    Cependant dans le cas ou le $_POST serait bon, j'utilise une fonction pour envoyer un mail...et malgré le message d'erreur j'ai bien recu les mails!

    voici le code de la page de traiteament:
    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
     
    <?php include('config.php');
    	$titre='Traitement du message';
    	include(realdir.'/include/haut.php'); 
     
    	print_r($_POST);
    	// S'il y a une erreur on retourne sur la page d'envoi de message avec les champ préremplis
    	$re_titre=htmlspecialchars($_POST['titre']);
    	$re_message=htmlspecialchars($_POST['message']);
     
    	// Stockage des champs dans un array
    	$re_traitement=array("$re_titre","$re_message");
    	$_SESSION['retour']=$re_traitement;
     
    	//Traitement
    	echo '<h1>Traitement du message</h1>';
    	if (!isset ($_POST['message']) or empty($_POST['message']))
    	{
    					echo '<h3><p style="text-align:center;">Le contenu du message à envoyer n\'est pas valide (vide ?!). Veuillez le corriger et renvoyer un nouveau message.</h3></p> <p style="text-align:center;"><h2><a href="mail.php">Retour</a></h2></p>';
    	}
    	else
    	{
    		if (contact_mail(adressemail1, $re_titre, $re_message))
    		{	
    			echo '<h3><p style="text-align:center;">Le message a été envoyé avec succès.</h3></p> <p style="text-align:center;"> <h2><a href="index.php">Accueil</a></h2></p>';
    			unset($_SESSION['retour']);
    		}	
    		else
    		{
    			echo '<h3><p style="text-align:center;">Une erreur est survenue lors de l\'envoi. Veuillez recommencer la procédure</h3></p> <p style="text-align:center;"></h2><a href="mail.php">Retour</a></h2></p>';
    		}
    	}
     
    	include(realdir.'/include/bas.php');
     
    ?>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2006
    Messages : 321
    Points : 142
    Points
    142
    Par défaut
    met un php_info() dans ta page pour savoir la version du php et si le safe_mode est désactivé. Ensuite, c'est normal, qu'il lance le mail car il est possible que ta variable existe mais qu'elle soit vide

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    ok
    Je n'ai pas spécifié mail il lance le mail avec les chaines de caractère qui aurait du etre dans le POST qui lui est vide ?!?
    J'essaie php_info() desuite.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    La valeur est: safe_mode Off Off

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Sans include ca marche. Je récupère bien la chaine de caractère.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bon en fait cela vient de ce code, qui sert à récupérer la résolution d'écran.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    	<!-- debut
    	function resolution() {
    	document.location="<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>&width="+screen.width+"&height="+screen.height;
    	}
    	// fin -->
    	</script>
    Visiblement ca pose problème mais je ne m'y connait pas bien en javascript.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code transmet les valeurs existants dans l'url mais forcemment si tu passes par POST ca ne marche plus.
    Si tu dois vraiment connaitre la resolution de l'utilisateur fait le plutot sur ta premiere page et stock le résultat en session.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Ok ! Y a-t-il une façon pour mettre directement la taille en $_Session sans passer par un réinscription d'URL et un $_GET ?
    Genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    $_SESSION['Largeur']= screen.width;
    </script>
    Merci pour votre aide !

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser Ajax avec XhttpxmlRequest : ta fonction javascript recupere la donnée et la transmet a une page PHP qui est juste la pour la mettre en session.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WM20] HTTPRequête avec methode POST fonctionne sur android mais pas sur ios
    Par law56100 dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 01/07/2015, 11h20
  2. Réponses: 1
    Dernier message: 22/05/2013, 13h29
  3. Réponses: 1
    Dernier message: 28/05/2012, 14h37
  4. CURL fonctionne en GET mais pas en POST
    Par Alexdezark dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2009, 23h17
  5. Fsockopen fonctionne en get mais pas en post
    Par Defaite dans le forum Langage
    Réponses: 1
    Dernier message: 23/09/2008, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo