rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Php.... if(conditions=1){affichage page html}

Posté par delirium, le samedi 5 mai 2007 à 19:19:45
bonjour,

j'ai une partie de code php ci dessous :

if(@mail($email_webmaster,$_POST["titre"],$_POST[&­quot;message"],$entete)){
// mail envoyé
donc affichage direct de la page de remerciement ...
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\&qu­ot;>Réessayez...</a>\n";
}
}

J'ai essayé avec Header("Location: ./merci.html"); mais ca ne fonctionne pas.. une petite aide... merci
Configuration: Windows XP
Firefox 2.0.0.3
Répondre à delirium  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le samedi 5 mai 2007 à 19:48:54
salut,

pourrais-tu nous en dire un peu plus ?
qu'est-ce qui ne marche pas ?
si tu veux envoyer un header il ne faut envoyer aucun caractère avant.
il y avait un article dans la faq, je ne le retrouve pas.

et à priori, il vaudrait mieux le rédiger ainsi :
header("Location:../merci.html");

[ Mathieu ]
savoir rester faignant, c'est progresser en informatique. enfin, j'essaie…
Répondre à Dalida

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
delirium, le samedi 5 mai 2007 à 19:51:18
le propleme c'est que j'inclu l'affichage de mon formulaire avant c'est pour ca que je peux pas utiliser le Header.. une autre alternative ?
Répondre à delirium

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le samedi 5 mai 2007 à 20:21:23
tu dois pouvoir le gérer autrement.

tu ne peux pas mettre le traitement dans un script à part qui renverrai via header soit vers le formulaire soit vers le remerciement ?
[ Mathieu ]
savoir rester faignant, c'est progresser en informatique. enfin, j'essaie…
Répondre à Dalida

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
delirium, le samedi 5 mai 2007 à 20:34:34
et appeler un script java dans la premiere parti du if ?

genre : if(conditions=1) (lancer script java redirection auto) else(....)
Répondre à delirium

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le samedi 5 mai 2007 à 23:25:41
non, je pensais à un script php…

- formulaire
- script php qui envoie le mail
- page de remerciement

le formulaire execute le script d'envoi de mail
dans le script:
- si mail() alors redirection remerciement
- sinon redirection formulaire
[ Mathieu ]
savoir rester faignant, c'est progresser en informatique. enfin, j'essaie…
Répondre à Dalida

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le dimanche 6 mai 2007 à 11:56:16
salut,

la nuit porte conseil…
dans mon post précédent je pense avoir été chercher une solution bien compliquée pour peu de chose…

comment ce fait-il que tu envoies le code du formulaire avant le header ?
le script php qui traite l'envoie du mail est situé où ? dans un fichier séparé où dans le même fichier que le formulaire html ? dans ce dernier cas il suffirait d'inverser formulaire et traitement.
[ Mathieu ]
savoir rester faignant, c'est progresser en informatique. enfin, j'essaie…
Répondre à Dalida

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
delirium, le lundi 7 mai 2007 à 00:05:08
le script qui traite du formulaire est situé avant la parti html... avec dans la parti html la gestion de la fonction décrite ci dessus... c'est peut etre la le pb....
Répondre à delirium

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le lundi 7 mai 2007 à 01:24:29
dur, dur, de voir exactement ce que tu veux dire, tu peux nous en dire plus ?

peux-tu coller le code (sans info perso…) ?

car avec les header le moindre caractère, espace y compris, peut être fatidique.
[ Mathieu ]
savoir rester faignant, c'est progresser en informatique. enfin, j'essaie…
Répondre à Dalida

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
delirium, le lundi 7 mai 2007 à 08:29:26
Ok voici tout le code source de contact.php

le traitement des condition envoi mail sont en bas du code il y a un commentaire là ou je souhaite mettre le Header location.




<?php
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
?>
<?php

$email_webmaster = "*******@*******.eu";
$titre_cache = "message du site www.**********.eu - / ";
// === traitement des données du formulaire ============================================================­
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["email_expediteur"])) {
$_POST["email_expediteur"]=trim(stripslashes($_POS­T["email_expediteur"]));
}
if (isset($_POST["titre"])) {
$_POST["titre"]=trim(stripslashes($_POST["tit­re"]));
}
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["m­essage"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre adresse email...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a­-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"­])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Saisissez un message...";
}
elseif (empty($_POST["code"])) {
// le code n'est pas saisi
$erreur="Saisissez le code de verification...";
}

else {
// --- Vérification de la validité du code captcha ---
if (chk_crypt($_POST['code']))
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
// --- Le code captcha n'est pas valide ---
else $erreur="Code de verification non valide ...";
}
}

