Problème avec frame, javascript ou php (???) sous

29/07-2007 à 23:25Bonjour,

Je viens d'installer mon laptop en Vista et le site que je développe, qui marchait bien en XP, ne fonctionne plus correctement. En fait, j'ai un menu avec derrière chaque lien un script php qui contient le code suivant :

<?
include("../php_config.php");

@mysql_connect($DBhost, $DBusr, $DBpwd) or die (mysql_error());
@mysql_select_db($DBname) or die (mysql_error());

@mysql_query("UPDATE clic SET nbr_clics=nbr_clics+1 WHERE id='$id'") or die (mysql_error());
$redir = @mysql_query("SELECT url,target FROM clic WHERE id='$id'");
$rec = @mysql_fetch_array($redir);

//echo $id;

echo "<script language=javascript>window.open('".$rec[0]."','".$rec[1]."');
if ('".$rec[1]."'=='_blank')
{
history.go(-1)
}
</script>";

?>
</body>

Malheureusement, quand j'exécute celà en local, que ce soit en IE7 ou en Firefox, ils veulent tous deux ouvrir un pop-up, alors qu'ils devraient ouvrir l'url correspondant au paramètre de mon php dans la frame intitulée "principale" qui est la grande de droite.

Qqn a-t-il une idée sur la cause du problème et sa résolution vu que sur le web, mon site www.geonat.be fonctionne très bien et que je n'ai pas ce problème ?

Merci d'avance,

Geoffrey.


30/07-2007 à 22:35Bonjour,
j'ai corrigé ce qu'il y avait à corriger en PHP mais je ne sais pas ce que vous voulez que ça donne en javascript.

<?
include("../php_config.php");

@mysql_connect($DBhost, $DBusr, $DBpwd) or die (mysql_error());
@mysql_select_db($DBname) or die (mysql_error());

@mysql_query("UPDATE clic SET nbr_clics=nbr_clics+1 WHERE id='".$id."'") or die (mysql_error());
$redir = @mysql_query("SELECT url,target FROM clic WHERE id='".$id."'");
$rec = @mysql_fetch_array($redir);

//echo $id;

echo "<script language=javascript>window.open('".$rec[0]."','".$rec[1]."')";
if ($rec[1]=='_blank')
{
echo 'history.go(-1)';
}
echo '</script>';

?>

Modifie par Modifié par www le 30/07/2007


Problème avec frame, javascript ou php (???) sous
31/07-2007 à 00:38Merci, j'ai appliqué exactement ce que tu as conseillé mais ça ne change rien du tout. Tu as une autre idée stp ?

Merci d'avance, cordialement,

Geoffrey.

31/07-2007 à 13:32J'ai seulement corrigé les erreurs de syntaxe. Dites moi ce que vous voulez obtenir dans le code source si par exemle $rec[1] vaut _blank et $rec[0] vaut page.html

Modifie par Modifié par www le 31/07/2007


31/07-2007 à 13:45donc en fait il s'agit d'un petit outil de comptage que j'ai développé. le but est de savoir combien de fois on clique sur telle ou telle page. j'ai une table qui contient les urls (relatives, donc chemin d'accès par rapport au lieu où se trouve cette page de comptage), le "target" dans lequel le lien doit s'ouvrir (_blank, _self, principale, mailto) et bien sûr l'id. le script reçoit l'ID en paramètre, recherche le bon record dans la DB (après s'y être connecté), update le compteur en faisant +1 et puis affiche la page souhaitée soit dans la frame dénommée "principale", soit dans un nouvel email. Enfin une petite spécificité dans le cas où on ouvre le lien dans une fenêtre externe (pour un pdf ou un lien vers un autre site web par exemple), puisque dans ce cas on doit rester sur la page où on clicqué sur le lien. Petit tour de passe-passe dans mon code actuel puisque on était parti une page plus loin avec cette page de comptage (count.php), donc il faut faire un retour d'une page en arrière (history.go(-1). J'espère que mon explication est compréhensible ?

Merci bcp pour votre aide, bien cordialement,

Geoffrey.

Problème avec frame, javascript ou php (???) sous
31/07-2007 à 23:29A vrai dire non je n'y comprends rien [:D]
Pour installer un compteur tu peux utiliser les fichiers textes (beaucoup plus rapide et moins compliqué).
Voici un tuto avec le code du compteur intégré http://www.siteduzero.com/tuto-3-172-1-lire-et-ecrire-dans-un-fichier.html#ss_part_3
Un conseil: évite les frames, iframes et le javascript dans tes pages web, c'est de plus en plus déprécié. Utilise plutôt les standards du web, xhtml, css, php avec la fonction include() pour éviter les frames etc...
Bonne soirée

Modifie par Modifié par www le 31/07/2007


04/08-2007 à 10:20bonjour
effectivement je pense que si ce n'est que pour cela tu peux installer avec des fichiers textes, bien plus facile et plus simple
tu peux en voir quelques exemples ici:
http://unesourisetmoi.teria.org
ou
http://refok.free.fr/super/
ils fonctionnent avec ce système
@+
b g


----------
le www ça sert aussi à communiquer et à partager, non ?
http://www.unesourisetmoi.info
http://referencer.unesourisetmoi.info
http://unesourisetmoi.free.fr


Le post anonyme est désactivé.
Merci de vous identifier

« Forum technique (liste des messages)7 enregistrements / page 1/1