Pb:inclusion script php dans une pseudo frame

Fermé
acpem - 16 janv. 2006 à 15:33
 acpem - 18 janv. 2006 à 09:06
Bonjour!

J'ai un problème lors d'une inclusion dans une pseudo frame. En fait je suis en train d'incorporer sur mon site un annuaire de liens en php. J'ai donc une page principale dans laquelle sont repertoriées les catégories de liens. lorsque l'on clic sur une catégorie, on est renvoyé sur une autre page qui acceuille les liens vers les sites de cette catégorie.

Dans cette derniere page, il ya une partie qui liste les noms des différents liens, et de lautre, une partie description qui apparait lorsque l'on clic sur le nom du liens. Pour réaliser cela, j'utilise donc la méthode des pseudos frames mais lorsque l'on clic sur le nom dun lien, la description apparait bien mais la liste des noms de liens disparait.

Je vous donne les portions de code correspondant:

pour la liste de noms de liens:
<?php
//VARIABLES GENERALES
include("data.php");
global $dbserver;
global $dbdb;
global $dbuser;
global $dbpass;
//CONNEXION A LA BASE DE DONNEES
@MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de données.<br>Vérifiez les donnés du fichier <b>data.php</b>.</p>");
mysql_select_db("$dbdb");

//INITALISATION DES VARIABLES
include("functions.php");
include("data_bd_annuaire.php");
$texte="";
$request="";
//RECUPERATION DES DONNEES
$id=(isset($_POST["id"])) ? $_POST["id"] : Null;
$res_nb_sites=(isset($_REQUEST["res_nb_sites"])) ? $_REQUEST["res_nb_sites"] : Null;
$day=(isset($_REQUEST["day"])) ? $_REQUEST["day"] : Null;
$categorie=(isset($_REQUEST["categorie"])) ? $_REQUEST["categorie"] : Null;
$cat_id=(isset($_GET["cat_id"])) ? $_GET["cat_id"] : Null;
$limit=(isset($_REQUEST["limit"])) ? $_REQUEST["limit"] : Null;
?>
<?php

function affiche_site($resultat,$type="index")
//affiche les infos d'un site avec quelques fioritures en plus si c'est un partenaire
//$resultat : enreg pris de la BD avec les infos du site
//$type : type d'affichage different selon qu'on se trouve dans les categories, les tops, les nouveautes ou encore le moteur....
//$type pourra prendre les valeurs suivantes : index, topc, topv, news, search !
{
global $nb_days2benew,$position;
?>
<tr>
<td width="100%" align="left">
<?php
if ($type == "topc" || $type == "topv")
echo "<span class=\"position_site_annuaire\">".$position.")</span>\n";
}
?>
<?php
//creation des requetes pour trouver les sous-categories, les sites et la description de la categorie
$sql_descr = "SELECT texte FROM categories_annuaire WHERE id = '$cat_id' ";
$sql_nb_sites = "SELECT id FROM sites_annuaire WHERE id_cat = '$cat_id' AND activation = 1 ";
$sql_site = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM sites_annuaire WHERE id_cat = '$cat_id' AND activation = 1 ORDER BY niveau ASC,titre ASC";
$sql_scat = "SELECT id, cat_name FROM categories_annuaire WHERE id_cat_mere = '$cat_id' AND activation = 1 ORDER BY cat_name ASC";

//envoi des requetes
$res_descr = send_sql($sql_descr,"trouver la description de cette catégorie");
$res_nb_sites = send_sql($sql_nb_sites,"trouver le nombre de sites à afficher");
$res_site = send_sql($sql_site,"trouver les sites à afficher");
$res_scat = send_sql($sql_scat,"trouver les sous-catégories");

