Mcmurphy
Messages postés115Date d'inscriptionvendredi 6 juillet 2007StatutMembreDernière intervention28 août 2008
-
9 août 2007 à 10:51
niko -
3 oct. 2007 à 11:30
bonjour
voila mon probléme j'ai remplacer mes zone de texte dans mon php par des variable de séssion qui vont chercher c'es message dans le texte 5site multi langue mais une fois que je le lance pas de sosucis sauf pour une page qui (j'ai l'impréssion bboucle j'usqua ce que mon apache plante )
voici mon script si il peut vous aidez :
<?php
session_start();
include_once("commun/connexion.inc.php");
include_once("commun/fonctions.inc.php");
$query = 'SELECT * FROM iso_fichier WHERE en_ligne = 1';
$query .= $querySearch;
if($site_affiche != '-1'){
if($site_affiche != '' && $site_affiche == 0) {
$query .= ' AND mask_site_fichier = "'.$site_affiche.'"';
}
else {
$query .= ' AND (mask_site_fichier = "'.$site_affiche.'"';
$query .= ' OR mask_site_fichier LIKE "'.$site_affiche.'-%"';
$query .= ' OR mask_site_fichier LIKE "%-'.$site_affiche.'"';
$query .= ' OR mask_site_fichier LIKE "%-'.$site_affiche.'-%"';
$query .= ' OR mask_site_fichier LIKE "0")';
}
}
if($service_affiche != '-1'){
if($service_affiche != '' && $service_affiche == 0) {
$query .= ' AND mask_service_fichier = "'.$service_affiche.'"';
}
else {
$query .= ' AND (mask_service_fichier = "'.$service_affiche.'"';
$query .= ' OR mask_service_fichier LIKE "'.$service_affiche.'-%"';
$query .= ' OR mask_service_fichier LIKE "%-'.$service_affiche.'"';
$query .= ' OR mask_service_fichier LIKE "%-'.$service_affiche.'-%"';
$query .= ' OR mask_service_fichier LIKE "0")';
}
}
if($idProcedure != '-1'){
if($idProcedure != '' && $idProcedure != 0) {
$dataArray = get_info_procedure($idProcedure);
$query .= ' AND (nom_fichier LIKE "%'.$dataArray[1].'_'.$dataArray[2].'%"';
$query .= ' OR nom_fichier LIKE "%'.$dataArray[1].$dataArray[2].'%")';
}
}
// traitement des droits des sites
$query .= ' AND ( mask_site_fichier = "0" OR ';
for($i=0; $i<count($mask_site_user); $i++){
if($mask_site_user[$i] == 0 && $mask_site_user[$i] != ''){
$query .= ' mask_site_fichier != "0" ';
} else {
if($i>0){
$query .= ' OR ';
}
$query .= ' mask_site_fichier = "'.$mask_site_user[$i].'"';
$query .= ' OR mask_site_fichier LIKE "'.$mask_site_user[$i].'-%"';
$query .= ' OR mask_site_fichier LIKE "%-'.$mask_site_user[$i].'"';
$query .= ' OR mask_site_fichier LIKE "%-'.$mask_site_user[$i].'-%"';
}
}
$query .= ')';
// traitement des droits des services
$query .= ' AND ( mask_service_fichier = "0" OR ';
for($i=0; $i<count($mask_service_user); $i++){
if($mask_service_user[$i] == 0 && $mask_service_user[$i] != ''){
$query .= ' mask_service_fichier != "0" ';
} else {
if($i>0){
$query .= ' OR ';
}
$query .= ' mask_service_fichier = "'.$mask_service_user[$i].'"';
$query .= ' OR mask_service_fichier LIKE "'.$mask_service_user[$i].'-%"';
$query .= ' OR mask_service_fichier LIKE "%-'.$mask_service_user[$i].'"';
$query .= ' OR mask_service_fichier LIKE "%-'.$mask_service_user[$i].'-%"';
}
}
$query .= ')';
$queryEnd = ' ORDER BY nom_fichier ASC';
// on récupère les procédures
$resultProc = get_procedures();
// on construit la requête
$query .= $queryEnd;
$result = connect($query);
// on récupère les documents déjà lus dans un array
$listeDocLus = get_listeDocumentsLus($_SESSION['validUser'], true);
// on construit un tableau contenant la liste des fichiers autorisés ou filtrés
$tabFiles = null;
while($ligne=mysql_fetch_array($result)) {
$indice = count($tabFiles);
$tabFiles[$indice][0] = $ligne["id_fichier"];
$tabFiles[$indice][1] = $ligne["nom_fichier"];
$tabFiles[$indice][2] = $ligne["date_document"];
$tabFiles[$indice][3] = $ligne["Description"];
$tabFiles[$indice][4] = $ligne["maj"];
}
// on construit un tableau contenant la liste des procédures : NOM_NUM
$tabProc = null;
while($ligne=mysql_fetch_array($resultProc)) {
$tabProc[count($tabProc)] = $ligne["nom"]."_".$ligne["num"];
}
// on parcourt la liste des documents autorisés ou filtrés
for($j=0; $j<count($tabFiles); $j++) {
$tabProc_affiche = "<table class=donnees width=90% align=center>
<tr class=titre>
<td class=titreProcedure>
<a href='javascript:afficheTableau(\"".$nomProc."\")'>
<img src='pics/lplus.gif' class='plus' alt=".getMessage(6, $_SESSION['idLanguePgm'])." id='img_".$nomProc."'>
</a>".$nomProc." @@@@@
</td>
</tr>
<tr id=\"tab_".$nomProc."\" style='display:none'>
<td>
<table class='donnees' width='100%'>";
$idDoc = $tabFiles[$j][0];
$nomDoc = $tabFiles[$j][1];
$dateDoc = $tabFiles[$j][2];
$descriptionDoc = $tabFiles[$j][3];
$dateMajDoc = $tabFiles[$j][4];
// si le document fait partie de la procédure en cours
if(stristr($nomDoc, $nomProc)) {
//$nbDoc++;
// on regarde si le document est lu ou non
if(!in_array(strtolower($nomDoc), $listeDocLus)) {
$classe = 'ligneenvaleur';
$nbDocProcedureNonLus++;
} else {
$nbDocProcedureLus++;
$nbDocTotalLus++;
$classe = '';
}
$nbDoc ++;
// si c'est une annexe qui peut avoir des doc spécifiques par site
// ex. PRO, CON, ... mais pas procedure, paletisation, process
if(strtoupper($nomProc) == $nomProc) {
// si c'est une procédure
if(stristr($nomDoc, "procedure")) {
$nbDocProc ++;
$tabAfficheProcedure .= '
<tr class="'.$classe.'" onmouseover="this.bgColor=\'#299af5\'" onmouseout="this.bgColor=\'\'" id='.$idDoc.' >
<td width="40%">
<a href="#" class=text1 onclick="window.open(\'Ouvrir/ouvrir.php?id_fichier='.$idDoc.'&fichier='.$nomDoc.'\', \'Doc\')" alt= '.getMessage(132, $_SESSION['idLanguePgm']).'" '.$nomDoc.'">'.$nomDoc.'</a>
</td>
<td width="10%">
<acronym title="Date du document : '.$dateDoc.'">'.$dateDoc.'</acronym>
</td>
<td width="40%">
<acronym title="Description">'.$descriptionDoc.'</acronym>
</td>
<td width="10%">
<acronym title="Date de mise à jour du document : '.$dateMajDoc.'">'.$dateMajDoc.'</acronym>
</td>
</tr>';
}
// si c'est une annexe commune, le nom du doc se poursuit de _an
elseif(stristr($nomDoc, $nomProc."_an")) {
$anCommun = substr($nomDoc, strlen($nomProc)+1, -4);
// on test comment estr écrit le numéro de l'annexe pour récupérer le numéro de l'annexe
if(strpos($anCommun, "_") != 2){ // an25
$anCommun = substr($anCommun, 2);
}
else { //an_25
$anCommun = substr($anCommun, 3);
}
$indiceCommun = count($array_anCommun);
$array_anCommun[$indiceCommun][0] = $idDoc;
$array_anCommun[$indiceCommun][1] = $anCommun."@".$nomDoc;
$array_anCommun[$indiceCommun][2] = $dateDoc;
$array_anCommun[$indiceCommun][3] = $descriptionDoc;
$array_anCommun[$indiceCommun][4] = $dateMajDoc;
$nbDocCommun ++;
}
// sinon, c'est une annexe spécifique à un site
else {
// on récupère la longueur de la zone site : ex. MAN_U17 = 7
$nbCarSite = strpos($nomDoc, "_an") - strlen($nomProc) - 1;
// on récupère le numéro de l'annexe sans le _an ni l'extension du document
$anSite = substr($nomDoc, strpos($nomDoc, "_an")+1, -4);
// si le numéro de l'annexe est sous la forme an_X (!= de anX)
if(strpos($anSite, "_") != 2){
$anSite = substr($anSite, 2);
}
else {
$anSite = substr($anSite, 3);
}
$array_anSite[count($array_anSite)] = $anSite;
$nbDocSite++;
$site3 = substr($nomDoc, strlen($nomProc)+1, $nbCarSite);
if($site3_old != $site3) {
$tabAfficheSite .= "<tr><td colspan=4> </td></tr><tr class='titre'><td colspan=4>$site3</td></tr>";
}
$tabAfficheSite .= '<tr class="'.$classe.'" onmouseover="this.bgColor=\'#299af5\'" onmouseout="this.bgColor=\'\'" id='.$idDoc.' ><td><a href="#" class=text1 onclick="window.open(\'Ouvrir/ouvrir.php?id_fichier='.$idDoc.'&fichier='.$nomDoc.'\', \'Doc\')" alt='.getMessage(132, $_SESSION['idLanguePgm']).'"'.$nomDoc.'">'.$nomDoc.'</a></td><td width="10%"><acronym title="Date du document : '.$dateDoc.'">'.$dateDoc.'</acronym></td><td width="40%"><acronym title="Description">'.$descriptionDoc.'</acronym></td><td width="10%"><acronym title="Date de mise à jour du document : '.$dateMajDoc.'">'.$dateMajDoc.'</acronym></td></tr>';
$site3_old = $site3;
}
}
else {
$tabAfficheAlone .= '<tr class="'.$classe.'" onmouseover="this.bgColor=\'#299af5\'" onmouseout="this.bgColor=\'\'" id='.$idDoc.' ><td><a href="#" class=text1 onclick="window.open(\'Ouvrir/ouvrir.php?id_fichier='.$idDoc.'&fichier='.$nomDoc.'\', \'Doc\')" alt='.getMessage(132, $_SESSION['idLanguePgm']).'"'.$nomDoc.'">'.$nomDoc.'</a></td><td width="10%"><acronym title="Date du document : '.$dateDoc.'">'.$dateDoc.'</acronym></td><td width="40%"><acronym title="Description">'.$descriptionDoc.'</acronym></td><td width="10%"><acronym title="Date de mise à jour du document : '.$dateMajDoc.'">'.$dateMajDoc.'</acronym></td></tr>';
}
nherment
Messages postés94Date d'inscriptionmercredi 8 août 2007StatutMembreDernière intervention 7 septembre 2007 9 août 2007 à 10:56
lol. Je veux bien aider mais dis nous quelle boucle plante.
J'ai pas envie de me taper tout ton code.
Sais tu déjà quelle boucle plante ? Sinon, trouve la en mettant des "echo" un peu partout. genre echo "boucle1"; etc...
ensuite apparement c'est une boucle infinie. Donc vérifie la condition de sortie.
Mcmurphy
Messages postés115Date d'inscriptionvendredi 6 juillet 2007StatutMembreDernière intervention28 août 20087 9 août 2007 à 10:58
oki merci pour l'astuce je my cole tout de suite
L'orsque l'on éléminer l'impossible reste aussie improbable soit elle la vérité
Mcmurphy
Messages postés115Date d'inscriptionvendredi 6 juillet 2007StatutMembreDernière intervention28 août 20087 9 août 2007 à 11:24
ce n'est pas la boucle qui plante mais le tableau que joint aux message peut étres est ce une histoire de simple et de double cote merci de ton aide quelquel soit
9 août 2007 à 10:58
L'orsque l'on éléminer l'impossible reste aussie improbable soit elle la vérité
9 août 2007 à 11:24
echo '
<table width="10%" align="left" border="0" style="margin-left:20px">
<tr><td colspan="7"></td></tr>
<tr>
<td>
<table>
<tr>
<form name="siteForm"><td>'.$menuSites.'</td></form>
<form name="serviceForm"><td>'.$menuServices.'</td></form>
<td>'.return_menu_procedure($idProcedure, "go_affiche($site_affiche, $service_affiche, idProcedure.value)").'</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3">'.getMessage(51, $_SESSION['idLanguePgm']).'</td>
</tr>
<tr>
<td>
<table>
<tr>
<form name="queryForm">
<td><input type="text" size="50" name="query" value="'.$queryForm_affiche.'"></td>
<td><input type="button" name="submitB" value="'.getMessage(48, $_SESSION['idLanguePgm']).'" onclick="check()" style="border=none;border: 1px solid #000;"></td>
<td><input type="button" name="CANCEL" value="'.getMessage(49, $_SESSION['idLanguePgm']).'" onclick="annuler()" style="border=none;border: 1px solid #000;"></td>
</form>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
';
9 août 2007 à 11:34
lol. php s'intègre dans le html et pas l'inverse. héhé.
Je te conseille plutot ca :
9 août 2007 à 11:38
D'après ce que tu décris c'est bel et bien une boucle infinie.
Peut-être y en a t-il dans une des fonction que tu appelles ?
continue la méthode des "echo" qui te permettra de localiser très précisément le bug.