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 020 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

Commenter la réponse de cs_apz

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.