//on affiche les sites
if (mysql_num_rows ($res_site))
{
?>
<table width="90%" border=0 align="center">
<?php
while ($resultat = mysql_fetch_array($res_site,MYSQL_ASSOC))
{
?>
<a href="page_liens_groupes.php?page=page1&id=<?php echo $resultat["id"]; ?>" class="titre_site_annuaire"><?php echo htmlspecialchars($resultat["titre"]); ?></a>
    
</table>
<?php
}
}
if (!mysql_num_rows($res_site) and !mysql_num_rows($res_scat) ) //pas de site dans la categorie ni de sous categorie
{
?>
<br>
<span class="no_site_in_cat_annuaire">
<center>
Pas encore de sites dans cette catégorie !
<br>
Profitez en pour y ajouter votre site si il correspond à cette catégorie
</center>
</span>
<?php
}
echo "</center>\n";
?>


Pour la description:

<?php
if (!isset($_GET['page'])) $page= 'acceuil'; else $page= $_GET['page'];
switch($page)
{
case 'page1': include ('liens.php');break;
case 'acceuil': include ('acceuil.php');break;
}
?>


Pour finir le fichier liens.php:

<?php
//VARIABLES GENERALES
include("data.php");
global $dbserver;
global $dbdb;
global $dbuser;
global $dbpass;
//CONNEXION A LA BASE DE DONNEES
@MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de données.<br>Vérifiez les donnés du fichier <b>data.php</b>.</p>");
mysql_select_db("$dbdb");

//INITALISATION DES VARIABLES
include("data_bd_annuaire.php");
$texte="";
$request="";
//RECUPERATION DES DONNEES
$id_site1=(isset($_REQUEST["id_site1"])) ? $_REQUEST["id_site1"] : Null;
$res_nb_sites=(isset($_REQUEST["res_nb_sites"])) ? $_REQUEST["res_nb_sites"] : Null;
$day=(isset($_REQUEST["day"])) ? $_REQUEST["day"] : Null;
$categorie=(isset($_REQUEST["categorie"])) ? $_REQUEST["categorie"] : Null;
$id=(isset($_REQUEST["id"])) ? $_REQUEST["id"] : Null;
$limit=(isset($_REQUEST["limit"])) ? $_REQUEST["limit"] : Null;
?>
<?php
function send_sql1($sql,$message)
//envoi la requete $sql a la base et affiche un message si il y a eu un probleme sinon on rend le resultat
{
if(!$res = @mysql_query($sql))
{
$message_erreur = "<font color=\"#ff0000\">\n";
$message_erreur .= "Impossible d'effectuer la requête pour $message\n";
$message_erreur .= "<br><br>\n";
// $message_erreur .= "Voici la requête : \n<br>\n";
// $message_erreur .= "$sql\n";
// $message_erreur .= "<br><br>\n";
$message_erreur .= "Voici le message d'erreur renvoyé par la base de données :\n<br>\n";
die("$message_erreur".mysql_errno()." : ".mysql_error()."</font>\n");
}
return $res;
}
function convert_date_us2fr($date_us)
//convertit une date AAAA-MM-JJ en JJ-MM-AAAA
{
//separation des champs
$date_in = explode("-",$date_us);
$date_out = $date_in[2];
$date_out .= "-";
$date_out .= $date_in[1];
$date_out .= "-";
$date_out .= $date_in[0];
return $date_out;
}
?>
<?php


//creation de la requete d'admin
$sql_infos = "SELECT nb_sites_on_page,nb_days2benew FROM infos_annuaire ";
//envoi de la requete
$res_infos = send_sql1($sql_infos,"trouver le nombre de sites à afficher par page");

