merfolk Jedi retraité | bon voici en version définive qui devrait etre 100% compatible
index
Code :
- <?php
- // rajoute les users la dedans
- // syntaxe user = pass,
- //si tu rajoutes une ligne, il faut pas oublier la virgule sur la precedente
- $users = array(
- "aa"=>"xx",
- "bouli"=>"xmaster"
- );
- // texte dans le message box
- $auth_text = "Utilisez identifiant et motdepasse";
- // verif si t'es loggé
- if(!(empty($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_PW"])) && $_SERVER["PHP_AUTH_PW"]==$users[$_SERVER["PHP_AUTH_USER"]])
- {
- // si oui, genration du formulaire HTML
- print("<html>" );
- print("<head><title>Bienvenue sur le site d'alchimie des Tataves</title></head>" );
- print("<body>" );
- print("<form name=\"a\" method=\"POST\" action=\"indexAction.php\">" );
- print("<h1><u>liste intégrale des ingredients :</u></h1><br>" );
- // recup liste des ingredients dans fichier bdd
- $listeIngredients = getLignesFichier("ingredients.txt" );
- if (count($listeIngredients) ==0)
- die("aucun ingredient dans le fichier" );
-
- asort($listeIngredients);
-
- foreach($listeIngredients as $ing)
- {
- print("[$ing] // " );
- }
- {
- print("<br><br><br><h1><u>liste intégrale des types de formule :</u></h1><br>" );
- }
- //recup des types de formules dans le fichier bbd2
- $listeTypes = getLignesFichier("types.txt" );
- if (count($listeTypes) ==0)
- die("aucun type de formule dans le fichier" );
- foreach($listeTypes as $type)
- {
- print("$type // " );
- }
- print("<br><br><br><h1><u>Recherche des formules comportant ces ingrédients :</u></h1><br>" );
- // recup liste des formules et verification si cest valide
- $listeFormules = getLignesFichier("formules.txt" );
- if (count($listeFormules) ==0)
- die("aucune formule dans le fichier" );
- foreach($listeFormules as $formule)
- {
- $dataFormule = explode(";",$formule);
- for($for = 1 ; $for < count($dataFormule) ; ++$for)
- {
- if (!in_array($dataFormule[$for],$listeIngredients))
- {
- die("bon alors tu ouvres le fichier des formules,
- et tu le corriges vite fait, car -- [{$dataFormule[$for]}] -- , ce n'est pas un ingrédient valide [ligne $for]" );
- }
- }
- }
- // generation de 5 listes déroulantes
- for ($i = 1 ; $i <= 5 ; ++$i)
- {
- print("Ingrédient $i : <select name=\"requete[]\">" );
- print("<option value=\"0\" selected>Indifférent</option>" );
- foreach($listeIngredients as $ing)
- {
- print("<option value=\"$ing\" >$ing</option>" );
- }
- print("</select><br>" );
- }
- // si respecter ordre de la recherche ou pas
- print("<br><input type=\"checkbox\" name=\"ordre\" value=\"1\"> Respecter l'ordre des ingrédients</input><br>" );
- // recherche nom
- print("<br>chercher formule dont le nom contient : <input type=\"text\" name=\"nomFormule\"><br>" );
- print("<br><input type=\"submit\" value=\"rechercher\">" );
- print("</body>" );
- print("</html>" );
- }
- else
- {
- // si tes pas loggé tu te logg
- header("www-authenticate: basic realm=\"$auth_text\"" );
- header("http/1.0 401 unauthorized" );
- print ("Mauvais user/pass, contacte rouldibouldi@hotmail.com. Pour trouver un accès, tu n'es pas assez doué, laisse tomber" );
- }
-
- print("<br><br><br><br><br>" );
- print("Copyright à merfolk@JH (forums), merci à lui pour ce magnifique boulot de la part des Tataves :ack:" );
-
- //_________________________________________________________
- // ------ recupere le contenu du fichier et renvoie un tableau de données -------
- // LInux / Windows peut importe
- //_________________________________________________________
- function getLignesFichier($pathFichier)
- {
- $lignes = file($pathFichier);
- $resFinal = Array();
- foreach($lignes as $ligne)
- $resFinal[] = trim($ligne);
- // on dégage le dernier \n parasite s'il y a lieu
- if ($resFinal[count($resFinal)-1] == "" )
- array_pop($resFinal);
- return $resFinal;
- }
- ?>
|
indexAction
Code :
- <?php
- // rajoute les users la dedans
- // syntaxe user => pass,
- //si tu rajoutes une ligne, il faut pas oublier la virgule sur la precedente
- $users = array(
- "aa"=>"xx",
- "bouli"=>"xmaster"
- );
- // texte dans le message box
- $auth_text = "Utilisez identifiant et motdepasse";
- // verif si t'es loggé
- if(!(empty($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_PW"])) && $_SERVER["PHP_AUTH_PW"]==$users[$_SERVER["PHP_AUTH_USER"]])
- {
- print("<h1><u>Formules recherchées :</u></h1> <br><br>" );
- print("<head><title>Résultats de la recherche</title></head>" );
- // affichage critères de recherche
- $ordre = false;
- if (isset($_POST["ordre"]) && ($_POST["ordre"]==1))
- $ordre=true;
- for($i = 0 ; $i < 5 ; ++$i)
- {
- $aff = $i+1;
- if ($_POST["requete"][$i] == "0" )
- {
- print("<b>Ingrédient $aff :</b> Indifférent <br> " );
- }
- else
- {
- print("<b>Ingrédient $aff :</b> {$_POST["requete"][$i]} <br> " );
- }
- }
- if ($ordre)
- print("<br> <b>dans l'ordre</b><br>" );
- else
- print("<br> <b>peu importe</b> l'ordre<br>" );
- if ($_POST["nomFormule"] != "" )
- print("le nom de la formule <b>doit contenir</b> [{$_POST["nomFormule"]}] <br><br><br><br><br>" );
- else
- print("<b>peu importe</b> le nom de la formule<br><br><br><br><br>" );
- // recup liste des formules
- $listeFormules = getLignesFichier("formules.txt" );
- if (count($listeFormules) ==0)
- die("aucune formule dans le fichier" );
- // recherche
- $listeFormulesOK = Array();
- foreach($listeFormules as $formule)
- {
- // Formule courante
- $dataFormule = explode(";",$formule);
- $oki = true;
- if (!$ordre)
- {
- // on va faire classe
- $hach = Array();
- foreach($_POST["requete"] as $critere)
- {
- if ($critere != "0" )// indifferent = c'est bon
- {
- if (!isset($hach[$critere]))
- $hach[$critere] = 0;
- ++$hach[$critere];
- }
- }
- for($i = 1 ; $i < count($dataFormule); ++$i)
- {
- if (!isset($hach[$dataFormule[$i]]))
- $hach[$dataFormule[$i]]=0;
- --$hach[$dataFormule[$i]];
- }
- foreach($hach as $restant)
- {
- if ($restant > 0)
- $oki = false;
- }
- }
- else
- {
- // on regarde si les 5 criteres collent
- for($i= 0 ; $i < 5 ; ++$i)
- {
- if ($_POST["requete"][$i] != "0" )// indifferent = c'est bon
- {
- if (!isset($dataFormule[$i+1]))
- {
- $oki = false;
- break;
- }
- else
- {
- if ($dataFormule[$i+1] != $_POST["requete"][$i]) // +1 car element 0 du tableau = le nom
- {
- $oki = false;
- break;
- }
- }
- }
- }
- }
- //est-ce que test sur nom aussi ?
- if ($_POST["nomFormule"] != "" )
- {
- $nomComp = strtoupper($_POST["nomFormule"]);
- if (strstr (strtoupper($dataFormule[0]),$nomComp) === FALSE)
- {
- $oki=false;
- }
- }
- // si on ne l'a pas eliminer , on la conserve
- if ($oki)
- $listeFormulesOK[]=$formule;
- }
- // affichage formules
- print("<h1><u>Liste des formules concernées :</u></h1><br><br>" );
- print("<table border=1>" );
- print("<tr>" );
- print("<td><b><i>Nom Formule</i></b></td>" );
- print("<td><b>Ingrédient 1</b></td>" );
- print("<td><b>Ingrédient 2</b></td>" );
- print("<td><b>Ingrédient 3</b></td>" );
- print("<td><b>Ingrédient 4</b></td>" );
- print("<td><b>Ingrédient 5</b></td>" );
- print("</tr" );
- foreach($listeFormulesOK as $f)
- {
- print("<tr>" );
- $donneesFormules = explode(";",$f);
- for($cnt = 0 ; $cnt < 6 ; ++$cnt)
- {
- $italique="";
- $finItalique="";
- if ($cnt==0)
- {
- $italique="<i>";
- $finItalique="</i>";
- }
- if (isset($donneesFormules[$cnt]))
- print("<td>$italique $donneesFormules[$cnt] $finItalique</td>" );
- else
- print("<td> </td>" );
- }
- print("</tr>" );
- }
- print("</table>" );
- // retour
- print("<br><br><a href=\"index.php\">autre recherche </a>" );
- }
- else
- {
- // si tes pas loggé tu te logg
- header("www-authenticate: basic realm=\"$auth_text\"" );
- header("http/1.0 401 unauthorized" );
- print ("Mauvais user/pass, contacte rouldibouldi@hotmail.com. Pour trouver un accès, tu n'es pas assez doué, laisse tomber" );
- }
- print("<br><br><br><br><br>" );
- print("Copyright à merfolk@JH (forums), merci à lui pour ce magnifique boulot de la part des Tataves :ack:" );
-
- //_________________________________________________________
- // ------ recupere le contenu du fichier et renvoie un tableau de données -------
- // LInux / Windows peut importe
- //_________________________________________________________
- function getLignesFichier($pathFichier)
- {
- $lignes = file($pathFichier);
- $resFinal = Array();
- foreach($lignes as $ligne)
- $resFinal[] = trim($ligne);
- // on dégage le dernier \n parasite s'il y a lieu
- if ($resFinal[count($resFinal)-1] == "" )
- array_pop($resFinal);
- return $resFinal;
- }
- ?>
| ---------------
Jedi Knight FF Oasis FF Bgj
|