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