//traitement du resultat
$result_infos = mysql_fetch_array($res_infos,MYSQL_ASSOC);
$nb_sites_on_page = $result_infos["nb_sites_on_page"];
$nb_days2benew = $result_infos["nb_days2benew"];
?>
<?php
function affiche_site1($resultat,$type="index")
//affiche les infos d'un site avec quelques fioritures en plus si c'est un partenaire
//$resultat : enreg pris de la BD avec les infos du site
//$type : type d'affichage different selon qu'on se trouve dans les categories, les tops, les nouveautes ou encore le moteur....
//$type pourra prendre les valeurs suivantes : index, topc, topv, news, search !
{
global $nb_days2benew,$position;
?>
<tr>
<td width="100%" align="left">
<?php
if ($type == "topc" || $type == "topv")
echo "<span class=\"position_site_annuaire\">".$position.")</span>\n";
?>
<center><a href="goto.php?id=<?php echo $resultat["id"]; ?>" target="_blank" class="titre_site_annuaire"><?php echo htmlspecialchars($resultat["titre"]); ?></a></center>
 
<?php
if ($type != "topv")
{
?>
<center>
<span class="nb_clics_site_annuaire">
<?php echo $resultat["nb_clics"];
if ($resultat["nb_clics"] <= 1)
{ ?> visite <?php }
else
{ ?> visites <?php }
?>
</span>
<span class="date_validation_site_annuaire">
<?php echo " depuis le ".convert_date_us2fr($resultat["date_validation"]); ?>
</span>
<?php
}
else // on est sur les votes
{
?>
<span class="moyenne_votes_topv_annuaire">
avec une moyenne de <?php echo $resultat["moyenne_votes"]; ?>/10 sur <?php echo $resultat["nb_votes"];
if ($resultat["nb_votes"] > 1)
{ ?> votes <?php }
else
{ ?> vote <?php } ?>
</span>
<?php
}
//image pour signaler que le site est nouveau
if($type != 'new' && $resultat["dif_days"] <= $nb_days2benew)
echo "<img src=\"img/new.gif\" border=0>\n";
?>
</center>
<tr>
<td width="100%" colspan=2>
<p align="justify">
<?php echo htmlspecialchars($resultat["description"]); ?>
</p>
<tr>
<td width="100%">
<?php
if ($type == "index" || $type == "search")
{
?>
<center>
<span class="moyenne_votes_site_annuaire">
[ <?php echo $resultat["nb_votes"];
if ($resultat["nb_votes"] <= 1)
echo " vote, ";
else
{ echo " votes, "; }
?>
moyenne : <?php echo $resultat["moyenne_votes"]; ?>/10 ]
   
</span></center>
<center>
<a href="javascript:open_popup('vote.php?id_site=<?php echo $resultat["id"]; ?>',180,320);" class="vote_site_annuaire">Voter pour ce site</a></center>
<br>
<center>
<span class="commentaire_site_annuaire">
<?php echo $resultat["nb_com"]; ?> commentaires
</span>
<a href="javascript:open_popup('commentaires.php?id_site=<?php echo $resultat["id"]; ?>',350,350);" class="read_write_com_site_annuaire">Voir</a>
|
<a href="javascript:open_popup('commentaires.php?id_site=<?php echo $resultat["id"]; ?>#add',350,350);" class="read_write_com_site_annuaire">Rédiger</a>
</center><br>
<?php
} // fin du if ($type == "index")

if ($type != "index") //on ajouter un lien vers la categorie (-> moteur de recherche)
{
?>
<span class="link_to_cat_annuaire">
=> Catégorie : <a href="index.php?cat_id=<?php echo $resultat["id_cat"]; ?>" class="link_to_cat_annuaire"><?php echo htmlspecialchars($resultat["cat_name"]); ?></a>
</span>
<?php
}
?>

<br><br>
<?php
}
?>
<?php
//on affiche les sites
$sql_site = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM sites_annuaire WHERE id= $id ";
$res_site = send_sql1($sql_site,"trouver le site à afficher");
if (mysql_num_rows ($res_site))
{
?>
<table width="90%" border=0 align="center">
<?php
while ($resultat = mysql_fetch_array($res_site,MYSQL_ASSOC))
{
affiche_site1($resultat);
}
?>
</table>
<?php
}
?>



Voila, désolé pour la longueur du message. Je suis pas très doué en informatique, et là je suis bloqué dans la conception du site de mon association. j'espere que vous pourrai m'aider.Je vous remercie d'avance.

1 réponse

Bonjour!

