Accueil > Forum > > > > Je suis perdu dans ce script !
Je suis perdu dans ce script !
jeudi 18 mars 2004 à 17:53:47 |
Je suis perdu dans ce script !

pyranhaz
|
Bonjour, Comment fait-on pour dire à MySQL si tu trouve l'info dans la table x ne met rien dans la table y et tu ferme la bdd alors que dans le cas contraire tu ajoute l'info requise dans la table y ??? Dans ce cas présent, une première requête MySQL vérifie le user_agent avec la table "rs_robots" Si cette requête est négative il retourne la page "Forbidden.php" à l'intrus Dans le cas contraire il prend les identifications demandés de l'intrus et les ajoute à la table "ban" Par conséquent, si le script fonctionne, je ne suis pas un robot et mon "user_agent" n'est pas dans la liste "rs_robots" donc j'obtiendrai la page "Forbidden.php" et mes infos seront dans la table "ban" Or, je n'obtiens rien du tout !!! Je sias qu'il y a une erreur évidente avec ma fonction "if" dans MySQL dont je ne sais pas comment l'appliquer (voir la partie en gras dans le script ci-dessous... Après avoir corrigé cette partie en gras, je pense que le script fonctionnera comme voulu... mais ce serait bien de vérifier tout le script... Merci pour votre aide <?php
//parametre de connection a la base de données $host="sql"; $user="user"; $pass="pass"; $name="base1"; $table="ban"; $table_1="rs_robots";
//recuperation de la date systeme $date = date("Y/m/d H:i"); //recuperation de l'ip du client $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; //recuperation du user_agent du client $hote = $HTTP_SERVER_VARS["HTTP_USER_AGENT"];
//connection a la base de données $dbic = mysql_connect($host,$user,$pass); //selection de la base de données mysql_select_db($name);
//recherche du robot mysql_query("SELECT FROM rs_robots WHERE user_agent="$hote"");
//action si pas de robot if while(list($hote) = mysql_fetch_row($res))
//liberation du resultat de la requette mysql_free_result($res) or print mysql_error(); //fermeture de la connection a la base de données mysql_close($ic) or print mysql_error();
// on insere l'ip du client dans la table des ip bloqué mysql_query("INSERT into ban (id, ip, hote, date) values ('', '$ip', '$hote', '$date')");
//envoie de la page Forbidden.php à l'intrus include ($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/Forbidden.php");
// on libère les prisonniers d'il ya 24 heures $timestamp = time() - 86400; // 24 heures $date_1 = date("Y-m-d H:i:s", $timestamp); $delete = "DELETE FROM $table WHERE date < '$date_1'"; $query = Mysql_Query($delete);
// on ferme le script sans afficher le reste de la page demander mysql_close($dbic); die(""); ?>
|
|
|
jeudi 18 mars 2004 à 19:27:45 |
Re : Je suis perdu dans ce script !

Bl0tCh
|
essai comme ça <? $res=mysql_query("SELECT FROM rs_robots WHERE user_agent='$hote'");
while($list=mysql_fetch_array($res)) { if($hote==$list['user_agent']) { $deja="1"; } }
if(deja=="1") { // on insere l'ip du client dans la table des ip bloqué mysql_query("INSERT into ban (id, ip, hote, date) values ('', '$ip', '$hote', '$date')");
//envoie de la page Forbidden.php à l'intrus include ($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/Forbidden.php");
// on libère les prisonniers d'il ya 24 heures $timestamp = time() - 86400; // 24 heures $date_1 = date("Y-m-d H:i:s", $timestamp); $delete = "DELETE FROM $table WHERE date < '$date_1'"; $query = Mysql_Query($delete);
// on ferme le script sans afficher le reste de la page demander mysql_close($dbic); die(""); } ?>
|
|
jeudi 18 mars 2004 à 19:58:38 |
Re : Je suis perdu dans ce script !

pyranhaz
|
Non, j'obtiens une page blanche...
Il doit y avoir une erreur dans le script...
Mais l'idée et l'approche semble bonne...
|
|
jeudi 18 mars 2004 à 20:20:16 |
Re : Je suis perdu dans ce script !

Bl0tCh
|
J'ai modifié un peu :
<? $res=mysql_query("SELECT FROM rs_robots WHERE user_agent='$hote'");
while($list=mysql_fetch_array($res)) { if($list['user_agent']==$hote) { //m'étais gourrer là $deja="1"; } }
if(deja=="1") { // on insere l'ip du client dans la table des ip bloqué mysql_query("INSERT into ban (ip, hote, date) values ('$ip', '$hote', '$date')"); //pas besoin de mettre ds id, ça s'icrémente automatiquement
//envoie de la page Forbidden.php à l'intrus include ($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/Forbidden.php");
// on libère les prisonniers d'il ya 24 heures $timestamp = time() - 86400; // 24 heures $date_1 = date("Y-m-d H:i:s", $timestamp); $delete = "DELETE FROM $table WHERE date < '$date_1'"; $query = Mysql_Query($delete);
// on ferme le script sans afficher le reste de la page demander mysql_close($dbic); die(""); } ?>
et si ça marche pas, après la boucle while, fait un echo sur $deja pour voir
|
|
jeudi 18 mars 2004 à 20:22:46 |
Re : Je suis perdu dans ce script !

pyranhaz
|
Le script ci-dessous semble fonctionner...
je dis "semble" par ce que pour conclure il faudra que les robots passent sur le site et ne se fasse pas prendre au piège...
Je ne vois que un seul hic dans ce script... Il se pourrait que les robots référencent la page piège et alors tous les visiteurs non-robots tomberont dans le piège... En espérant que le fichier robots.txt ait un minimum de reconnaissance et de respect de la part des robots...
Je ne vois pas comment faire pour rediriger les robots aur la page index automatiquement dès qu'ils sont ammené au fichier piège... Je réfléchis... cela doit être inclus dans ce script... genre si tu es un robot reconnu, dirige toi sur index.php
voici le script:
<?php
//parametre de connection a la base de données $host="sql"; $user="user $pass="pass $name="base1"; $table="ban";
//recuperation de la date systeme $date = date("Y/m/d H:i"); //recuperation de l'ip du client $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; //recuperation du user_agent du client $agent = $HTTP_USER_AGENT; //recuperation de l'hôte du client $hote = $HTTP_SERVER_VARS["REMOTE_HOST"];
//connection a la base de données $ic = mysql_connect($host,$user,$pass); //selection de la base de données mysql_select_db($name);
$sql="SELECT * FROM `rs_robots` WHERE user_agent='$agent'"; $req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); if (mysql_num_rows($req) == 0) { // on insere l'ip du client dans la table des ip bloqué mysql_query("INSERT into `ban` (id, ip, hote, date) values ('', '$ip', '$hote', '$date')"); //envoie de la page Forbidden.php à l'intrus include ($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/Forbidden.php"); // on libère les prisonniers d'il ya 24 heures $timestamp = time() - 86400; // 24 heures $date_1 = date("Y-m-d H:i:s", $timestamp); $delete = "DELETE FROM $table WHERE date < '$date_1'"; $query = Mysql_Query($delete); // on ferme le script sans afficher le reste de la page demander mysql_close($ic); exit(); } ?>
|
|
jeudi 18 mars 2004 à 21:35:10 |
Re : Je suis perdu dans ce script !

pyranhaz
|
Le script suivant fait EXACTEMENT ce que je m'attendais de lui:
1) il protège les robots indexeurs 2) il redirige les robots sur la page index quand ammené ici 3) il efface le passage du script de blocage au départ des robots 4) il bloque les intrus 5) il vide la table "ban" après 24h. de blocage
Je ne devrais plus voir de robot tombé dans le piège et le robots.txt ca vaut ce que ca vaut = pas cher
voici le script si il vous intéresse... il manque le fichier "verif.php" qui vérifie si le visiteur est bloqué ou non et bloque l'accès au site ou pas selon la vérification... Je vous laisse ce bout de travail...
<?php
//parametre de connection a la base de données $host="sql"; $user="user"; $pass="pass"; $name="base1"; $table="ban";
//récuperation de la date systeme $date = date("Y/m/d H:i"); //récuperation de l'ip du client $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; //récuperation de l'hôte du client $hote = $HTTP_SERVER_VARS["REMOTE_HOST"]; //récuperation du user_agent du client $agent = $HTTP_USER_AGENT;
//connection a la base de données $ic = mysql_connect($host,$user,$pass); //selection de la base de données mysql_select_db($name);
$sql="SELECT * FROM `rs_robots` WHERE user_agent='$agent'"; $req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); if (mysql_num_rows($req) == '') { // on insere l'ip du client dans la table des ip bloqué mysql_query("INSERT into `ban` (id, ip, hote, date) values ('', '$ip', '$hote', '$date')"); //envoie de la page Forbidden.php à l'intrus include ($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/Forbidden.php"); // on libère les prisonniers d'il ya 24 heures $timestamp = time() - 86400; // 24 heures $date_1 = date("Y-m-d H:i:s", $timestamp); $delete = "DELETE FROM $table WHERE date < '$date_1'"; $query = Mysql_Query($delete); // on ferme le script sans afficher le reste de la page demander mysql_close($ic); exit(); } else header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.zone-international.com'); header('Connection: close'); exit(); ?>
|
|
Cette discussion est classée dans : script, table, mysql, cas, perdu
Répondre à ce message
Sujets en rapport avec ce message
PB update table mysql ! [ par lolo ]
Comment pourrai-je faire pour mettre à jour une table mysql par le biais d'un formulaire (parcourir ...*.cvs) et d'un fichier php d'update de table my
MYSQL: cas désespéré [ par aidezmoi ]
Comment faire quand on a easyphp pour créer une table mysql? Je sais je suis nul, je viens de commencer le php.Et il y a des modifs à faire si on pass
Perdu avec mysql ... [ par guiguimac ]
bonsoir !voici le message d'erreur qui me gêne :Warning: 0 is not a MySQL result index in your script on line 131en fait je lance ma page php avec la
Help Help sur un script [ par tarantula007 ]
Je ne comprends pas pourquoi ce script marche pas:$rq1 = "SELECT nombre from 'compteur' where nom like 'cpt'";if (!($resultat = mysql_query($rq1, $lin
Tester la présence d'une table MySQL ? [ par Skyride ]
BonsoirEst ce quelqu'un pourrait me renseigner s'il est possible de tester la présence d'une table dans une base de données MySQL ?-------------------
pb sur mysql avec requete select * from TABLE IN (select ...) [ par malibu23 ]
Salut j ai un pb sur mysql lorsque je fais un requetedu type select CHAMP from TABLE where CHAMP IN ( select CHAMP from TABLE where CHAMP = VARIABLE);
Récupération du contenu d'une table Mysql en PHP [ par BSide ]
Bonjour,dans ma table TABLE se trouvent 3 champs C1, C2 et C3 que je renseigne par un formulaire + INSERT INTO etc.Actuellement se trouvent dans TABLE
Nom d'une table MySQL [ par QuarX ]
Est-il possible de créer une table MySQL possédant un nom provenant d'une variable php? Par exemple:$nom = "Nom";$creation = "CREATE TABLE $nom(...)";
problème de mise à jour de base de données [ par rildspael ]
Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc
Datetime et MySQL [ par DarkSchneider ]
Bonjour, Encore un problème, un de plus.Cette fois-ci, c'est les dates.Dans ma base MySQL, j'ai crée une table avec divers champs, dont un se nomm
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|