Impossible de recueillir l'addresse ip a partir dun base mysql!
nico20011caus
Messages postés37Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention14 février 2009
-
9 nov. 2007 à 01:54
nico20011caus
Messages postés37Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention14 février 2009
-
12 nov. 2007 à 23:55
Bonjour,
J'ai un site internet qui à php5 et un serveur mysql. Le probleme c'est que je ne suis pas capable de recueillir l'addresse ip a partir de ma base de donnée. Alors tout commence que quand une personne rentre sur le site la présence est écrite dans la base de donnée une nouvelle donnée est alors insérer pour ce coin la pas de probleme tout est envoyé correctement ainsi que l'addresse ip. Ensuite je veut recueillir l'addresse ip parce que il a des donnée qui sont envoyé au debut et je veut avoir une donnée differente c'est pour sa que je passe par l'addresse ip pour que le site affiche ce que l'utilisateur à voulu. voici ce qui me pose probleme en sachant que je suis connecter à la base de donnée:
<?
$ip=$_SERVER["REMOTE_ADDR"];
$comp_theme=mysql_query("SELECT theme
FROM control WHERE ip=".(int)$ip);?>
Ce qui me pose probleme c'est le $comp_theme=mysql_query("SELECT theme FROM control WHERE ip=.(int)$ip");
c'est à cause de WHERE ip... que sa marche pas mais c'est lessentiel sinon ben tout les donnée vont etre afficher puis ben sa fait plusieurs page differente sur une page! aidez moi s.v.p
A voir également:
Impossible de recueillir l'addresse ip a partir dun base mysql!
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 10 nov. 2007 à 02:45
Salut,
C'est pas la casse (avec deux S), mais le transtypage. En anglais, cast. La casse, c'est majuscule/minuscule.
Tu as deux possibilités :
- soit tu veux absolument stocker les ip sous forme d'entiers, auquel cas tu dois convertir ton IP en entier avec ip2long (la fonction inverse est long2ip)
- soit tu t'en fiches et tu peux stocker les ip sous forme de chaine de 15 caractères maxi, auquel cas il faut enlever les (int) et t'assurer que la colonne ip de ta table stocke bien des chaines VARCHAR(15)
Par ailleurs, dans ta requête SQL, assure-toi que les chaines de caractères sont entourées de guillemets. Sinon, ça déconne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 11 nov. 2007 à 17:32
En fait, c'est pas clair...
Parce que si la colonne ip dans ta base est de type int, ben ça marchera pas.
Mais en faisant ça, oui :
$comp_theme=mysql_query("SELECT theme FROM control WHERE ip=".ip2long($ip);
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 11 nov. 2007 à 17:35
Oups. Correction :
$comp_theme=mysql_query('SELECT theme FROM control WHERE ip='.ip2long($ip));
Et puis le code donné par jalfr comporte une erreur qui empêchera la requête de s'exécuter...
Il faut mettre les chaines de caractères entre guillemets, sinon MySQL n'aime pas.
nico20011caus
Messages postés37Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention14 février 2009 11 nov. 2007 à 17:56
Sa marche pas quand je met le mysql_fetch_assoc() il dise messamble que c,est bon mais je pense que c'est a cose du int qui est enlever pcq quand je le met il met aucun message derreur mais ya rien qui affiche, mai sj'ai deja reussi avec ip2long() alors je vais l'utiliser.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/local/www/apache22/data/test/test.php on line 8