(voila j'avais mal édité le message donc je l'ai réenvoyé. jespere que j'aurai un peu d'aide jsuis coincé là merci d'avance.)

J'ai un problème lors d'une inclusion dans une pseudo frame. En fait je suis en train d'incorporer sur mon site un annuaire de liens en php. J'ai donc une page principale dans laquelle sont repertoriées les catégories de liens. lorsque l'on clic sur une catégorie, on est renvoyé sur une autre page qui acceuille les liens vers les sites de cette catégorie.

Dans cette derniere page, il ya une partie qui liste les noms des différents liens, et de lautre, une partie description qui apparait lorsque l'on clic sur le nom du liens. Pour réaliser cela, j'utilise donc la méthode des pseudos frames mais lorsque l'on clic sur le nom dun lien, la description apparait bien mais la liste des noms de liens disparait.

Je vous donne les portions de code correspondant:

pour la liste de noms de liens:

 
<?php 
//VARIABLES GENERALES 
include("data.php"); 
global $dbserver; 
global $dbdb; 
global $dbuser; 
global $dbpass; 
//CONNEXION A LA BASE DE DONNEES 
@MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de données.<br>Vérifiez les donnés du fichier <b>data.php</b>.</p>"); 
mysql_select_db("$dbdb"); 

//INITALISATION DES VARIABLES 
include("functions.php"); 
include("data_bd_annuaire.php"); 
$texte=""; 
$request=""; 
//RECUPERATION DES DONNEES 
$id=(isset($_POST["id"])) ? $_POST["id"] : Null; 
$res_nb_sites=(isset($_REQUEST["res_nb_sites"])) ? $_REQUEST["res_nb_sites"] : Null; 
$day=(isset($_REQUEST["day"])) ? $_REQUEST["day"] : Null; 
$categorie=(isset($_REQUEST["categorie"])) ? $_REQUEST["categorie"] : Null; 
$cat_id=(isset($_GET["cat_id"])) ? $_GET["cat_id"] : Null; 
$limit=(isset($_REQUEST["limit"])) ? $_REQUEST["limit"] : Null; 
?> 
<?php 

function affiche_site($resultat,$type="index") 
//affiche les infos d'un site avec quelques fioritures en plus si c'est un partenaire 
//$resultat : enreg pris de la BD avec les infos du site 
//$type : type d'affichage different selon qu'on se trouve dans les categories, les tops, les nouveautes ou encore le moteur.... 
//$type pourra prendre les valeurs suivantes : index, topc, topv, news, search ! 
{ 
global $nb_days2benew,$position; 
?> 
<tr> 
<td width="100%" align="left"> 
<?php 
if ($type == "topc" || $type == "topv") 
echo "<span class=\"position_site_annuaire\">".$position.")</span>\n"; 
} 
?> 
<?php 
//creation des requetes pour trouver les sous-categories, les sites et la description de la categorie 
$sql_descr = "SELECT texte FROM categories_annuaire WHERE id = '$cat_id' "; 
$sql_nb_sites = "SELECT id FROM sites_annuaire WHERE id_cat = '$cat_id' AND activation = 1 "; 
$sql_site = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM sites_annuaire WHERE id_cat = '$cat_id' AND activation = 1 ORDER BY niveau ASC,titre ASC"; 
$sql_scat = "SELECT id, cat_name FROM categories_annuaire WHERE id_cat_mere = '$cat_id' AND activation = 1 ORDER BY cat_name ASC"; 

//envoi des requetes 
$res_descr = send_sql($sql_descr,"trouver la description de cette catégorie"); 
$res_nb_sites = send_sql($sql_nb_sites,"trouver le nombre de sites à afficher"); 
$res_site = send_sql($sql_site,"trouver les sites à afficher"); 
$res_scat = send_sql($sql_scat,"trouver les sous-catégories"); 

//on affiche les sites 
if (mysql_num_rows ($res_site)) 
{ 
?> 
<table width="90%" border=0 align="center"> 
<?php 
while ($resultat = mysql_fetch_array($res_site,MYSQL_ASSOC)) 
{ 
?> 
<a href="page_liens_groupes.php?page=page1&id=<?php echo $resultat["id"]; ?>" class="titre_site_annuaire"><?php echo htmlspecialchars($resultat["titre"]); ?></a> 
     
</table> 
<?php 
} 
} 
if (!mysql_num_rows($res_site) and !mysql_num_rows($res_scat) ) //pas de site dans la categorie ni de sous categorie 
{ 
?> 
<br> 
<span class="no_site_in_cat_annuaire"> 
<center> 
Pas encore de sites dans cette catégorie ! 
<br> 
Profitez en pour y ajouter votre site si il correspond à cette catégorie 
</center> 
</span> 
<?php 
} 
echo "</center>\n"; 
?> 


Pour la description:

 
<?php 
if (!isset($_GET['page'])) $page= 'acceuil'; else $page= $_GET['page']; 
switch($page) 
{ 
case 'page1': include ('liens.php');break; 
case 'acceuil': include ('acceuil.php');break; 
} 
?> 


Pour finir le fichier liens.php:

 <?php 
//VARIABLES GENERALES 
include("data.php"); 
global $dbserver; 
global $dbdb; 
global $dbuser; 
global $dbpass; 
//CONNEXION A LA BASE DE DONNEES 
@MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de données.<br>Vérifiez les donnés du fichier <b>data.php</b>.</p>"); 
mysql_select_db("$dbdb"); 

//INITALISATION DES VARIABLES 
include("data_bd_annuaire.php"); 
$texte=""; 
$request=""; 
//RECUPERATION DES DONNEES 
$id_site1=(isset($_REQUEST["id_site1"])) ? $_REQUEST["id_site1"] : Null; 
$res_nb_sites=(isset($_REQUEST["res_nb_sites"])) ? $_REQUEST["res_nb_sites"] : Null; 
$day=(isset($_REQUEST["day"])) ? $_REQUEST["day"] : Null; 
$categorie=(isset($_REQUEST["categorie"])) ? $_REQUEST["categorie"] : Null; 
$id=(isset($_REQUEST["id"])) ? $_REQUEST["id"] : Null; 
$limit=(isset($_REQUEST["limit"])) ? $_REQUEST["limit"] : Null; 
?> 
<?php 
function send_sql1($sql,$message) 
//envoi la requete $sql a la base et affiche un message si il y a eu un probleme sinon on rend le resultat 
{ 
if(!$res = @mysql_query($sql)) 
{ 
$message_erreur = "<font color=\"#ff0000\">\n"; 
$message_erreur .= "Impossible d'effectuer la requête pour $message\n"; 
$message_erreur .= "<br><br>\n"; 
// $message_erreur .= "Voici la requête : \n<br>\n"; 
// $message_erreur .= "$sql\n"; 
// $message_erreur .= "<br><br>\n"; 
$message_erreur .= "Voici le message d'erreur renvoyé par la base de données :\n<br>\n"; 
die("$message_erreur".mysql_errno()." : ".mysql_error()."</font>\n"); 
} 
return $res; 
} 
function convert_date_us2fr($date_us) 
//convertit une date AAAA-MM-JJ en JJ-MM-AAAA 
{ 
//separation des champs 
$date_in = explode("-",$date_us); 
$date_out = $date_in[2]; 
$date_out .= "-"; 
$date_out .= $date_in[1]; 
$date_out .= "-"; 
$date_out .= $date_in[0]; 
return $date_out; 
} 
?> 
<?php 


//creation de la requete d'admin 
$sql_infos = "SELECT nb_sites_on_page,nb_days2benew FROM infos_annuaire "; 
//envoi de la requete 
$res_infos = send_sql1($sql_infos,"trouver le nombre de sites à afficher par page"); 

//traitement du resultat 
$result_infos = mysql_fetch_array($res_infos,MYSQL_ASSOC); 
$nb_sites_on_page = $result_infos["nb_sites_on_page"]; 
$nb_days2benew = $result_infos["nb_days2benew"]; 
?> 
<?php 
function affiche_site1($resultat,$type="index") 
//affiche les infos d'un site avec quelques fioritures en plus si c'est un partenaire 
//$resultat : enreg pris de la BD avec les infos du site 
//$type : type d'affichage different selon qu'on se trouve dans les categories, les tops, les nouveautes ou encore le moteur.... 
//$type pourra prendre les valeurs suivantes : index, topc, topv, news, search ! 
{ 
global $nb_days2benew,$position; 
?> 
<tr> 
<td width="100%" align="left"> 
<?php 
if ($type == "topc" || $type == "topv") 
echo "<span class=\"position_site_annuaire\">".$position.")</span>\n"; 
?> 
<center><a href="goto.php?id=<?php echo $resultat["id"]; ?>" target="_blank" class="titre_site_annuaire"><?php echo htmlspecialchars($resultat["titre"]); ?></a></center> 
  
<?php 
if ($type != "topv") 
{ 
?> 
<center> 
<span class="nb_clics_site_annuaire"> 
<?php echo $resultat["nb_clics"]; 
if ($resultat["nb_clics"] <= 1) 
{ ?> visite <?php } 
else 
{ ?> visites <?php } 
?> 
</span> 
<span class="date_validation_site_annuaire"> 
<?php echo " depuis le ".convert_date_us2fr($resultat["date_validation"]); ?> 
</span> 
<?php 
} 
else // on est sur les votes 
{ 
?> 
<span class="moyenne_votes_topv_annuaire"> 
avec une moyenne de <?php echo $resultat["moyenne_votes"]; ?>/10 sur <?php echo $resultat["nb_votes"]; 
if ($resultat["nb_votes"] > 1) 
{ ?> votes <?php } 
else 
{ ?> vote <?php } ?> 
</span> 
<?php 
} 
//image pour signaler que le site est nouveau 
if($type != 'new' && $resultat["dif_days"] <= $nb_days2benew) 
echo "<img src=\"img/new.gif\" border=0>\n"; 
?> 
</center> 
<tr> 
<td width="100%" colspan=2> 
<p align="justify"> 
<?php echo htmlspecialchars($resultat["description"]); ?> 
</p> 
<tr> 
<td width="100%"> 
<?php 
if ($type == "index" || $type == "search") 
{ 
?> 
<center> 
<span class="moyenne_votes_site_annuaire"> 
[ <?php echo $resultat["nb_votes"]; 
if ($resultat["nb_votes"] <= 1) 
echo " vote, "; 
else 
{ echo " votes, "; } 
?> 
moyenne : <?php echo $resultat["moyenne_votes"]; ?>/10 ] 
    
</span></center> 
<center> 
<a href="javascript:open_popup('vote.php?id_site=<?php echo $resultat["id"]; ?>',180,320);" class="vote_site_annuaire">Voter pour ce site</a></center> 
<br> 
<center> 
<span class="commentaire_site_annuaire"> 
<?php echo $resultat["nb_com"]; ?> commentaires 
</span> 
<a href="javascript:open_popup('commentaires.php?id_site=<?php echo $resultat["id"]; ?>',350,350);" class="read_write_com_site_annuaire">Voir</a> 
| 
<a href="javascript:open_popup('commentaires.php?id_site=<?php echo $resultat["id"]; ?>#add',350,350);" class="read_write_com_site_annuaire">Rédiger</a> 
</center><br> 
<?php 
} // fin du if ($type == "index") 

if ($type != "index") //on ajouter un lien vers la categorie (-> moteur de recherche) 
{ 
?> 
<span class="link_to_cat_annuaire"> 
=> Catégorie : <a href="index.php?cat_id=<?php echo $resultat["id_cat"]; ?>" class="link_to_cat_annuaire"><?php echo htmlspecialchars($resultat["cat_name"]); ?></a> 
</span> 
<?php 
} 
?> 

<br><br> 
<?php 
} 
?> 
<?php 
//on affiche les sites 
$sql_site = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM sites_annuaire WHERE id= $id "; 
$res_site = send_sql1($sql_site,"trouver le site à afficher"); 
if (mysql_num_rows ($res_site)) 
{ 
?> 
<table width="90%" border=0 align="center"> 
<?php 
while ($resultat = mysql_fetch_array($res_site,MYSQL_ASSOC)) 
{ 
affiche_site1($resultat); 
} 
?> 
</table> 
<?php 
} 
?> 



Voila, désolé pour la longueur du message. Je suis pas très doué en informatique, et là je suis bloqué dans la conception du site de mon association. j'espere que vous pourrai m'aider.Je vous remercie d'avance.
0