Boucle php fais planter apache
Résolu
Mcmurphy
Messages postés
115
Date d'inscription
Statut
Membre
Dernière intervention
-
niko -
niko -
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");
if (!isset($_SESSION['validUser'])){
$javaScriptGo = '<script type="text/javascript">document.location.href="index_AD.php";</script>';
echo $javaScriptGo;
}
else {
include "commun/entete.php";
echo "<table width=100% border=0><tr><td>";
$queryForm_affiche = '';
$texte = '';
$querySearch = '';
$nbSitesUser = get_nbSitesUser($_SESSION['validUser']);
if(isset($_GET['id_site'])){
$site_affiche = $_GET['id_site'];
}
else{
$site_affiche = -1;
}
if(isset($_GET['id_service'])){
$service_affiche = $_GET['id_service'];
}
else{
$service_affiche = -1;
}
if(isset($_GET['idProcedure'])){
$idProcedure = $_GET['idProcedure'];
}
else{
$idProcedure = -1;
}
if(isset($_GET['query']) && $_GET['query'] != ''){
$queryForm = $_GET['query'];
$queryForm_affiche = str_replace('++', '+', str_replace(' ', '+', $queryForm));
$querySearch_array = explode('+', $queryForm_affiche);
$texte = getMessage(59, $_SESSION['idLanguePgm']);
for($i=0; $i<=count($querySearch_array)-1; $i++){
$var = $querySearch_array[$i];
if($i == 0){
$querySearch .= ' AND (';
}
else{
$querySearch .= ' AND ';
}
$querySearch .= '(nom_fichier LIKE "%'.$var.'%" OR Description LIKE "%'.$var.'%")';
}
$querySearch .= ')';
}
$query = 'SELECT nom_site, id_site FROM iso_site WHERE id_site != 0 ORDER BY nom_site ASC';
$result = connect($query);
if($site_affiche == 0 && $site_affiche != '') {
$affiche = "selected";
}
else{
$affiche = "";
}
$menuSites .= '
<select name="site" onchange="go_affiche(site.value, '.$service_affiche.', '.$idProcedure.')">
<option value=-1>'.getMessage(2, $_SESSION['idLanguePgm']).'
<option value=0 '.$affiche.'>'.getMessage(47, $_SESSION['idLanguePgm']);
// on génère le menu dréoulant pour les sites
while ($ligne = @mysql_fetch_array($result)){
$nom_site = $ligne['nom_site'];
$id_site = $ligne['id_site'];
$menuSites .= '
<option value='.$id_site;
if($site_affiche == $id_site)
$menuSites .= ' selected';
$menuSites .= '>'.$nom_site;
}
$menuSites .= '</select>
';
$query = 'SELECT nom_srv, id_srv FROM iso_service WHERE id_srv != 0 ORDER BY nom_srv ASC';
$result = connect($query);
if($service_affiche == 0 && $service_affiche != '') {
$affiche = "selected";
}
else{
$affiche = "";
}
$menuServices.='
<select name="service" onchange="go_affiche('.$site_affiche.', service.value, '.$idProcedure.')">
<option value=-1>'.getMessage(3, $_SESSION['idLanguePgm']).'
<option value=0 '.$affiche.'>'.getMessage(36, $_SESSION['idLanguePgm']);
// on génère le menu déroulant pour les services
while ($ligne = @mysql_fetch_array($result)){
$nom_service = $ligne['nom_srv'];
$id_service = $ligne['id_srv'];
$menuServices.='
<option value='.$id_service;
if($service_affiche == $id_service)
$menuServices.=' selected';
$menuServices.='>'.$nom_service;
}
$menuServices.='</select>
';
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>
';
$site_user = get_user_site($_SESSION['validUser']);
$mask_site_user = explode('-', $site_user);
$service_user = get_user_service($_SESSION['validUser']);
$mask_service_user = explode('-', $service_user);
$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"];
}
$tabAffiche = null;
$nbDocTotal = 0; //count($tabFiles);
$nbDocTotalLus = 0;
$nbDocProcedureLus = 0;
$nbDocProcedureNonLus = 0;
// on parcourt la liste des procédures
for($i=0; $i<count($tabProc); $i++) {
$tabAfficheProcedure = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(52, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheCommun = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(30, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheSite = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(31, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheAlone = "";
$nomProc = $tabProc[$i];
$array_anCommun = null;
$array_anSite = null;
$nbDoc = 0;
$nbDocProc = 0;
$nbDocCommun = 0;
$nbDocSite = 0;
$site3_old = "";
$site3 = "";
$nbDocProcedureLus = 0;
$nbDocProcedureNonLus = 0;
// 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>';
}
$tabFiles[$j] = null;
}
$tabProc_affiche = str_replace('@@@@@', " : <b>".($nbDocProcedureLus+$nbDocProcedureNonLus)."</b>"'.getMessage(33, $_SESSION['idLanguePgm'])." <b>".$nbDocProcedureNonLus."</b>".getMessage(42, $_SESSION['idLanguePgm']). ", $tabProc_affiche);
}
$nbDocTotal += $nbDocProc+$nbDocCommun+$nbDocSite;
if(count($array_anSite) > 0){
$array_count_values = array_count_values($array_anSite);
for($z=0; $z<count($array_anSite); $z++) {
$anArray = explode("@", $array_anSite[$z][1]);
if($array_count_values[$anArray[0]] >= get_nbSitesUser($_SESSION['validUser'])) {
if($site_affiche != "" && $site_affiche != -1 && $array_count_values[$anArray[0]] >= 1){
$array_anSite[$z] = null;
}
}
}
}
if($array_anCommun != null) {
for($z=0; $z<count($array_anCommun); $z++) {
$nbDocCommun ++;
$idDoc = $array_anCommun[$z][0];
$anArray = explode("@", $array_anCommun[$z][1]);
$dateDoc = $array_anCommun[$z][2];
$descriptionDoc = $array_anCommun[$z][3];
$dateMajDoc = $array_anCommun[$z][4];
// on regarde si le document est lu ou non
if(!in_array(strtolower($anArray[1]), $listeDocLus)) {
$classe = 'ligneenvaleur';
$nbDocProcedureNonLus++;
} else {
$nbDocProcedureLus++;
$classe = '';
}
$tabAfficheCommun .= '<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='.$anArray[1].'\', \'Doc\')" alt='.getMessage(132, $_SESSION['idLanguePgm']).'"'.$anArray[1].'">'.$anArray[1].'</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>';
}
}
if($nbDoc == 0){
$tabProc_affiche .= "<tr><td>".getMessage(61,$_SESSION['idLanguePgm'])."</td></tr></table><br>";
} else {
$tabAffiche .= $tabProc_affiche;
if(($nbDocProc + $nbDocCommun + $nbDocSite) > 0) {
if($nbDocProc == 0) {
$tabAfficheProcedure .= "<tr><td colspan='4'>".getMessage(27,$_SESSION['idLanguePgm'])."</td></tr>";
}
if($nbDocCommun == 0) {
$tabAfficheCommun .= "<tr><td colspan='4'>".getMessage(62,$_SESSION['idLanguePgm'])."</td></tr>";
}
if($nbDocSite == 0) {
$tabAfficheSite .= "<tr><td colspan='4'>".getMessage(28,$_SESSION['idLanguePgm'])."</td></tr>";
}
$tabAffiche .= $tabAfficheProcedure;
$tabAffiche .= $tabAfficheCommun;
$tabAffiche .= $tabAfficheSite;
}
else {
$tabAffiche .= $tabAfficheAlone;
}
$tabAffiche .= '</table></td></tr></table><br>';
}
}
// si le nb de doc traités < nb doc total, on affiche la partie autres doc
if($nbDocTotal < count($tabFiles)) {
$tabAfficheProcedure = "<table class=donnees width=90% align=center><tr class=titre><td class=titreProcedure><a href='javascript:afficheTableau(\"autresDoc\")'><img src='pics/lplus.gif' class='plus' id='img_autresDoc' alt="'.getMessage(6, $_SESSION['idLanguePgm']).'"></a>".getMessage(132, $_SESSION['idLanguePgm'])." @@@@@</td></tr><tr id='tab_autresDoc' style='display:none'><td><table class='donnees' width='100%'>";
for($i=0; $i<count($tabFiles); $i++) {
if($tabFiles[$i] != null){
$idDoc = $tabFiles[$i][0];
$nomDoc = $tabFiles[$i][1];
$dateDoc = $tabFiles[$i][2];
$descriptionDoc = $tabFiles[$i][3];
$dateMajDoc = $tabFiles[$i][4];
// on regarde si le document est lu ou non
if(!in_array(strtolower($nomDoc), $listeDocLus)) {
$classe = 'ligneenvaleur';
$nbDocProcedureNonLus++;
} else {
$nbDocProcedureLus++;
$nbDocTotalLus++;
$classe = '';
}
$tabAfficheProcedure .= '<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(42, $_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>';
$nbDocTotal++;
}
}
$tabAfficheProcedure = str_replace('@@@@@', ' : <b>'.($nbDocProcedureNonLus+$nbDocProcedureLus).'</b>'.getMessage(33, $_SESSION['idLanguePgm']).' <b>'.$nbDocProcedureNonLus.'</b>'.getMessage(32, $_SESSION['idLanguePgm']).', $tabAfficheProcedure);
$tabAfficheProcedure .= '</table></td></tr></table><br>';
}
$tabAffiche .= $tabAfficheProcedure;
if($nbDocTotal > 0) {
echo $nbDocTotal.' documents dont '.($nbDocTotal-$nbDocTotalLus).' non lus.<p>';
echo $tabAffiche;
} else {
echo "<br><br><br><p class=messageErreur>".getMessage(61, $_SESSION['idLanguePgm'])."</p>";
}
echo "</td></tr></table></form>";
echo '<script type="text/javascript">document.queryForm.query.focus();</script>';
include_once ('commun/bas_page.php');
}
?>
merci de votre aide
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");
if (!isset($_SESSION['validUser'])){
$javaScriptGo = '<script type="text/javascript">document.location.href="index_AD.php";</script>';
echo $javaScriptGo;
}
else {
include "commun/entete.php";
echo "<table width=100% border=0><tr><td>";
$queryForm_affiche = '';
$texte = '';
$querySearch = '';
$nbSitesUser = get_nbSitesUser($_SESSION['validUser']);
if(isset($_GET['id_site'])){
$site_affiche = $_GET['id_site'];
}
else{
$site_affiche = -1;
}
if(isset($_GET['id_service'])){
$service_affiche = $_GET['id_service'];
}
else{
$service_affiche = -1;
}
if(isset($_GET['idProcedure'])){
$idProcedure = $_GET['idProcedure'];
}
else{
$idProcedure = -1;
}
if(isset($_GET['query']) && $_GET['query'] != ''){
$queryForm = $_GET['query'];
$queryForm_affiche = str_replace('++', '+', str_replace(' ', '+', $queryForm));
$querySearch_array = explode('+', $queryForm_affiche);
$texte = getMessage(59, $_SESSION['idLanguePgm']);
for($i=0; $i<=count($querySearch_array)-1; $i++){
$var = $querySearch_array[$i];
if($i == 0){
$querySearch .= ' AND (';
}
else{
$querySearch .= ' AND ';
}
$querySearch .= '(nom_fichier LIKE "%'.$var.'%" OR Description LIKE "%'.$var.'%")';
}
$querySearch .= ')';
}
$query = 'SELECT nom_site, id_site FROM iso_site WHERE id_site != 0 ORDER BY nom_site ASC';
$result = connect($query);
if($site_affiche == 0 && $site_affiche != '') {
$affiche = "selected";
}
else{
$affiche = "";
}
$menuSites .= '
<select name="site" onchange="go_affiche(site.value, '.$service_affiche.', '.$idProcedure.')">
<option value=-1>'.getMessage(2, $_SESSION['idLanguePgm']).'
<option value=0 '.$affiche.'>'.getMessage(47, $_SESSION['idLanguePgm']);
// on génère le menu dréoulant pour les sites
while ($ligne = @mysql_fetch_array($result)){
$nom_site = $ligne['nom_site'];
$id_site = $ligne['id_site'];
$menuSites .= '
<option value='.$id_site;
if($site_affiche == $id_site)
$menuSites .= ' selected';
$menuSites .= '>'.$nom_site;
}
$menuSites .= '</select>
';
$query = 'SELECT nom_srv, id_srv FROM iso_service WHERE id_srv != 0 ORDER BY nom_srv ASC';
$result = connect($query);
if($service_affiche == 0 && $service_affiche != '') {
$affiche = "selected";
}
else{
$affiche = "";
}
$menuServices.='
<select name="service" onchange="go_affiche('.$site_affiche.', service.value, '.$idProcedure.')">
<option value=-1>'.getMessage(3, $_SESSION['idLanguePgm']).'
<option value=0 '.$affiche.'>'.getMessage(36, $_SESSION['idLanguePgm']);
// on génère le menu déroulant pour les services
while ($ligne = @mysql_fetch_array($result)){
$nom_service = $ligne['nom_srv'];
$id_service = $ligne['id_srv'];
$menuServices.='
<option value='.$id_service;
if($service_affiche == $id_service)
$menuServices.=' selected';
$menuServices.='>'.$nom_service;
}
$menuServices.='</select>
';
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>
';
$site_user = get_user_site($_SESSION['validUser']);
$mask_site_user = explode('-', $site_user);
$service_user = get_user_service($_SESSION['validUser']);
$mask_service_user = explode('-', $service_user);
$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"];
}
$tabAffiche = null;
$nbDocTotal = 0; //count($tabFiles);
$nbDocTotalLus = 0;
$nbDocProcedureLus = 0;
$nbDocProcedureNonLus = 0;
// on parcourt la liste des procédures
for($i=0; $i<count($tabProc); $i++) {
$tabAfficheProcedure = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(52, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheCommun = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(30, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheSite = "<tr><td colspan=4> </td></tr><tr class=ligneenvaleur><td colspan='4'>".getMessage(31, $_SESSION['idLanguePgm'])."</td></tr>";
$tabAfficheAlone = "";
$nomProc = $tabProc[$i];
$array_anCommun = null;
$array_anSite = null;
$nbDoc = 0;
$nbDocProc = 0;
$nbDocCommun = 0;
$nbDocSite = 0;
$site3_old = "";
$site3 = "";
$nbDocProcedureLus = 0;
$nbDocProcedureNonLus = 0;
// 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>';
}
$tabFiles[$j] = null;
}
$tabProc_affiche = str_replace('@@@@@', " : <b>".($nbDocProcedureLus+$nbDocProcedureNonLus)."</b>"'.getMessage(33, $_SESSION['idLanguePgm'])." <b>".$nbDocProcedureNonLus."</b>".getMessage(42, $_SESSION['idLanguePgm']). ", $tabProc_affiche);
}
$nbDocTotal += $nbDocProc+$nbDocCommun+$nbDocSite;
if(count($array_anSite) > 0){
$array_count_values = array_count_values($array_anSite);
for($z=0; $z<count($array_anSite); $z++) {
$anArray = explode("@", $array_anSite[$z][1]);
if($array_count_values[$anArray[0]] >= get_nbSitesUser($_SESSION['validUser'])) {
if($site_affiche != "" && $site_affiche != -1 && $array_count_values[$anArray[0]] >= 1){
$array_anSite[$z] = null;
}
}
}
}
if($array_anCommun != null) {
for($z=0; $z<count($array_anCommun); $z++) {
$nbDocCommun ++;
$idDoc = $array_anCommun[$z][0];
$anArray = explode("@", $array_anCommun[$z][1]);
$dateDoc = $array_anCommun[$z][2];
$descriptionDoc = $array_anCommun[$z][3];
$dateMajDoc = $array_anCommun[$z][4];
// on regarde si le document est lu ou non
if(!in_array(strtolower($anArray[1]), $listeDocLus)) {
$classe = 'ligneenvaleur';
$nbDocProcedureNonLus++;
} else {
$nbDocProcedureLus++;
$classe = '';
}
$tabAfficheCommun .= '<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='.$anArray[1].'\', \'Doc\')" alt='.getMessage(132, $_SESSION['idLanguePgm']).'"'.$anArray[1].'">'.$anArray[1].'</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>';
}
}
if($nbDoc == 0){
$tabProc_affiche .= "<tr><td>".getMessage(61,$_SESSION['idLanguePgm'])."</td></tr></table><br>";
} else {
$tabAffiche .= $tabProc_affiche;
if(($nbDocProc + $nbDocCommun + $nbDocSite) > 0) {
if($nbDocProc == 0) {
$tabAfficheProcedure .= "<tr><td colspan='4'>".getMessage(27,$_SESSION['idLanguePgm'])."</td></tr>";
}
if($nbDocCommun == 0) {
$tabAfficheCommun .= "<tr><td colspan='4'>".getMessage(62,$_SESSION['idLanguePgm'])."</td></tr>";
}
if($nbDocSite == 0) {
$tabAfficheSite .= "<tr><td colspan='4'>".getMessage(28,$_SESSION['idLanguePgm'])."</td></tr>";
}
$tabAffiche .= $tabAfficheProcedure;
$tabAffiche .= $tabAfficheCommun;
$tabAffiche .= $tabAfficheSite;
}
else {
$tabAffiche .= $tabAfficheAlone;
}
$tabAffiche .= '</table></td></tr></table><br>';
}
}
// si le nb de doc traités < nb doc total, on affiche la partie autres doc
if($nbDocTotal < count($tabFiles)) {
$tabAfficheProcedure = "<table class=donnees width=90% align=center><tr class=titre><td class=titreProcedure><a href='javascript:afficheTableau(\"autresDoc\")'><img src='pics/lplus.gif' class='plus' id='img_autresDoc' alt="'.getMessage(6, $_SESSION['idLanguePgm']).'"></a>".getMessage(132, $_SESSION['idLanguePgm'])." @@@@@</td></tr><tr id='tab_autresDoc' style='display:none'><td><table class='donnees' width='100%'>";
for($i=0; $i<count($tabFiles); $i++) {
if($tabFiles[$i] != null){
$idDoc = $tabFiles[$i][0];
$nomDoc = $tabFiles[$i][1];
$dateDoc = $tabFiles[$i][2];
$descriptionDoc = $tabFiles[$i][3];
$dateMajDoc = $tabFiles[$i][4];
// on regarde si le document est lu ou non
if(!in_array(strtolower($nomDoc), $listeDocLus)) {
$classe = 'ligneenvaleur';
$nbDocProcedureNonLus++;
} else {
$nbDocProcedureLus++;
$nbDocTotalLus++;
$classe = '';
}
$tabAfficheProcedure .= '<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(42, $_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>';
$nbDocTotal++;
}
}
$tabAfficheProcedure = str_replace('@@@@@', ' : <b>'.($nbDocProcedureNonLus+$nbDocProcedureLus).'</b>'.getMessage(33, $_SESSION['idLanguePgm']).' <b>'.$nbDocProcedureNonLus.'</b>'.getMessage(32, $_SESSION['idLanguePgm']).', $tabAfficheProcedure);
$tabAfficheProcedure .= '</table></td></tr></table><br>';
}
$tabAffiche .= $tabAfficheProcedure;
if($nbDocTotal > 0) {
echo $nbDocTotal.' documents dont '.($nbDocTotal-$nbDocTotalLus).' non lus.<p>';
echo $tabAffiche;
} else {
echo "<br><br><br><p class=messageErreur>".getMessage(61, $_SESSION['idLanguePgm'])."</p>";
}
echo "</td></tr></table></form>";
echo '<script type="text/javascript">document.queryForm.query.focus();</script>';
include_once ('commun/bas_page.php');
}
?>
merci de votre aide
A voir également:
- Boucle php fais planter apache
- Apache open office gratuit - Télécharger - Suite bureautique
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
2 réponses
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.
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.
L'orsque l'on éléminer l'impossible reste aussie improbable soit elle la vérité
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>
';
lol. php s'intègre dans le html et pas l'inverse. héhé.
Je te conseille plutot ca :
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.