else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"­;>
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de contact</title>
<style type="text/css">
<!--
body {
background-color: #BBB0AA;
}
.Style1 {font-size: 14pt}
-->
</style></head>
<body>
<h1 align="center" class="Style1">Contacter le Webmaster </h1>
<div align="center">
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</stron­g></p>\n";
// afficher le message d'erreur
}
?>
</div>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p align="center"><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label>
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QU­OTES);
}
?>" />
<br />
</p>
<p align="center"><label for="titre">Titre de message (facultatif):</label>
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
<br />
</p>
<p align="center"><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="75" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?>
Répondre à delirium

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
delirium, le lundi 7 mai 2007 à 08:31:57
/*---- FIN DU CODE ------*/

</p>
<p align="center">Recopier le texte contenu dans l'image en bas. Cliquez sur <img src="crypt/images/reload.png" alt="reload" width="25" height="31" align="absmiddle" /> en cas d'image illisible. </p>
<div align="center">
<?php dsp_crypt(0,1);?>
</div>
<p align="center"><input type="text" name="code" />
</p>
<p align="center"><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<div align="center">
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n­";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$titre_cache.$_POST["titre"­;],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"index2.html\" target=\"_parent\">Retour au menu principal.</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\&qu­ot;>Réessayez...</a>\n";
}
}
?>
</div>
</body>
</html>

/*-----------------------------*/
voilà pour le code Header que je souhaite placer :


Header("Location: ./imerci.html");
Répondre à delirium

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le lundi 7 mai 2007 à 10:21:07
salut,

si tu places le header à sa place actuelle (après "// erreur lors de l'envoi du mail ") le document html est déjà en parti envoyé donc un header à déjà été envoyé par le serveur.

le plus simple est de simplement inverser la façon de faire.
au début ça ne change pas. tu testes les données envoyées par le formulaire, si il a été soumis.
mais au lieu d'attaquer la page html il faut en premier poser ta condition
if ($etat="ok")
(tu auras remarqué que j'ai inversé l'inégalité). à l'intérieur du sandwich tu envoies le mail. si l'envoie réussit tu renvoie ailleurs avec header().
ensuite du passe au else et attaques la page html.

j'espère avoir été clair. il suffit juste d'organiser le code "en sens inverse" de façon à pouvoir envoyer un header avant d'avoir envoyé un quelconque caractère, c'est à dire avant d'avoir écrit quoi que ce soit en html ou d'avoir utiliser un echo() ou tout autre commande php qui envoie du texte vers le navigateur.
[ Mathieu ]
Comprenne qui peut, succombe qui doit…
Répondre à Dalida

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asmaau, le jeudi 7 février 2008 à 23:41:47
salut tt le monde ,j'ai un petit probleme
je veux la disponibilité de chambres d'1 hotel ,j'ai fais une requete ,et une boucle if pour verifier s'il y a la demande du client
voici le code

<body>
<form>
<table border=1 >
<tr><td>
<input type="text" name="nbre" />
</td></tr>
<tr><td> nombre de chambres </td>
<td><input type="text" name="nbr" /></td>
</tr>
<tr>
<td>type de chambre</td>
<td>
<select name="typechambre">
<option></option>
<option >single</option>
<option >double</option>
<option >suite geniors</option>
<option >suite seniors</option>
</select>
</td>
<tr>
<input type="submit" value="verifier" />
<? mysql_connect("localhost","root","&­quot;);
mysql_select_db ("bd_php");
$req=mysql_query ("select count (*) as nbre from chambre where etat='dispo' ")
if ( $req => nbr )
// c là ou je ne c koi faire
// je veux redirectioner le client vers le formulaire pour le remplir
</body>
</html>


merci d'avance
Répondre à asmaau

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dalida, le jeudi 7 février 2008 à 23:46:30
salut,

fais ton test en tout début de document (aucun caractère avant la balise PHP !) et redirige avec 'header()'.
if ( $req => nbr )
{
header( 'Location: http://www.domaine.tld/formulaire.php' );
}
[ Mathieu ]
« On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007.
Répondre à Dalida

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 dana, le samedi 7 juin 2008 à 09:52:52
Bonjour,
j'ai creer un site web mais j'ai un probléme dans la partie envoi des mails au niveau Exchange,
je sais pas comment je le fais,
Répondre à dana
Logiciels pertinents trouvés dans les téléchargements
Télécharger HTMLDOC 1.8.24HTMLDOC - HTMLDOC est un outil permettant de convertir une page HTML (Hyper-Text Markup Language) vers un fichier HTML indexé, vers...Catégorie: PDF
Licence: Freeware/gratuit
Télécharger NVU 1.0NVU - NVU est un éditeur HTML WYSIWIG (What You See Is What You Get) libre, c'est-à-dire un logiciel permettant de créer...Catégorie: Editeurs HTML
Licence: Open Source
Télécharger Casc'ADSL 0.99 build 4209Casc'ADSL - Casc'ADSL est un outil destiné aux Internautes se connectant via le service d'accès distant et désireux de maintenir leur...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger Free FLV Converter V4.4Free FLV Converter - Free FLV Converter est un logiciel qui permet de faire une recherche rapide de fichiers vidéo sur Youtube, Dailymotion,...Catégorie: Conversion
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « php.... if(conditions=1){affichage page html} »