Envoyer plusieurs fois données d'un formulaire sans changer de page

Envoyer plusieurs fois données d'un formulaire sans changer de page - PHP - Programmation

Marsh Posté le 31-05-2006 à 18:10:17    

:hello:  
 
Je fais appel a vous car j'ai un problème de PHP que je n'arrive pas a résoudre (d'ailleurs, est-il résolvable ?)
 
Je souhaiterais mettre un formulaire qui, une fois activé, envoie $nb fois les données a une page distance MAIS EN RESTANT SUR LA PAGE QUI CONTIENT LE FORMULAIRE
 
Est-ce possible, et si oui, comment ?
 
Je vous remercie d'avance
 
Infosactualité
 
PS : Merci de ne pas trop parler technique :lol:

Reply

Marsh Posté le 31-05-2006 à 18:10:17   

Reply

Marsh Posté le 31-05-2006 à 18:15:32    

ça fleure bon la limite de la légalité mais bon :o

  • solution 1: tu fais une iframe cachée via css et tu la mets comme target de ton formulaire
  • solution 2:tu fais ça en utilisant xmlHttpRequest ( et son paliatif IE)

Reply

Marsh Posté le 31-05-2006 à 18:19:33    

anapajari a écrit :

ça fleure bon la limite de la légalité mais bon :o

  • solution 1: tu fais une iframe cachée via css et tu la mets comme target de ton formulaire
  • solution 2:tu fais ça en utilisant xmlHttpRequest ( et son paliatif IE)


Je pense m'orienter plutot vers la première solution, mais je ne vois pas trop comment la réaliser, je ne savais pas qu'il était possible d'envoyer le formulaire vers une iframe.
 
Je vais voir ca de plus près merci :)

Reply

Marsh Posté le 31-05-2006 à 18:21:58    

Au fait pour la légalité j'essaye de faire une protection qui bloque l'ip de l'utilisateur quand il envoie trop de requêtes et que la nouvelle m'arrive par mail, c'est tout.

Reply

Marsh Posté le 31-05-2006 à 18:48:05    

Infosactualite a écrit :

Au fait pour la légalité j'essaye de faire une protection qui bloque l'ip de l'utilisateur quand il envoie trop de requêtes et que la nouvelle m'arrive par mail, c'est tout.


 
je pense qu il voulait dire que ca ressemblerait "presque " a un script de spam
peut etre me trompé-je mon savoir est bien limité
 
sinon j aurais dit resolvable soluble [:aloy]  
(c est un peu angliche lailleque)
mais la encore je suis faillible

Reply

Marsh Posté le 31-05-2006 à 18:50:04    

Bon en tout cas le coup de l'iframe je sais absolument pas comment faire :D
 
Et le xmlHttpRequest c'est pas un truc Ajax Web 2.0 et compagnie ?

Reply

Marsh Posté le 31-05-2006 à 20:38:11    

zup :D

Reply

Marsh Posté le 01-06-2006 à 09:10:20    

Infosactualite a écrit :

Je pense m'orienter plutot vers la première solution, mais je ne vois pas trop comment la réaliser, je ne savais pas qu'il était possible d'envoyer le formulaire vers une iframe.
 
Je vais voir ca de plus près merci :)


tu crées un iframe comme ça:

Code :
  1. <iframe name="pouet" style="display:none; visibility:hidden"/>


et ton formulaire comme ça:

Code :
  1. <form name="truc" action="machin.php" method="post" target="pouet">...


et baste  [:klem3i1]  

Reply

Marsh Posté le 01-06-2006 à 12:30:47    

Tiens c'est donc a ca que sert les noms des iframes [:dawa]
 
Je vais essayer ca merci :)


Message édité par Infosactualite le 01-06-2006 à 12:30:56
Reply

Marsh Posté le 01-06-2006 à 12:59:05    

Bon j'ai mis ca, j'ai bien fait mon formulaire qui marche très bien, mais la ... un imprévu :D
 
Comment répéter plusieurs fois l'envoi des données de ce formulaire ? [:dawa] Je n'y avais pas pensé, a partir du php comment envoyer ces données a la frame ? :D
 
Merci d'avance (et désolé pour les questions  [:totoz])


Message édité par Infosactualite le 01-06-2006 à 12:59:25
Reply

