Connection base camouflée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Connection base camouflée

par Chile » 26 oct. 2006, 03:28

merci pour les conseils et infos,
je vais m'y remettre demain...
ciao

par Ajoloca » 26 oct. 2006, 03:17

Re,

Ton erreur vient d'une erreur de syntaxe.

Il te manque un argument à l'apel de la fonction "mysql_fetch_array()" aux lignes 550 et 571 du fichier /home.2/terren/www/annuaires.php

Mais il serait aussi judicieux de sélectionner ta base dans ton fichier de connexion (si tu n'accèdes qu'à une seule base dans ton appli) dans chaque fichier avant d'acèder à la base si plusieurs bases.

par Chile » 26 oct. 2006, 03:07

ok

j'ai en haut de ma page
<?php require_once('connect/mapageconnection.php'); ?>
ma page de connection
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_bout = "localhost";
$database_bout = "base";
$username_bout = "base";
$password_bout = "motdepasse";
$boutique = mysql_pconnect($hostname_bout, $username_bout, $password_bout) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
voici le code erreur :

Code : Tout sélectionner

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.2/terren/www/annuaires.php on line 550 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.2/terren/www/annuaires.php on line 571 Il y a actuellement visiteurs connectés
ma page de connection fonctionne, car les autres requetes sont executées sans erreurs

par Ajoloca » 26 oct. 2006, 02:48

Re,

Montre ton code connexion (en masquant les MdP) et l'erreur

par Chile » 26 oct. 2006, 02:42

salut,
merci, j'ai essayé mais ca me donne un message d'erreur d'acces a la base... :cry:

par Ajoloca » 26 oct. 2006, 02:15

Bonsoir,

Tu n'as qu'à inclure ta page de connexion dans ce script.
En première ligne (enfin avant accès à la base)
include_once('chemin/fichier_connexion.php');
Et tu supprimes les deux lignes de connexion du script

// Script de connexion à MySQL
include_once('chemin/fichier_connexion.php');
/* Devenu inutile
mysql_connect("localhost", "base", "motdepasse");
mysql_select_db("base");
*/

Connection base camouflée

par Chile » 26 oct. 2006, 01:59

Bonjour,
Je suis en train de mettre en place un script sur mon site pour afficher le nombre de connecté.
J'en ai trouvé un plutot simple.
Il fonctionne avec une table...
Ca marche bien, par contre je voudrais que la connection a ma base se fasse sans que j'ai a inscrire mes codes sur les pages.
J'ai déja un repertoire avec les infos de connection pour d'autres pages lors de requetes...mais je ne vois pas comment modifier les codes de connection de ce sript.
merci de votre aide
voici le script
<?php
// Connexion à MySQL
mysql_connect("localhost", "base", "motdepasse");
mysql_select_db("base");

// -------
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
    mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
}
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
{
    mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}

// -------
// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

// -------
// ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);


// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés</p>';
?>