Problème avec une fonction PHP générée par un onclick

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 : Problème avec une fonction PHP générée par un onclick

par albat » 24 nov. 2006, 00:46

Tiens, ça faisait longtemps qu'on ne t'avait pas vu ! ;)

par flitox » 16 nov. 2006, 22:03

Je me disais bien que ce serait trop facile...

Merci pour la réponse :)


Je vais donc externaliser le calcul ça me paraît plus judicieux.

par rami » 16 nov. 2006, 21:37

<a onclick="cptvisu('<?php echo $chemcptdl; ?>');" href="<?php echo $root.$c."/".$typef."/".$matches[2][0]."/".$matches[1][0]; ?>.html"><?php echo $fichier; ?></a>
Tu appelles une fonction javascript avec ce code. Donc ta fonction PHP n'est pas appelée.

Problème avec une fonction PHP générée par un onclick

par flitox » 16 nov. 2006, 20:49

Bonjour/Bonsoir,

J'ai un problème sur une fonction et je n'avance plus, j'utilise assez peu les fonctions d'où peut-être une erreur qui ne me viendrait pas à l'esprit.

J'ai une variable qui contient le nom et le chemin du fichier que je veux traiter :
$chemcptdl = $c."/cptdl_".$matches[1][0].".dat";
// = myftp/Divers/cptdl_Missives.dat
En cliquant sur un lien, je souhaite incrémenter le chiffre contenu dans le fichier .dat, donc je passe la variable du dessus comme argument pour la fonction
<a onclick="cptvisu('<?php echo $chemcptdl; ?>');" href="<?php echo $root.$c."/".$typef."/".$matches[2][0]."/".$matches[1][0]; ?>.html"><?php echo $fichier; ?></a>
(Ne tenez pas compte des expressions régulières)

Je fais appel à un fichier php qui contient toutes mes fonctions dans lequel j'ai celle qui m'intéresse :
//fonction pour ajouter +1 au compteur de fichiers
<?php
function cptvisu($chemcptdl)
	{
		$fp = fopen($chemcptdl,"r+");
		$cptdl = fgets($fp,10);
		$cptdl++;
		fseek($fp,0);
		fputs($fp,$cptdl);
		fclose($fp);
		?>
		<script type="text/javascript">
		alert('<?php echo $cptdl ?>');
		</script>
		<?php
		return true;
	}
?>
Pour voir si elle marche bien j'ai mis une fenêtre d'alerte.

Mais le chiffre contenu dans le fichier .dat ne s'incrémente pas et la boîte de dialogue alert() ne s'affiche pas non plus.

Par contre si j'écris ça, la fonction réagit (avec une erreur ce qui est normal)
$chemcptdl = $c."/cptdl_".$matches[1][0].".dat";
// = myftp/Divers/cptdl_Missives.dat
$test = cptvisu('$chemcptdl');
Si quelqun pouvait m'orienter ce serait gentil car je suis maladroit avec les fonctions donc je bloque.

Merci d'avance.