Marsh Posté le 01-06-2006 à 12:59:05   

Reply

Marsh Posté le 01-06-2006 à 13:34:16    

je suis en train de t'aider à faire un méga-bouze qui est l'exemple même de tout ce que j'abomine sur le net ... :D
Bref, tu peux ruser en js
Plutot qu'un submit dans ton form tu mets:

Code :
  1. <input type="button" value="pouet" onclick="ApOcALypse()"/>


Et tu déclares la fonction suivante entre balises script dans ton head:

Code :
  1. function ApOcALypse(){
  2. for(i=0; i<1000; i++){
  3.   document.LeNomDeTonFormulaire.submit();
  4. }
  5. }


 
edit: Tu sera peut-être obligé de faire un setInterval de 1 seconde pour que les données aient le temps d'être soumises ( et je te laisse chercher comment faire)

Message cité 1 fois
Message édité par anapajari le 01-06-2006 à 13:35:30
Reply

Marsh Posté le 01-06-2006 à 15:02:06    

anapajari a écrit :

je suis en train de t'aider à faire un méga-bouze qui est l'exemple même de tout ce que j'abomine sur le net ... :D
Bref, tu peux ruser en js
Plutot qu'un submit dans ton form tu mets:

Code :
  1. <input type="button" value="pouet" onclick="ApOcALypse()"/>


Et tu déclares la fonction suivante entre balises script dans ton head:

Code :
  1. function ApOcALypse(){
  2. for(i=0; i<1000; i++){
  3.   document.LeNomDeTonFormulaire.submit();
  4. }
  5. }


 
edit: Tu sera peut-être obligé de faire un setInterval de 1 seconde pour que les données aient le temps d'être soumises ( et je te laisse chercher comment faire)


Au moins ca fera pas tache dans mon code certifié non valide XHTML 1.1 strict © :whistle:  
 
Je viens d'essayer, avec ce code :
 

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="ApOcALypse()"></p>
  2. </form>
  3. <script language="Javascript">
  4. function ApOcALypse(){
  5. setInteval(ApOcALypse, 250);
  6. for(i=0; i<1000; i++){
  7.   document.form.submit();
  8. }
  9. }
  10. </script>


 
Quand je clique y'a rien qui se passe [:totoz]  
 
Que faire ?  [:totoz]  
 
merci d'avance ;)

Reply

Marsh Posté le 01-06-2006 à 19:28:04    

Huppe ?

Reply

Marsh Posté le 02-06-2006 à 09:09:53    

bin t'as pas du chercher longtemps comment marche  setInterval vu ce que tu en as fait ... Relis un tut ou deux[:spamafote]

Reply

Marsh Posté le 02-06-2006 à 13:10:32    

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="ApOcALypse()"></p>
  2. <script language="Javascript">
  3. function ApOcALypse(){
  4. for(i=0; i<1000; i++){
  5.   document.updaterequestform.submit();
  6. }
  7. }
  8. setInteval("ApOcALypse", 50);
  9. </script>


 
Ca marche mais ca envoie qu'une fois la requete et encore j'en suis pas sur :/

Reply

Marsh Posté le 02-06-2006 à 13:52:22    

ça peux pas marcher ;)
 
théoriquement tu es censé mettre ton setInterval dans une fonction, et appeler cette fonction sur le click bouton et tu n'as plus besoin de le boucle sur mille
Dans le head

Code :
  1. <script type="text/javascript">
  2.     function ApOcALypse(){
  3.      document.updaterequestform.submit();
  4.     }
  5.     Function startTheApOcALypse(){
  6.       setInteval("ApOcALypse", 500);
  7.     }
  8.     </script>


puis dans ta page html

Code :
  1. <input type="button" name="pouet" value="Envoyer" onclick="startTheApOcALypse()"/>


Et la ton formulaire se soumettra en boucle toutes les demi-secondes, jusqu'a ce que tu fermes ta page

Reply

Marsh Posté le 02-06-2006 à 15:30:50    

Re et encore merci pour ton aide :)
 
