Peoblème javascript / php

chimpan
Invité n'ayant pas de compte PHPfrance

25 janv. 2010, 12:11

Bonjour à tous.
JE vous contacte, car récemment je suis passé à php5, et j'ai désormais un problème avec mon script de commentaires (j-web Commentaires v2.0).
Je m'explique, sur mes pages, j'appel comment-js.php grace au javascript suivant:

<script language="javascript" src="comment-js.php?idcom=Image1"></script>

idcom me sert à définir une boite de commentaire pour chaque page (image1, image2, ...). Si je ne met pas de nom pour idcom, par défaut, c'est le nom "divers" qui est appelé.

Seul petit problème, j'ai beau mettre un nom pour idcom, ça ne fonctionne pas. Le javascript appel ma page comment-js.php comme si je n'avais pas mis de nom pour idcom, et me classe donc ma boite de commentaire par défaut dans "divers". Du coup, toutes mes boites de commentaires de toutes mes pages sont classées dans "divers" (donc les commentaires de chaque page sont rassemblés en une seule et meme boite de commentaire).

Je ne sais pas si je me fais bien comprendre....

Voici le début de ma page coment-js.php:
<? if (!isset($idcom)) {$idcom = Divers;}

Si quelqu'un peut m'aider, je suis preneur...
Merci d'avance,

Charles

ViPHP
ViPHP | 5462 Messages

25 janv. 2010, 14:22

c'est <?php et non pas <?

chimpan
Invité n'ayant pas de compte PHPfrance

25 janv. 2010, 14:52

J'ai remplacé toutes mes balises par "<?php" mais ça n'a hélas pas résolu mon problème ... :(

ViPHP
ViPHP | 2291 Messages

25 janv. 2010, 15:00

Salut,

Attention que Divers et divers n'ai pas la même chose.
Maintenant avec plus de code c'est plus facile aussi :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Chimpan
Invité n'ayant pas de compte PHPfrance

25 janv. 2010, 15:13

Je pense que le problème vient qu'il n'y a pas de relation entre mon code javascript (qui se situe sur la page index.php):

<script language="javascript" src="comment-js.php?idcom=Image1"></script>

et la page appelée par ce javascript (comment-js.php):
<?php if (!isset($idcom)) {$idcom = Divers;}

// Recherche du nombre de commentaires

if (file_exists("commentaires/$idcom.txt")) {

$fp = fopen("commentaires/$idcom.txt", "r");
$ligne = fgets($fp,2000000);

$nb_com = substr_count($ligne, "£");

fclose($fp);

}
else
{
$nb_com = 0;
}

// Notre tableau :

echo("document.write(\"<table border='0' width='$largeur' cellspacing='1' bgcolor='$clrfond'><tr><td width='100%' bgcolor='$clrdvt'>\");");
echo("document.write(\"<table border='0' width='100%' cellspacing='2' cellpadding='0' style='color: $color; font-size: $taille pt; font-family: $font'>\");");
echo("document.write(\"<tr><td width='100%'><center>\");");
echo("document.write(\" <span style='font-size: $taille pt'> [$nb_com Commentaires | \");");

?>

document.write("<a title=\"<?php echo("Commenter $idcom!"); ?>\" style=\"color: <?php echo("$color"); ?>; font-size: $taille pt; font-family: <?php echo("$font"); ?>\" href=\"#\" OnClick=\"window.open('<?php if (isset($rep)){echo("$rep/");} ?>commentaires.php?idcom=<?php echo("$idcom"); ?>','','toolbar=0,location=0,directories=0,status=0,scrollbars=1,resizable=0,copyhistory=0,menuBar=0,width=330,height=350');return(false)\"><img align=\"absmiddle\" border=\"0\" src=\"<?php if (isset($rep)){echo("$rep/");} ?>commentaires/commenter.gif\" width=\"11\" height=\"11\"> Commenter/voir</a>]</span></center></td></tr></table></td></tr></table>");

idcom ne semble pas pris en compte d'une page à l'autre.... Du coup je me retrouve avec la variable idcom = Divers (suite à ce code: if (!isset($idcom)) {$idcom = Divers;} ) alors que dans ce cas présent, la variable idcom devrait être égale à "Image1" (cf le code javascript)

ViPHP
ViPHP | 2291 Messages

25 janv. 2010, 15:19

$idcom.txt c'est normal ?
Ce ne serais pas idcom.txt :?:

De plus il y a une erreur ici
if (!isset($idcom))
 {
	$idcom = Divers;
 }
Essaye ceci
if (!isset($idcom))
 {
	$idcom = 'Divers';
 }else{ 
               $idcom =$_GET["idcom"];
}
Modifié en dernier par dunbar le 25 janv. 2010, 23:21, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Chimpan
Invité n'ayant pas de compte PHPfrance

25 janv. 2010, 15:57

$idcom.txt c'est normal ?
Ce ne serais pas idcom.txt
oui c'est normal, puisqu'un fichier texte est crée pour chaque module de commentaire différents (autrement dit pour chaque article).

et vu que normalement la variable $idcom correspond à celle définie dans mon javascript pour une page en particulier... sauf que la la variable définie par mon javascript ne fonctionne pas...

J'ai fait les changements par rapport à la syntaxe,ça ne marche toujours pas.

Merci quand même pour ton aide!

ViPHP
ViPHP | 4039 Messages

25 janv. 2010, 16:52

Ce module à apparemment été développé par des branques, à en voir le php et le Js employé.

Ceci dit, je pense qu'il manquerait un élément crucial.

remplace voir la premièré ligne:
<?php if (!isset($idcom)) {$idcom = Divers;}
par ceci:
<?php if (!isset($_GET["idcom"])) { $idcom = 'Divers'; } else { $idcom =$_GET["idcom"];}
Mais bonjour la sécurité de tout ça...
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Chimpan
Invité n'ayant pas de compte PHPfrance

25 janv. 2010, 21:35

Avec ton code, ça s'améliore un peu certes. Mais il doit y avoir d'autres erreur dans mon code...

Je crois que le code bug depuis que je suis passé en php5.... :(

ViPHP
ViPHP | 4039 Messages

26 janv. 2010, 12:57

Avec ton code, ça s'améliore un peu certes. Mais il doit y avoir d'autres erreur dans mon code...

Je crois que le code bug depuis que je suis passé en php5.... :(
De fait, le script semble utiliser un tas de fonctionnalités qu'autorisait php4 (et qu'on n'utilise plus pour leur manque flagrant de sécurité).
On dirait qu'il vient tout droit de l'age "noir" de php, celui qui lui a valu une assez mauvaise réputation.

Pour peu que je me trompe, il est possible de réactiver ses fonctionnalités dans php5 (désactivées par défaut), mais ouvrir ainsi des brèches énormes dans la sécurité de ton serveur n'est pas vraiment recommandable.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.