Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   Problème de frame,javascript ou php (???) sous Vista (http://www.ndfr.net/forums/showthread.php?t=8064)

geoffrey75 30-07-2007 01:04

Problème de frame,javascript ou php (???) sous Vista
 
Bonjour,

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 :

Code:


<?
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.

Magi-X 30-07-2007 08:51

Je ne pense pas que c'est vista le problème ... Le php c'est un serveur web (apache/iis) qui s'en charge ... pour le javascript c'est le browser.

Alors verifie, si le code et la base de donnée sont identique que sur ton serveur online. Et fais un "echo" de $rec[1] pour vérifier si la variable est correcte.

Matt 30-07-2007 10:05

Je sens bien un problème de base, et avec les @ devant tous les appels MySQL, on voit pas les messages d'erreur...
Tu devrais commencer par enlever ces @ pour voir s'il y a des erreurs SQL.

geoffrey75 31-07-2007 01:02

j'ai enlevé les @, j'ai ajouté php dans les balises < ?, j'ai fait un echo de $rec[1] mais pas grand chose n'a changé; la seule différence c'est qu'au lieu d'ouvrir une nouvelle fenêtre, apparemment il reste maintenant dans la principale mais l'écran reste tout vierge, pas un seul caractère ne s'affiche. que puis-je essayer d'autre svp ?

merci d'avance,

Geoffrey.

Magi-X 31-07-2007 08:38

Sur la page vierge, regarde une fois la source de cette page, pour voir s'il y a du code javascript dedans :?:

Samva 31-07-2007 18:56

Un probleme de prise en charge du php par apache ?

geoffrey75 31-07-2007 22:12

Voici le résultat quand je regarde le code source de la page vierge

Code:

<php ?
include("../php_config.php");
//echo "test";
mysql_connect($DBhost, $DBusr, $DBpwd) or die (mysql_error());
mysql_select_db($DBname) or die (mysql_error());
//echo "test";
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 $redir;
//echo $id;
//echo $rec[1];
echo "<script language=javascript>window.open('".$rec[0]."','".$rec[1]."')";
if ($rec[1]=='_blank')
 {
  echo 'history.go(-1)';
 }
echo '</script>';
?>
</body>

c'est OK ?

pour le support de php par Apache, je pense que c'est ok car j'ai des pages où je sais utiliser du php et afficher des résultats de contenu

Matt 31-07-2007 22:44

L'erreur est à la première ligne.
Le tag d'ouverture du code PHP, c'est <?php et non pas <php ?
Du coup, ton interpréteur PHP ne reconnait pas le code PHP et le traite comme du simple texte.

geoffrey75 31-07-2007 22:53

Changement effectué
 
OK, j'ai fait le changement et maintenant je retrouve ma fenêtre qui s'ouvre mais j'ai un message d'erreur dans la frame "principale"

Notice: Undefined variable: id in c:\site_nat_geof\fr\clic\count.php on line 30

Pourtant la variable id est définie puisque c'est le paramètre que je passe en entrée. Exemple : <a target="principale" href='clic/count.php?id=47'>

Samva 31-07-2007 22:54

Et il doit pas non plus interpréter les <? ?> d'où ton erreur intiale. Le popup est simplement qu'il analyse le tout et tombe donc sur ton window.open...

Samva 31-07-2007 22:56

Tu la passe en get ta variable, et tout bon serveur depuis quelques temps doit avoir les register_globals à off.

Pour la récupérer il faut que tu fasses un truc du genre

$id = isset($_GET['id'])?$_GET['id']:'';

geoffrey75 31-07-2007 23:10

Ah ça va bcp mieux, cool, mais apparemment j'ai encore un problème pour le javascript ou quelque part car quand j'exécute un lien qui doit ouvrir un mail, rien de s'ouvre, la frame "principale" reste vierge et j'ai un message d'erreur dans l'explorer :
Ligne : 20
Caractère : 88
Erreur : ';' attendu
Code : 0
URL : http://127.0.0.1/nath_geof/FR/clic/count.php?id=22

geoffrey75 31-07-2007 23:13

Le code
 
voici le code pour te permettre de comprendre mieux :

Code:

<html>
<head>
<title>.::Nathalie et Geoffrey::.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META NAME="TITLE" CONTENT="'Le site de Nathalie Gobbe et Geoffrey Lepers'">
<META NAME="DESCRIPTION" CONTENT="Découvrez le site de Nathalie Gobbe et Geoffrey Lepers, deux passionnés de leur quartier, de leur commune de Jette, de rencontres avec leurs voisins... De nombreuses photos sont disponibles...">
<META NAME="KEYWORDS" CONTENT="jette,geoffrey,nathalie,gobbe,lepers,élection,commune,communale,passion,sondage,forum,corneille,clercq,faes,levis,mirepoix,odon,warland,lecharlier,honoré,longtin,charles,woeste,livre,quartier,travail,boulot,photo,chandeleur,crêpe,voisin,journée,internationale,mr,mouvement,réformateur,politique,fdf,candidat,mailing-list,rencontre,humaine">
<META NAME="OWNER" CONTENT="geoffrey.lepers@swing.be"><META NAME="AUTHOR" CONTENT="Geoffrey Lepers">
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="French">
<META NAME="ROBOTS" CONTENT="index,follow">
<META NAME="REVISIT-AFTER" CONTENT="7 days">
<META NAME="ROBOTS" CONTENT="ALL">
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(234, 236, 255);" topmargin="0" marginheight="0">
<?
include("../php_config.php");
//echo "test";
mysql_connect($DBhost, $DBusr, $DBpwd) or die (mysql_error());
mysql_select_db($DBname) or die (mysql_error());
//echo "test";
$id = isset($_GET['id'])?$_GET['id']:'';
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 $redir;
//echo $id;
//echo $rec[1];
echo "<script language=javascript>window.open('".$rec[0]."','".$rec[1]."')";
if ($rec[1]=='_blank')
 {
  echo 'history.go(-1)';
 }
echo '</script>';
?>
</body>
</html>


Matt 31-07-2007 23:50

Essaye ça :
Code:

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


geoffrey75 01-08-2007 00:02

Yessss !!!!
 
Ca a l'air de marcher, en tout cas en local. Je vais devoir tester en profondeur ainsi que sur le web mais en tout cas, un tout grand merci !!!!


All times are GMT +2. The time now is 16:51.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.