[PHP et JS] Boucle sans fin, non éxécution du script avec FF

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 : [PHP et JS] Boucle sans fin, non éxécution du script avec FF

par Pierig » 27 juin 2007, 16:14

vivi c'est fait tu as gérer mici :D

par Ryle » 27 juin 2007, 16:07

Cool :)

Tiens, une petite dernière pour la route, mais tu l'as probablement déjà corrigé, dans le code ci-dessus : ;)
onmouteover="overlib('Suppression du produit')"

par Invité » 27 juin 2007, 14:09

Tu as encore raison ce sont bien des erreurs javascripts indépendantes !

De fait l'erreur est située ici :

Code : Tout sélectionner

<img src='images/ico_poubelle.gif' alt='Suppression' onclick="supprProduit('<?php echo $produit->getId() ?>' , '<?php echo $produit->getPRODUIT_NOM() ?>')" onmouteover="overlib('Suppression du produit')" onmouseout="nd()"/>

Le problème c'est que je ne voit pas ou est l'erreur :(

5 minutes sont passées ...

j'ai comprit !

dans le header de ma page (que j'inclut) je demande à avoir ceci :

<script type="text/javascript" src="js/overlib.js" language="JavaScript" ></script>

sauf que ça ne fonctionnait pas ! j'ai changer l'emplacement de mon fichier overlib et maintenant ça fonctionne.

Donc déja le problème avec le javascript est corrigé bien que la fonction overlib ne passe pas sou FF je peut maintenant supprimer.

Je pense que cette "petite" erreur était zappé par ie et pas par FF (c'est fou non ?!)

voilà :D

merci encore
ps : les deux ou trois petites astuces que tu as donné vont m'être bien utiles ;)

par Ryle » 27 juin 2007, 11:55

Je pense que ce sont d'autres erreurs javascripts indépendantes de ce traitement.. ca devrait pas jouer normalement, mais ca ne fera pas de mal de les corriger ;)

Bon on va essayer d'avancer pas à pas :)

Ton formulaire est envoyé à la page 'controller_principal.php' et tu donnes le code de liste_prets.php. Es-tu sur que ce script est bien appellé (ou inclu) par le premier ? (en gros, si tu mets un echo tout au début, est ce qu'il apparait ? :))

Que donne un print_r($_POST) dans liste_prets.php ? est ce que tu récupères bien tes valeurs ? (IE et FF)

Si tout est bon, affiche les valeurs que tu testes pour savoir pourquoi tu n'entre pas dans le if :

echo "Test : -" .($r_action=='supprPret') . "-<br />"; // on affiche le résultat du test : "-1-" cest ok, "--" c'est faux :)
echo "-$r_action-" . "<br />"; // les tirets te permettront de repérer des espaces indésirables

Et normalement si tout ça passe bien, ton echo("passe1") devrait au moins s'afficher :)

par Pierig » 27 juin 2007, 11:41

Effectivement le onsubmit ne servait à rien (la honte j'ai fait un copier/coller) je l'ai enlever.

la variable $r_action est en fait le résultat de ceci :
if(isset($_POST['f_action']))
{	
	$r_action = $_POST['f_action'];
}
tu as donc raison mais vu que tu ne pouvait pas le savoir effectivement ce sont les même valeurs (bien jouer d'avoir vu ça ^^).

Grâce à la commande "javascript: "
je voit effectivement des erreurs : overlib is not define et nd is not define

Je ne voit absolument pas à quoi ça correspond.
ps : j'ai tester sur plusieurs postes différents et j'ai toujours la même erreur.

Je ne voit donc toujours pas d'ou vient le problème
:cry:

par Ryle » 26 juin 2007, 13:56

Si c'est un soucis javascript, sous firefox, tu peux afficher la console des erreurs js en tapant " javascript: " dans la barre d'url :)

Sinon, je te recommande de virer le " onsubmit= " de ton formulaire si tu ne mets rien dedans...

S'il n'affiche pas ton echo "passe1", c'est qu'il n'entre pas dans le if... d'où vient la variable $r_action et quelle est sa valeur ? Ne serait ce pas plustot $_POST['f_action'] qu'il te faudrait tester ? ;)

[PHP et JS] Boucle sans fin, non éxécution du script avec FF

par Pierig » 26 juin 2007, 12:57

Bonjour,

J'ai une colle à vous poser :

le code commence comme ça :
onclick="supprPret('<?php echo $produit->getId() ?>')
j'apelle donc le script suivant (l'appel se fait correctement).

Code : Tout sélectionner

function supprPret(Produit_id) { if (window.confirm("Voulez-vous supprimer le pret "+Produit_id+"?")){ document.formSupprPret.f_produit_id.value = Produit_id; document.formSupprPret.submit(); } }
Alors là j'ai deux résultat différents :

Sous firefox ça ne fait rien du tout .. :(

Sous ie ça charge bien mon formulaire qui fait appel a une autre page qui fait elle même appel a une fonction d'une de mes classe pour effectuer un update sur ma base de donnée.

Le problème c'est que ça charge sans fin... !!

Le formulaire appelé est le suivant :
	<form name="formSupprPret" onsubmit= action='controller_principal.php' method='post'>
			<input name='f_module' type='hidden' value='listepret'/>
			<input name='f_action' type='hidden' value='supprPret'/>
			<input name='f_produit_id' type='hidden' value=''/>
	   </form>
(il submit vers une page qui fait une inclusion de deux autres page mais spa important pour le problème ^^).

Donc dans mon fichier liste_prets.php

j'ai :
$pretDAO = new PretDAO();
$t_pret = $pretDAO->PretDAO();
$SpretDAO = new PretDAO();

if ($r_action == 'supprPret')
{
        //ça n'affiche pas le echo ... :(
	echo("passe1");
	$t_Spret = $SpretDAO->suppressionPret($_POST['f_produit_id']);
}

je passe en paramètre l'id du produit (pour bien retrouver l'id du produit qui était en prêt).

Et finallement j'éxécute cette requête :

Code : Tout sélectionner

"UPDATE \"GEC_PRETS\" SET GEC_PRET_STATUT = '0' WHERE GEC_PRETS.GEC_PRODUIT_NUMERO = ".$produit_id;

Quelqu'un voit il d'ou pourrait venir le problème siou plait ?

ps : avec une autre fonction JS j'ai aussi un problème sous FF mais pas sous ie donc ...