Preview d'un formulaire (PHP+javascript)
Fermé
netwebzone
Messages postés
55
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
22 août 2008
-
28 déc. 2004 à 20:34
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 4 janv. 2005 à 22:06
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 4 janv. 2005 à 22:06
A voir également:
- Preview d'un formulaire (PHP+javascript)
- Formulaire de réclamation facebook - Guide
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum HTML
8 réponses
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
29 déc. 2004 à 02:31
29 déc. 2004 à 02:31
Salut,
Je suis pas certain d'avoir bien compris ton truc.
Admettons que j'ai compris :-)
Lorsque la page sera appelée, le php agira comme ça:
$news et $date prendront ça comme des chaines telles qu'elles : document.write...etc, et pour cause: l'affectation de $news et $date se passe côté serveur, donc ce Javascript n'a pas encore été interpété par un navigateur, ce n'est rien d'autre qu'une chaîne de caractère.
La suite logique des choses :
$date retournera :
..et c'est le même genre de truc pour $news. Ensuite, ce que va filtrer Filtre_afficher($news) n'est rien d'autre que du Javascript non interprété, car si tu as bien suivi, c'est l'équivalent de :
Et evidemment ya pas de BBcode là dedans, donc rien ne sera filtré.
Au final, voici ce que va te retourner cette portion de code Php:
Si tu regardes la source de ta page sur ton navigateur, tu verras sûrement ça...si j'ai bien compris ton truc. Si c'est le cas j'espère que tu vois aussi...
Je suis pas certain d'avoir bien compris ton truc.
Admettons que j'ai compris :-)
Lorsque la page sera appelée, le php agira comme ça:
$date = '<script language="javascript">document.write(window.opener.document.post.form_date.value);</script>'; $news = '<script language="javascript">document.write(window.opener.document.post.form_news.value);</script>';
$news et $date prendront ça comme des chaines telles qu'elles : document.write...etc, et pour cause: l'affectation de $news et $date se passe côté serveur, donc ce Javascript n'a pas encore été interpété par un navigateur, ce n'est rien d'autre qu'une chaîne de caractère.
La suite logique des choses :
echo '<span class="texte"><strong>'.$date.' :</strong> '.Filtre_afficher($news).'</span>';
$date retournera :
$date = '<script language="javascript">document.write(window.opener.document.post.form_date.value);</script>'; // Et non pas le Javascript interprété
..et c'est le même genre de truc pour $news. Ensuite, ce que va filtrer Filtre_afficher($news) n'est rien d'autre que du Javascript non interprété, car si tu as bien suivi, c'est l'équivalent de :
Filtre_afficher('<script language="javascript">document.write(window.opener.document.post.form_news.value);</script>'
Et evidemment ya pas de BBcode là dedans, donc rien ne sera filtré.
Au final, voici ce que va te retourner cette portion de code Php:
<span class="texte"><strong><script language="javascript">document.write(window.opener.document.post.form_date.value);</script> :</strong> <script language="javascript">document.write(window.opener.document.post.form_news.value);</script> </span>
Si tu regardes la source de ta page sur ton navigateur, tu verras sûrement ça...si j'ai bien compris ton truc. Si c'est le cas j'espère que tu vois aussi...
Sm95ZXVzZXMgZup0ZXMgOi0p
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
29 déc. 2004 à 02:54
29 déc. 2004 à 02:54
Donc le truc : soit tu fais ton filtre en Javascript.
Soit tu envoies ton formulaire vers un autre page (ou la même) et tu récupères les données de ton formulaire avec le tableau $_GET (ou $_POST, selon la methode que tu as utilisée).
Là tu filtres ces variables en php puis tu mets tout ça en forme dans une variable
$preview puis "echo $preview".
Soit tu envoies ton formulaire vers un autre page (ou la même) et tu récupères les données de ton formulaire avec le tableau $_GET (ou $_POST, selon la methode que tu as utilisée).
Là tu filtres ces variables en php puis tu mets tout ça en forme dans une variable
$preview puis "echo $preview".
Sm95ZXVzZXMgZup0ZXMgOi0p
netwebzone
Messages postés
55
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
22 août 2008
4
29 déc. 2004 à 09:23
29 déc. 2004 à 09:23
oui tu as bien compris kilian ! lol
Je sais c'est un peu compliqué, et je savais pas trop comment expliquer mais apparement je m'en suis pas mal sortis vu que t'as compris...
Ben pour faire le filtre en javascript, j'y arriverais pas, je connais pas assez...
ma fonction en PHP, c'est des truc du style :
function Filtre_afficher($chaine)
{
$chaine = @stripslashes(@nl2br($chaine));
$chaine = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $chaine);
$chaine = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=_blank>\\1\\3</a>'", $chaine);
$chaine = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=\"$1\" target=\"_blank\">$2</a>", $chaine);
$motif = array('#\[mail\]([^[]*)\[/mail\]#i', '#\[mail=([^[]*)\]([^[]*)\[/mail\]#i');
$rplc = array('<a href="mailto:$1">$1</a>', '<a href="mailto:$1">$2</a>');
$chaine = preg_replace($motif, $rplc, $chaine);
$chaine = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $chaine);
......
}
Pour le GET, je ne pense pas que ce soit approprié parce que je crois que ca a une taille limite nan ?
Par le POST, oui peut-être, mais l'ennui c'est que dans mon formulaire, j'ai déja un onsubmit lorsque je l'envoie pour vérifier les champs !
Ca donne à peu près ca en simplifier... :
<form action=index.php?page=news method=post enctype=multipart/form-data name=post onsubmit="return FormVerif(this)">
<textarea name="form_news" cols="77" rows="8"></textarea>
<input class=class1 type=button name=Submit2 value=Prévisualisation onClick="window.open('inc/preview.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=500, height=300');return(false)">
<input class=class1 type=submit name=Submit value=Envoyer>
Ma fonction javascript pour vérifier les champs c'est celle la :
function FormVerif(formulaire) {
if (formulaire.form_date.value.length == 0) { alert("Merci d\'entrer une date !"); return false; }
else if (formulaire.form_txt.value.length == 0) { alert("Merci d\'entrer une news !"); return false; }
formulaire.Submit.value='Patientez...';
formulaire.Submit.disabled='disabled';
return true; }
Enfin, si quelqu'un a une idée, peut-être quelque chose du genre dans cette fonction indiquer de quel bouton on vient, et donc si c'est le bouton de prévisualisation, on emmene tout dans la page preview.php
Enfin je ne sais pas...
Si quelqu'un a une idée...
Merci
A+
Je sais c'est un peu compliqué, et je savais pas trop comment expliquer mais apparement je m'en suis pas mal sortis vu que t'as compris...
Ben pour faire le filtre en javascript, j'y arriverais pas, je connais pas assez...
ma fonction en PHP, c'est des truc du style :
function Filtre_afficher($chaine)
{
$chaine = @stripslashes(@nl2br($chaine));
$chaine = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $chaine);
$chaine = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"\\1' . str_replace(' ', '%20', '\\3') . '\" target=_blank>\\1\\3</a>'", $chaine);
$chaine = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=\"$1\" target=\"_blank\">$2</a>", $chaine);
$motif = array('#\[mail\]([^[]*)\[/mail\]#i', '#\[mail=([^[]*)\]([^[]*)\[/mail\]#i');
$rplc = array('<a href="mailto:$1">$1</a>', '<a href="mailto:$1">$2</a>');
$chaine = preg_replace($motif, $rplc, $chaine);
$chaine = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $chaine);
......
}
Pour le GET, je ne pense pas que ce soit approprié parce que je crois que ca a une taille limite nan ?
Par le POST, oui peut-être, mais l'ennui c'est que dans mon formulaire, j'ai déja un onsubmit lorsque je l'envoie pour vérifier les champs !
Ca donne à peu près ca en simplifier... :
<form action=index.php?page=news method=post enctype=multipart/form-data name=post onsubmit="return FormVerif(this)">
<textarea name="form_news" cols="77" rows="8"></textarea>
<input class=class1 type=button name=Submit2 value=Prévisualisation onClick="window.open('inc/preview.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=500, height=300');return(false)">
<input class=class1 type=submit name=Submit value=Envoyer>
Ma fonction javascript pour vérifier les champs c'est celle la :
function FormVerif(formulaire) {
if (formulaire.form_date.value.length == 0) { alert("Merci d\'entrer une date !"); return false; }
else if (formulaire.form_txt.value.length == 0) { alert("Merci d\'entrer une news !"); return false; }
formulaire.Submit.value='Patientez...';
formulaire.Submit.disabled='disabled';
return true; }
Enfin, si quelqu'un a une idée, peut-être quelque chose du genre dans cette fonction indiquer de quel bouton on vient, et donc si c'est le bouton de prévisualisation, on emmene tout dans la page preview.php
Enfin je ne sais pas...
Si quelqu'un a une idée...
Merci
A+
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
2 janv. 2005 à 20:43
2 janv. 2005 à 20:43
Là c'est toi qui voit. J'y connais presque rien en Javascript.
Par contre je ne savais pas que la methode Get était limitée pour la quantité des données...Tu en es sûr?
Par contre je ne savais pas que la methode Get était limitée pour la quantité des données...Tu en es sûr?
Sm95ZXVzZXMgZup0ZXMgOi0p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
netwebzone
Messages postés
55
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
22 août 2008
4
3 janv. 2005 à 15:23
3 janv. 2005 à 15:23
Slt,
Oui il me semble que GET est limité, on ne pourrai y passer un texte par exemple...
Ben je dois dire que je ne m'y conais pas vraiment non plus en javascript...
Si quelqu'un s'y connait et pourrait m'aider... Merci d'avance
@+
Oui il me semble que GET est limité, on ne pourrai y passer un texte par exemple...
Ben je dois dire que je ne m'y conais pas vraiment non plus en javascript...
Si quelqu'un s'y connait et pourrait m'aider... Merci d'avance
@+
grdscarabee
Messages postés
134
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
7 août 2005
74
3 janv. 2005 à 23:23
3 janv. 2005 à 23:23
Salut,
Je ne connais pas grand chose au javascript, par contre ce que je sais c'est que GET et POST sont tous les deux limités au niveau des données (ce qui est logique puisque ce ne sont que des entêtes http). Je crois que GET est limité à 255 caractères et POST un peu plus
Personnellement, je n'ai pas trop suivi ton truc, mais je pense qu'avant de valider le formulaire, le bouton pourrait remplir un champ caché du formulaire qui permettrait de déterminer si on fait une visualisation ou non...le script d'analyse du formulaire pourrait alors rediriger le tout ? mais je n'ai peut être rien compris
GrdScarabe
Learn with the best, teach the others
Je ne connais pas grand chose au javascript, par contre ce que je sais c'est que GET et POST sont tous les deux limités au niveau des données (ce qui est logique puisque ce ne sont que des entêtes http). Je crois que GET est limité à 255 caractères et POST un peu plus
Personnellement, je n'ai pas trop suivi ton truc, mais je pense qu'avant de valider le formulaire, le bouton pourrait remplir un champ caché du formulaire qui permettrait de déterminer si on fait une visualisation ou non...le script d'analyse du formulaire pourrait alors rediriger le tout ? mais je n'ai peut être rien compris
GrdScarabe
Learn with the best, teach the others
netwebzone
Messages postés
55
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
22 août 2008
4
4 janv. 2005 à 17:38
4 janv. 2005 à 17:38
euh oui mais il faut deux boutons, un pour prévisualiser, et l'autre pour envoyer le formulaire... mais seulement je n'y arrive pas...
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
4 janv. 2005 à 22:06
4 janv. 2005 à 22:06
Ou est le problème plus exactement? Récupére le formulaire sur une autre page qui fera la prévisualisation et demande à l'auteur de confirmer. Ca fait deux boutons d'envoi mais sur deux pages différentes... (c'est comme ça que marche l'envoi d'un message sur ce forum d'ailleurs :-)
Ca marche aussi si tu envoies les données sur la même page.
Ca marche aussi si tu envoies les données sur la même page.
Sm95ZXVzZXMgZup0ZXMgOi0p