Redirigé vers une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Redirigé vers une page

Re: Redirigé vers une page

par BXDS » 27 nov. 2010, 16:36

Merci à tous
C'est bon
ça marche

Re: Redirigé vers une page

par moogli » 27 nov. 2010, 15:08

salut,

pour échapper des caractères spéciaux (ici les " mais aussi les ') il faut utiliser \

donc echo "Contact<a href=\"index.html\">";

perso je préfère utiliser des ' pour délimiter les chaine avec html cela évite ce soucis pour le code html mais se reporte sur les ' dans le texte si entré à la mano.
echo 'Contact<a href="index.html">';

la syntaxe des chaines de caractères dans la doc php => http://www.php.net/manual/fr/language.types.string.php

@+

Re: Redirigé vers une page

par BXDS » 27 nov. 2010, 14:26

Comment tu protège ? Je vois que la zone de la page est en noir et non en rouge.

Merci de cette remarque

Re: Redirigé vers une page

par Ryle » 27 nov. 2010, 11:37

Utilise la balise php quand tu postes du code sur le forum, la coloration syntaxique te permettrait de voir immédiatement qu'il y a un problème avec l'une des chaines affichée dans ton code :
echo "<HTML><HEAD>";
echo "<TITLE>Confirmation de l'envoi!</TITLE></HEAD><BODY >";
echo "<H1 align=center>Merci, $formPrenom. .$formNom</H1>";
echo "<P align=center>";
echo "Votre demande a bien envoyé. Nous vous répondrons dans les plus brefs délais.</P>";
echo "Contact<a href="index.html">";
echo "</BODY></HTML>";
Dans une chaine entre guillemets, il faut protéger les guillemets que tu veux afficher si tu veux que php ne considère pas qu'il s'agit de la fin de la chaine.

Pour en revenir à ton problème, php te permet de faire des redirection côté serveur AVANT d'envoyer des données au navigateur (fonction header()). Dans ton cas, tu veux afficher un message à l'utilisateur et le rediriger après. Il faut donc te tourner vers des solutions de redirection côté client, c'est à dire en javascript ou html.

En javascript il faut utiliser la fonction setTimeout() pour fixer un délai avant de faire appel à une fonction qui effectuera la redirection (tu peux alors utiliser le code de damaskinos pour la redirection).
En html, tu peux utiliser une balise meta qui te permet de rafraichir la page et éventuellement de rediriger l'utilisateur vers une autre page après un certain délai :
 <meta http-equiv="Refresh" content="3;URL=http://www.phpfrance.com/">

Re: Redirigé vers une page

par BXDS » 27 nov. 2010, 10:07

J'ai essayé l'écho précédent. Cela ne marche pas.
J'ai essayé de mettre un bouton mais j'ai l'erreur suivante
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /homepages/3/d348005581/htdocs/envmail.php on line 68
Dans mon code il y a une erreur
/* Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
$Entete = "MIME-Version: 1.0\n";
$Entete .= "Content-type: text/html; charset=utf-8\n";
$Entete .="From: $formemail";

mail($destinataire, $Sujet, $Message, $Entete);

echo "<HTML><HEAD>";
echo "<TITLE>Confirmation de l'envoi!</TITLE></HEAD><BODY >";
echo "<H1 align=center>Merci, $formPrenom. .$formNom</H1>";
echo "<P align=center>";
echo "Votre demande a bien envoyé. Nous vous répondrons dans les plus brefs délais.</P>";
echo "Contact<a href="index.html">";
echo "</BODY></HTML>";
La ligne 68 correspond à l'appel d'index.html.

Une idée ?

Merci

Re: Redirigé vers une page

par damaskinos » 26 nov. 2010, 21:47

J'ai fais un test avec ce que je t'ai proposé. L'affichage ne s'effectue pas, ensuite un 5 secondes d'attente et ensuite la redirection. Il y a 5 seconde d'attente, affiche et tout de suite redirection. Alors je te conseillerais ma première proposition. À savoir si le mail est envoyé avec succès, tu envoies un code à la page que tu veux rediriger. Si tu recupères le code dans cette page tu mets un message de confirmation.

Re: Redirigé vers une page

par damaskinos » 26 nov. 2010, 21:29

Montre un peu l'erreur que tu as ?

Re: Redirigé vers une page

par damaskinos » 26 nov. 2010, 21:29

effectivement tu peux pas afficher quelque chose avant le header. Donc sur ta page que tu rediriges, tu pourrais envoyer 1 pour réussi ou -1 si erreur et faire un test dessus pour afficher le message qu'il faut sinon tu redirige avec du javascript
echo '<script> document.location.href="http://www.mondomaine.com";'</script>
Bon jusqu'à quel point c'est propre là, reste à savoir mais ça devrait fonctionner.

Donc tu mets ton
sleep(5); donc arrete 5 seconde
Ensuite ton javascript. Note que si javascript est pas activé chez le client, la page ne sera pas redirigée alors pense à inclure un lien juste avant qui permet de cliquer pour aller à la page tu veux au cas ou javascript est pas activé.

Voilà j'espère que ça va te faire avancer.

Re: Redirigé vers une page

par BXDS » 26 nov. 2010, 21:27

Je viens de constater que lors de la lecture du script du php. Il s'arrete au echo et il ne lit pas le header qui se trouve après.

Re: Redirigé vers une page

par BXDS » 26 nov. 2010, 21:09

Le problème, lorsque je mets Header. J'ai une erreur.

Re: Redirigé vers une page

par damaskinos » 26 nov. 2010, 21:04

As-tu essayé de chercher un peu? http://lmgtfy.com/?q=redirection%2Bphp

Le premier lien l'explique.

Un peu d'effort quand même.

Re: Redirigé vers une page

par BXDS » 26 nov. 2010, 20:52

C'est bien tu m'a expliqué comment faire pour attendre avec d'effectuer un travail. Moi ce qui m'intéresserait aussi c'est de diriger vers une autre page HTML.

Cordialement

Re: Redirigé vers une page

par damaskinos » 26 nov. 2010, 20:18

Salut,

Regarde du côté de sleep. Ca devrait répondre à tes attentes.
http://ca2.php.net/manual/fr/function.sleep.php

Bonne continuation

Redirigé vers une page

par BXDS » 26 nov. 2010, 17:36

Bonjour

J'ai réalisé une fichier php qui retraite et envoi un formulaire.

En bas de la base, j'ai généré des echos afin de générer une page de remerciement.

J'aimerai aussi que cette page s'affiche quelques instants puis être redirigé vers la page d'accueil.

Comment faire ?
mail($destinataire, $Sujet, $Message, $Entete);

echo "<HTML><HEAD>";
echo "<TITLE>Confirmation de l'envoi!</TITLE></HEAD><BODY >";
echo "<H1 align=center>Merci, $formPrenom.' '.$formNom</H1>";
echo "<P align=center>";
echo "Votre demande a bien envoyé. Nous vous répondrons dans les plus brefs délais.</P>";
echo "</BODY></HTML>";
Voici la fin de mon code de traitement avant la balise de fin de php.

Merci

Cordialement