Le bouton ne souhaite plus fonctionner hélas :(  
 
Le mieux est que tu voies la page, je l'ai mise dans mon profil ;)
 
En attendant, je vais demander une fonction flood(); sur php.net :o :D
 
Merci beaucoup
 
Shuny

Reply

Marsh Posté le 02-06-2006 à 16:05:23    

f minuscule à function :o

Code :
  1. function startTheApOcALypse(){
  2. setInteval("ApOcALypse", 500);
  3. }


Manque également une quote juste après ton rgb:

Code :
  1. <body style="color: rgb(204, 0, 0);" alink="#1f7aa7" link="#1d7099" vlink="#e5cf10">

Reply

Marsh Posté le 02-06-2006 à 19:29:37    

Ca marche toujours pas :(

Reply

Marsh Posté le 02-06-2006 à 22:54:51    

<?php
 
noreponses = 1;
 
if (noreponses == 1)
{
echo "UP ! ";
}
else
{
echo "DOWN ! :o";
}
 
?>

Reply

Marsh Posté le 03-06-2006 à 14:58:08    

UP !

Reply

Marsh Posté le 04-06-2006 à 12:17:37    

UP

Reply

Marsh Posté le 04-06-2006 à 17:50:42    

Je pense qu'il vaudrait mieux envoyer les variables du formulaire à la page elle même avec un truc du style :  
action="self" ou la page elle-même.  
Ensuite, on pourrait tester au début du script si les variables POST sont instanciées ou non :  
if(isset($_POST['maVariable'])){
    cpt++;
}else{
   cpt=0;
}
ou quelquechose du genre. Je pense que cette solution est plus simple que des techniques d'objets cachés, etc.  
 
Sachons rester simples !


---------------
http://www.chances-de-gagner.fr
Reply

Marsh Posté le 04-06-2006 à 18:07:28    

Et si on commençait par le commencement? Pourquoi veux-tu faire une chose pareille? Es-tu certain qu'il n'existe pas d'autres solutions moins bordélique?

Reply

Marsh Posté le 04-06-2006 à 21:40:13    

Si vous avez des idées je vous écoute ;) Or je n'en ai pas donc ... :/

Reply

Marsh Posté le 04-06-2006 à 21:40:34    

franzBesac a écrit :

Je pense qu'il vaudrait mieux envoyer les variables du formulaire à la page elle même avec un truc du style :  
action="self" ou la page elle-même.  
Ensuite, on pourrait tester au début du script si les variables POST sont instanciées ou non :  
if(isset($_POST['maVariable'])){
    cpt++;
}else{
   cpt=0;
}
ou quelquechose du genre. Je pense que cette solution est plus simple que des techniques d'objets cachés, etc.  
 
Sachons rester simples !


Et comment tu envoies ? :(

Reply

Marsh Posté le 04-06-2006 à 21:57:56    

dwogsi a écrit :

Et si on commençait par le commencement? Pourquoi veux-tu faire une chose pareille? Es-tu certain qu'il n'existe pas d'autres solutions moins bordélique?


Reply

Marsh Posté le 04-06-2006 à 22:14:31    

ben dans les paramètre de ton tag form, ya un champ action :  
<?php
//d'abord tu teste
extract($_POST);
if (isset($taVariable)){
//traitement
}else{
//traitement
}
//et après tu écris ton formulaire normalement en le soumettant à la page elle-même
 
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
...
?>
du coup, tu balance ton formulaire à la page elle-même. Cette technique est souvent utilisée pour afficher un calendrier et pouvoir choisir de visualiser le mois suivant ou précédent sans changer de page.  
 
@+
 


---------------
http://www.chances-de-gagner.fr
Reply

Marsh Posté le 05-06-2006 à 12:32:32    


Je t'invite a lire le début du topic :jap:

Reply

Marsh Posté le 05-06-2006 à 12:33:55    

franzBesac a écrit :

ben dans les paramètre de ton tag form, ya un champ action :  
<?php
//d'abord tu teste
extract($_POST);
if (isset($taVariable)){
//traitement
}else{
//traitement
}
//et après tu écris ton formulaire normalement en le soumettant à la page elle-même
 
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
...
?>
du coup, tu balance ton formulaire à la page elle-même. Cette technique est souvent utilisée pour afficher un calendrier et pouvoir choisir de visualiser le mois suivant ou précédent sans changer de page.  
 
@+


Salut,
 
Merci pour ta réponse
Vais (essayer) de comprendre [:dawa]
 
++

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed