Soyez le premier à donner votre avis sur cette source.
Snippet vu 35 120 fois - Téléchargée 30 fois
Fichier config.php ---------------------- <? // Paramètres de connexion à la base de données $host = "localhost"; // Host de la base de données $user = "user"; // Login $pass = "pwd"; // Mot de passe $bdd = "bdd"; // Nom de la base de données $table = "doc_clients"; // Nom de la table principale $url = "http://lifeforce.int.xxxx.fr/stc/stcdoc/doc_clients/specificit_clients/"; // Répertoire contenant les différentes fiches ?> ---------------------- Fichier recherche.php --------------------------- <script language="JavaScript"> <!-- function rechercher() { document.form_recherche.submit(); } --> </script> <form name="form_recherche" method="post" action="<? echo $URL; ?>"> <input type="text" name="recherche" size="40" maxlength="100"> <input name="Submit" type="button" value="Rechercher" onclick="rechercher()"> </form> <? require 'includes/config.php'; // Connexion à la base de données @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); @mysql_select_db("$bdd") or die("Impossible de se connecter à la base de données"); // Variables $recherche = strtolower($recherche); $motclef = explode(" ",$recherche); $nbre_mots = 0; // Requête pour la recherche while ($nbre_mots < sizeof($motclef)) { if (strlen($motclef[$nbre_mots]) > 2) { $query_client = mysql_query ("SELECT client, file FROM $table WHERE client LIKE '%$motclef[$nbre_mots]%' "); $query_file = mysql_query ("SELECT client, file FROM $table WHERE file LIKE '%$motclef[$nbre_mots]%' "); while ($row_client = mysql_fetch_array($query_client)) { echo 'Trouvé dans le champ Client'; echo '<br>'; echo 'client:'; echo '<br>'; printf ("%s", $row_client[0]); echo '<br>'; echo 'lien:'; echo '<br>'; printf ("%s", $row_client[1]); } while ($row_file = mysql_fetch_array($query_file)) { echo 'Trouvé dans le champ Lien'; echo '<br>'; echo 'client:'; echo '<br>'; printf ("%s", $row_file[0]); echo '<br>'; echo 'lien:'; echo '<br>'; printf ("%s", $row_file[1]); } } $nbre_mots++; } ?>
Bon, ensuite, niveau sécurité, même si ce n'est pas le but de la source, c'est pas top. Le maxlength est laissé à la discrétion du navigateur, il ne faut jamais l'oublier, c'est-à-dire que n'importe qui peut injecter n'importe quoi par les en-têtes http. Et encore... L'absence de $_POST indique que les variables globales sont activées, ce qui est un risque énorme niveau sécurité :s il suffit d'appeler [url]?recherche=[...] à répétition pour saturer MySQL. (C'est d'ailleurs à cause de l'usage de ces variables globales que ce script ne marche pas chez Free, comme chez la plupart des hébergeurs sans doute.) Il aurait pourtant suffit de vérifier la longueur de la chaîne reçue pour éviter ce genre d'attaque.
Bon, quant aux mini-tags <? , je pense qu'il est inutile que je me prononce. C'est très mauvais pour la portabilité (Arf, je l'ai dit quand même -_-' ).
Ha, oui, aussi (promis, après j'arrête), les die servent également au debug, il serait donc intéressant de ne pas mettre deux fois le même message, ou d'y intégrer l'erreur renvoyée par MySQL...
Bon, je me rends bien compte que tout ce que je viens de dire ne faisait pas partie du but premier de ce script. Mais c'est aussi pour répondre à "ça marche paaaaaaas" ^^ et pour éviter que les débutants ne l'intègrent tel quel dans leurs projets.
Ton script ne marche pas sur free
C'est domage :s
waooowww 2005 je me souviens plus pourquoi j'avais pose une question
sinon marc la page config.php c'est juste la page qui pointe avec les login passW
a+
Je ne comprend pas a quoi ça sert $url et require 'includes/config.php et puis cette source ne marche pas.
@+
Merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.