begin process at 2012 05 30 22:00:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Je suis perdu dans ce script !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales