Envoyer un header transportant des variables à l'aide de combinaison javascript/php + des astuces.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 043 fois - Téléchargée 25 fois

Contenu du snippet

J'ai trouvé un script sur le net (différement), d'ou l'idée me vient de le modifier pour mes besoins(dépasser le message génant: headers already sent...)quand on ai obligé de rédiger le header au milieu de la page PHP,

Conclusion :


Voilà la solution:

EXEMPLE:
Supposant quand a créé une page formulaire.htm avec des champs nom email titre et message et pour simplifier on a créé une page de vérification nommée verify.php

la page verify.php
<?

//Au suivant la varible $head (vous pouvez changer le nom de la variable ,biensur le meme
//doit etre recopier au milieu du script javascript. Vous pouvez également changer le nom de la //page ou les informations seront affichées pour que les visiteurs puissent voir ce qu'ils ont //écrit el laissé comme messages.

$head=header("location:informations.php?w=$nom&x=$email&y=$titre&z=$message");

//Les différentes étapes pour vérifier le formulaire (champs vides , validité d'e-mail...)

//Surement mysql_query ("INSERT INTO `nomdelatable` VALUES ('','$nom', '$email','$titre','$message' )"); // Le premier vide est réservé à l'ID qui éxiste surement dans la base de données.

//Au suivant le script JavaScript permettant de dépasser le problème .Si vous avez changeé le nom //de la variable $head au début le meme changement doit s'effectuer dans le script.

?><HEAD>
<SCRIPT language="JavaScript">
<!--
location.replace("<? echo $head; ?>");
//-->
</SCRIPT>
<?

//Des fins probables comme mysql_close();
?>

Peut etre vous dites pourquoi ne pas afficher les informations envoyées par le visiteur dans la meme page?
Pour moi c'était pour éviter les problèmes d'affichage (des slashes avant les apostrophes) car si vous faites dans cette page des expressions tel ...stripslashes.. les informations s'afficherons correctemnt dans la page mais risquent de ne pas etre recuilli correctemnt dans la base de données .

Pour surmenter ce problème:

la page informations.php

<?
//POUR SUPPRIMER LES SLASHES AVANT LES APOSTROPHES.

//POUR LE NOM
$nom=StripSlashes($w);
$w=Stripslashes($nom);

//POUR LE MAIL
$email=Stripslashes($x);
$x=Stripslashes($mail);

//POUR LE TITRE
$titre=Stripslashes($y);
$y=Stripslashes($titre);

//POUR LE MESSAGE
$message=Stripslashes($z);
$z=Stripslashes($message);

echo "Merci <b>$w</b> pour votre participation .(ou n'importe expression) Vous avez laissé:<br>E-mail:<b>$x</b><br>Objet:<b>$y</b><br>Votre message:<br><b><font face=verdana color=blue size=2>$z</font></b>";

//ça n'est pas nécessaire d'écrire à chaque ligne echo""; Vous avez aussi le choix de la police //de la couleur ainsi que de sa taille sans mettre ni "" ni '' au milieu et ça marche avec moi //parfaitement avec le trio PHP4-APACHE-MYSQL sous windows XP.

//Autre avantage, seulement les slashes avant les apostrophes qui ne s'afficheront pas mais des //typiques comme http://www... s'afficheront normalement.
?>

Problème ou remarque ?
Réception puis réponse avec plaisir: sidoummoudz@yahoo.fr

Bonne chance les débutants comme moi, hasta la proxima...

A voir également

Ajouter un commentaire

Commentaires

frdtech
Messages postés
4
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
21 octobre 2005
-
Ton astuce semble très interressante, mais c'est tellement confus ...
Tes commentaires sont très mal formulés, mal présentés et en plus c'est bourré de fautes (disons de frappe)...
C'est dommage.

Si j'ai bien compris, tu essayes de faire passer ton entête de PHP à Javascript pour l'enregistrer,
Tu ecris :
$head=header("location:informations.php...
Hors le prototype PHP de header est:
void header ( string string [, bool replace [, int http_response_code]])
Que vaut donc $head ?

Je ne vais pas plus loin pour le moment et ne note pas.
cs_apz
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
je m'exuses pour le triple post :)

il faut effacer les surplus, merci admin
cs_apz
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
j'ai un probleme dans le meme sens :

par exemple quand je verifie mes champs et qu'il y'a une erreur je fais history.back() ou history.go(-1) pour revenir a mon formulaire avec conservation des entrees des champs deja faites.

mais voila la page est toutes blanche avec un avertissement :

Avertissement : expiration du délai pour cette page

ou les champs du formuliare sont tous vides !!!

que se passe-t-il donc ?

Merci.
cs_apz
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
j'ai un probleme dans le meme sens :

par exemple quand je verifie mes champs et qu'il y'a une erreur je fais history.back() ou history.go(-1) pour revenir a mon formulaire avec conservation des entrees des champs deja faites.

mais voila la page est toutes blanche avec un avertissement :

Avertissement : expiration du délai pour cette page

ou les champs du formuliare sont tous vides !!!

que se passe-t-il donc ?

Merci.
cs_apz
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
j'ai un probleme dans le meme sens :

par exemple quand je verifie mes champs et qu'il y'a une erreur je fais history.back() ou history.go(-1) pour revenir a mon formulaire avec conservation des entrees des champs deja faites.

mais voila la page est toutes blanche avec un avertissement :

Avertissement : expiration du délai pour cette page

ou les champs du formuliare sont tous vides !!!

que se passe-t-il donc ?

Merci.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.