Aller au contenu

Bug incompréhensible, PHP se mélange les pinceaux


Sujets conseillés

Posté (modifié)

Bonjour,

j'utilise un script PHP de gestion de news.

Je l'utilise en fait deux fois. J'ai donc deux dossiers de ce script, l'un nommé "news", l'autre "breves", chacun configuré sur des bases mySQL différentes.

Lorsque je fait appel aux deux scripts sur des pages différentes, cela fonctionne parfaitement.

Par exemple, je crée une page "breves.php" contenant le code :

<?php

$chemin = "breves";

$what_aff = "petit_format";

include ("$chemin/aff_news.php");

?>

et une page "news.php" contenant le code :

<?php

$chemin = "news";

$what_aff = "petit_format";

include ("$chemin/aff_news.php");

?>

A présent, si je fait un include de "breves.php" sur une page, et un peu plus loin, sur la même page, un include de "news.php", alors en lieux et place des news il me réaffiche les brèves !!!!!

J'ai essayé de bidouillé en utilisant des $chemin et $chemin2 pour différencier les variables, mais ça ne change rien.

La seul solution que j'ai trouver.... c'est d'utiliser une iframe pour l'un des deux (BEURK, cela me pose plein d'autres problèmes).

Je vous en prie, je vous serais très reconnaissant de bien vouloir m'éclairer.

Modifié par nebuchad34
Posté

Bonjour,

Il faudrait connaître le contenu des 2 includes pour pouvoir répondre correctement.

Mais sinon, si il s'agit de 2 bases, peut-être qu'un simple "mysql_close();" pourrait suffire entre les deux fichiers...

Posté

Bonjour,

il y a des chances également pour que le script ne conserve pas le "mysql handle" pour l'appel aux fonctions mysql_xxx() ; donc PHP mélange tout oui.

A moins que ce soit un pseudo cache du script mal fichu.

M'enfin, comme le dit Prélude sans connaitre le contenu du script on ira pas bien loin.

Posté

voilà le contenu du fichier "aff_news.php" :

CODE

<script LANGUAGE="JavaScript">

function popup(page) {

window.open(page,'popup','width=345,height=480,directories=no,menubar=no,status=no,location=no,resizab

le=no,scrollbars=yes,top=50,left=270');

}

function alert_news()

{

alert("Ok !\n\nVotre news nous a été soumise avec succès.\n

Après vérification et si elle est acceptée sa publication sera effective d\'ici quelques jours.");

}

function verifsubmit()

{

var ok_return = true;

var titre = window.document.ajouter.titre.value;

var texte = window.document.ajouter.texte.value;

if (titre == "")

{

alert("Vous n'avez pas renseigné le titre de la news");

var ok_return = false;

}

else if (texte == "")

{

alert("Vous n'avez pas écrit de texte");

var ok_return = false;

}

return ok_return

}

</SCRIPT>

<?php

if ($aff_news != "1")

{

include ("config.php");

include ("functions.inc.php");

include ("options.inc.php");

}

$aff_news = 1;

$save_debut = $debut;

if ($what_aff == "grand_format")

$limit = $nb_news;

elseif ($what_aff == "petit_format")

$limit = $nb_news_petit;

elseif ($what_aff == "archives")

$limit = $nb_news_arch;

@MYSQL_CONNECT ($serveur_z,$login_z,$pass_z) or die ("Erreur, connexion à la base de données impossible");

mysql_select_db($base_z);

$query = "select * from options";

$resultat = mysql_query($query);

while ($ligne = mysql_fetch_array($resultat))

{

$code_html13[1] = stripslashes($ligne["code_html1"]);

$code_html23[1] = stripslashes($ligne["code_html2"]);

$code_html33[1] = stripslashes($ligne["code_html3"]);

}

if ($debut == "")

$debut = 0;

if ($arch == "1")

$soustr = 0;

if ($arch == "2")

{

$debut += $nb_news;

$soustr = $nb_news;

}

elseif ($arch == "3")

{

$debut += $nb_news_petit;

$soustr = $nb_news_petit;

}

elseif ($arch == "4")

{

$debut += $nb_news + $nb_news_petit;

$soustr = $$nb_news + $nb_news_petit;

}

if ($what_aff == "grand_format" or ($what_aff == "petit_format" && $format == "1"))

$query = "select * from news where validation='1' order by date_news DESC limit $limit";

elseif ($what_aff == "petit_format" && $format == "0")

$query = "select * from news where validation='1' order by date_news DESC limit $nb_news,$limit";

elseif ($what_aff == "suite")

$query = "select * from news where (id_news='$id_news' && validation='1')";

elseif ($what_aff == "archives")

$query = "select * from news where validation='1' order by date_news DESC limit $debut,$limit";

if ($recherche == "1")

$query = "select * from news where validation='1' order by date_news DESC";

$resultat = mysql_query($query);

$nb_news = mysql_num_rows($resultat);

$nblignes = $nb_news;

$i = 1;

while ($ligne = mysql_fetch_array($resultat))

{

$id_news3[$i] = $ligne["id_news"];

$titre3[$i] = $ligne["titre"];

$date_news3[$i] = $ligne["date_news"];

$titre3[$i] = $ligne["titre"];

$texte3[$i] = $ligne["texte"];

$texte23[$i] = $ligne["texte2"];

if ($recherche == "1")

{

$save_titre3[$i] = noaccents($titre3[$i]);

$save_titre3[$i] = strtolower($save_titre3[$i]);

$save_titre3[$i] = trim($save_titre3[$i]);

$save_texte3[$i] = noaccents($texte3[$i]);

$save_texte3[$i] = strtolower($texte3[$i]);

$texte23[$i] = noaccents($texte23[$i]);

$texte23[$i] = strtolower($texte23[$i]);

}

$i = $i + 1;

}

$query = "select * from news where validation='1'";

$resultat = mysql_query($query);

$nb_news_tot = mysql_num_rows($resultat);

$nb_news_tot -= $soustr;

$i = 1;

if ($recherche == "1")

{

include ("moteur/moteur.php");

}

elseif ($what_aff == "grand_format")

{

while ($i <= $nb_news)

{

$query = "select * from commentaires where id_news='$id_news3[$i]'";

$resultat = mysql_query($query);

$nb_comment = mysql_num_rows($resultat);

$code_insert = aff_news_gf($code_html13[1],$date_news3[$i],

$titre3[$i],$texte3[$i],$texte23[$i],$id_news3[$i]);

echo "$code_insert";

echo "<br>";

$i++;

}

}

elseif ($what_aff == "petit_format")

{

while ($i <= $nb_news)

{

$code_insert = aff_news_pf($code_html23[1],$date_news3[$i],$titre3[$i],$id_news3[$i]);

echo "$code_insert";

echo "<br>";

$i++;

}

}

elseif ($what_aff == "suite")

{

$query = "select * from commentaires where id_news='$id_news3[$i]'";

$resultat = mysql_query($query);

$nb_comment = mysql_num_rows($resultat);

$code_insert = aff_news_gf($code_html33[1],$date_news3[$i],$titre3[$i],$texte3[$i],$texte23[$i],$id_news);

echo "$code_insert";

}

elseif ($what_aff == "archives")

{

include ("moteur/moteur_form.php");

echo "<br>";

$i = 1;

while ($i <= $nb_news)

{

$query = "select * from commentaires where id_news='$id_news3[$i]'";

$resultat = mysql_query($query);

$nb_comment = mysql_num_rows($resultat);

$code_insert = aff_news_gf($code_html13[1],

$date_news3[$i],$titre3[$i],$texte3[$i],$texte23[$i],$id_news3[$i]);

echo "$code_insert";

echo "<br>";

$i++;

}

echo "<center><font size=\"2\" face=\"Arial\">";

$page = ceil($save_debut / $nb_news_arch) + 1;

$nb_pages = ceil($nb_news_tot / $nb_news_arch);

if ($nb_pages > 1)

{

if ($page > 1)

{

$debut = ($page - 2) * $nb_news_arch;

echo "<b><a href=\"$url_archives?debut=$debut\"

style=\"color: #000000\"><précédente</a></b>   ";

}

else

echo "<précédente   ";

echo "<b>[</b> ";

$a = 1;

while ($a <= $nb_pages)

{

$debut = ($a - 1) * $nb_news_arch;

if ($a == $page)

echo "$a";

else

echo "<b><a href=\"$url_archives?debut=$debut\"

style=\"color: #000000\">$a</a></b>";

if ($a < $nb_pages)

echo "-";

$a++;

}

echo " <b>]</b>";

if ($page < $nb_pages)

{

$debut = $page * $nb_news_arch;

echo "   <b><a href=\"$url_archives?debut=$debut\"

style=\"color: #000000\">suivante></a></b>   ";

}

else

echo "   suivante>   ";

}

if ($nb_news < 1)

{

echo "<p align=\"center\"><font size=\"2\" face=\"Arial\">

<b>- il n'y a pas d'archives pour le moment -</b></font></p>";

}

echo "</font></center>";

}

elseif ($what_aff == "prop_news")

{

if ($ajouter_news != "")

{

$date_news = date("Y/m/d H:i");

$date_ajout = date("d/m/Y");

$query = "insert into news values('','$titre','$date_news','0',

'$texte','$texte2','Personne_extérieure','$date_ajout')";

$resultat = mysql_query($query);

$from_email = "news_AT_prologin.fr";

$entetedate = date("D, j M Y H:i:s");

$entetemail = "From: $from_email \n";

$entetemail .= "Reply-To: $from_email \n";

_AT_mail("$votre_email",

"Bonjour,\n\nUne nouvelle news vient d'être soumise sur votre site $url_site,

vous pouvez la valider ou la supprimer à cette adresse:\n\n$url_site/$rep_smileys/index.php.\n\n\n

news - copyright ©, Prologin;fr (http://www.prologin.fr)",

"", $entetemail);

echo "<script language=\"Javascript\">";

echo "alert_news();";

echo "</script>";

}

$query = "select * from smileys";

$resultat = mysql_query($query);

$nb_smile = mysql_num_rows($resultat);

$i = 1;

while ($ligne = mysql_fetch_array($resultat))

{

$id3[$i] = $ligne["id"];

$nom3[$i] = $ligne["nom"];

$i = $i + 1;

}

echo "<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"6\">";

echo "<tr><form name=\"ajouter\" method=\"post\" action=\"$url_prop_news\"

language=\"Javascript\" onsubmit=\"return verifsubmit()\"><td width=\"100%\" height=\"21\" colspan=\"8\"></td></tr>";

$admin_ok = 0;

include ("form_news.php");

echo "<p align=\"center\"><input type=\"submit\" value=\"- Envoyer -\"

name=\"ajouter_news\"><br> </td></tr></form></table>";

}

_AT_mysql_close();

?>

Posté (modifié)

if ($aff_news != "1")
{
include ("config.php");
include ("functions.inc.php");
include ("options.inc.php");
}
$aff_news = 1;

La configuration de la connexion à MySQL n'est chargée qu'une seule fois, donc les deux includes c'est la même base de données qui est utilisée.

Modifié par Kioob
Posté

il y a portant bien deux fichiers aff_news.php, deux fichiers config.php.... Vraiment vous navez pas une solution ? Si je met sqlclose entre les deux il me génère un message d'erreur

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...