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 en POST avec URL Rewriting


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut Formulaire en POST avec URL Rewriting
    Bonjour.

    Je viens vers vous car j'ai un petit souci avec mon formulaire.
    Il fonctionne parfaitement tant que je ne fais pas d'URL_Rewriting et depuis, il ne fonctionne plus du tout.

    Le submit ne transmet plus rien. J'ai du mal à comprendre, pourtant ma réécriture est correcte puisque mon contenu s'affiche.

    Vous pouvez voir ici : http://www.planetechanvre.com/nous-contacter.html

    Mon htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine On
    Options +FollowSymlinks
    RewriteRule ^nos-produits/index\.html$ /index.php?p=nos-produits [L]
    RewriteRule ^(.+)\.html$ /index.php?p=$1 [L]
    Ma page formulaire :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    if(isset($_POST['pseudo']) && isset($_POST['email']) && empty($_POST['website']) && isset($_POST['objet']) && isset($_POST['message_contact'])) {
    	$error = NULL;
    	$count_error = 0;
    	if(empty($_POST['pseudo'])) {
    		$error = $error.' \'Pseudo obligatoire\' ';
    		$count_error = $count_error + 1;
    	}
    	if(empty($_POST['email'])) {
    		$error = $error.' \'E-mail obligatoire\' ';
    		$count_error = $count_error + 1;
    	}
    	else {
    		if(!VerifierAdresseMail($_POST['email'])) {
    			$error = $error.' \'E-mail invalide\' ';
    			$count_error = $count_error + 1;
    		}
    	}
    	if(empty($_POST['objet'])) {
    		$error = $error.' \'Objet du message obligatoire\' ';
    		$count_error = $count_error + 1;
    	}
    	if(empty($_POST['message_contact'])) {
    		$error = $error.' \'Message obligatoire\' ';
    		$count_error = $count_error + 1;
    	}
     
    	if($error == NULL) {
    		$pseudo = htmlentities($_POST['pseudo']);
    		$email = htmlentities($_POST['email']);
    		$objet = htmlentities($_POST['objet']);
    		$message_contact = stripslashes(htmlentities($_POST['message_contact']));
    		$mail = '*****@hotmail.fr';
     
    		$headers = 'From: "'.$pseudo.'"<'.$email.'>'."\n";
    		$headers .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
    		$headers .= 'Content-Transfer-Encoding: 8bit';
    		mail(''.$mail.'', ''.$objet.'', ''.$message_contact.'', ''.$headers.'');
     
    		$pseudo = NULL;
    		$email = NULL;
    		$objet = NULL;
    		$message_contact = NULL;
     
    		$msg_confirm = 'Votre message a bien été envoyé. Vous recevrez une réponse rapidement.';
    	}
    	else {
    		$pseudo = $_POST['pseudo'];
    		$email = $_POST['email'];
    		$objet = $_POST['objet'];
    		$message_contact = $_POST['message_contact'];
    	}
    }
    else {
    	$pseudo = NULL;
    	$email = NULL;
    	$objet = NULL;
    	$message_contact = NULL;
    }
     
    if(!empty($msg_confirm)) {
    	echo '
    	<div id="msg_confirm">
    		<img src="./images/information.png" alt="Information" id="msg_image" />
    		<p>'.$msg_confirm.'</p>
    		<p class="spacer"></p>
    	</div>';
    }
    if(!empty($error)) {
    	if($count_error == 1) {
    		$accord = 'erreur';
    	}
    	else {
    	$accord = 'erreurs';
    	}
    	echo '
    	<div id="msg_erreur">
    		<img src="./images/erreur.png" alt="Erreur" id="msg_image" />
    		<p>'.$count_error.' '.$accord.' : '.$error.'</p>
    		<p class="spacer"></p>
    	</div>';
    }
    ?>
     
    <div id="formulaire">
    	<form method="post" action="http://www.planetechanvre.com/nous-contacter.html">
    		<div id="field_bloc">
    			<p><label for="pseudo">Votre nom <span class="champ_obligatoire">*</span></label><input type="text" id="pseudo" name="pseudo" value="<?= $pseudo; ?>" /></p>
    			<p><label for="email">Votre e-mail <span class="champ_obligatoire">*</span></label><input type="text" id="email" name="email" value="<?= $email; ?>" /></p>
    			<p style="display:none"> <textarea name="website" rows="8" cols="35"></textarea> </p>
    			<p><label for="objet">L'objet du message <span class="champ_obligatoire">*</span></label><input type="text" id="objet" name="objet" value="<?= $objet; ?>" /></p>
    			<p><label for="message_contact">Votre message <span class="champ_obligatoire">*</span></label><textarea id="message_contact" name="message_contact" rows="" cols="" ><?= $message_contact; ?></textarea></p>
    		</div>
     
    		<div id="obligatoire"><span class="champ_obligatoire">*</span> Champ obligatoire</div>
     
    		<div id="submit"><input type="submit" value="Envoyer le message" /></div>
    	</form>
    </div>

    Je ne sais pas si l'endroit est le bon, car ça mélange PHP et Apache voire HTML.

    Merci d'avance.


    Cordialement

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Points : 275
    Points
    275
    Par défaut
    si apache posait problème tu le saurai rapidement
    sinon c'est ton test sur les $_POST qui va pas
    ... empty($_POST['website'])...
    ton champ website sera toujours vide car non visible
    <p style="display:none"> <textarea name="website" rows="8" cols="35"></textarea> </p>
    je pense que soit tu vire cela soit tu mets isset et pas empty dans la condition

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Salut.

    Merci pour ta réponse.
    Ce champ invisible est un champ antibot. Il est rempli par les bots, ça me permet de faire une première sélection.

    De plus mon formulaire fonctionne bien sans l'URL Rewriting, je l'utilise depuis lgtps.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Bon en fait, le problème viendrait de mon include.

    Si je crée une page spéciale pour ma page contact au lieu de faire un include du contenu dans mon fichier index, bah ça fonctionne.

    Mais comme je vais avoir plusieurs pages contenant des formulaires, ça m'embête de devoir faire une page à chaque fois. Sinon mes includes ne servent à rien.


    Avez-vous une idée ?

    Je poste mon code pour l'include du contenu sur ma page index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if(isset($_GET['p']) && !empty($_GET['p']) && is_file('pages/'.$_GET['p'].'.php')){
        include 'pages/'.$_GET['p'].'.php';
    }
    else {
        include 'pages/accueil.php';
    }
    ?>

    Merci beaucoup

Discussions similaires

  1. Formulaire en POST avec ouverture nouvelle page en mode strict
    Par jpmur dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/03/2009, 14h50
  2. récupérer nom de produits de ma base avec url rewriting
    Par Stéph utilisateur d'acces dans le forum Apache
    Réponses: 4
    Dernier message: 27/02/2009, 18h41
  3. Problème avec url rewriting
    Par queen_pitbull dans le forum Apache
    Réponses: 6
    Dernier message: 22/01/2009, 14h41
  4. Petit souci avec URL Rewriting
    Par jhdscript dans le forum Apache
    Réponses: 6
    Dernier message: 18/06/2008, 09h02

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