Php help me

Fermé
Kim Reggis - 29 août 2007 à 21:21
 kim reggis - 31 août 2007 à 01:43
salut a tous

je commence dans la programmation en php et je voulais savoir comment affciher l'adresse ip de mes visiteurs et l'enregistré dans ma base de donné
A voir également:

17 réponses

gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 21:25
L'IP est une varable superglobale : $_SERVER['REMOTE_ADDR']
il suffit donc de mettre :
<?php
echo $_SERVER['REMOTE_ADDR'];
?>
pour afficher l'ip
Pour la base de données, tu as quel système ?
0
c'est à dire ?
0
gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 21:29
Ben si tu as une base de donnée mysql, postgresql ou xml par exemple.
0
j'ai une base de données mysql
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 21:41
as-tu créé une table (c'est à dire un espèce de dossier dans lequel tu mettre tes enregistrements) ?
Si non, as-tu un système d'admin mysql, pour simplifier la tache (il y en a sous free) ?
0
je n'ai pas crée de table mais j'ai un system admin mysql, je suis sous ifrance (sans vouloir faire de pub)
0
gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 22:12
ok, crée une nouvelle table (il te faudra apprendre à le faire tout seul alors je te décris la procédure)
tu nomme cette table liste_ip par exemple et tu met 2 choses :
1) l'id de tes ip, cela te permettra de les retrouve facilement.
2)tes IP qu on convertira en hexadécimal pour faire de la place.
Tu peut ajouter d'autres paramètres pour tes enregistrements.
Tu met l'id en "mediumint(9)" auto-increment
tes ip en char(8)

Ou tu exécute ce code 1 fois :
CREATE TABLE `liste_ip` (
`id` MEDIUMINT( 9 ) NOT NULL AUTO_INCREMENT ,
`ip` CHAR( 8 ) NOT NULL ,
UNIQUE (
`id`
)
) TYPE = MYISAM ;

Puis tu tape ce code pour aller chercher , convertir et enregistrer l'ip :
//récupère l'ip
$ip=$_SERVER['REMOTE_ADDR'] ;

//convertis l'ip
$ip=explode(".",$ip);
$ip=dechex($ip[0]).dechex($ip[1]).dechex($ip[2]).dechex($ip[3]);

//connecte à la bdd
@mysql_connect('localhost','login',pass');
//selction la bdd
@mysql_select_db("base de donnée");
//envoie les infos
$requette="INSERT INTO `liste_ip` ( `id` , `ip` ) VALUES ('' '','$ip'");";
if (@mysql_query($requette)) { echo "<br>L'ip est enregistrée"; }
else { echo "<br>une erreur est survenue lors du traitment de votre requête"; }
//ferme la connection
@mysql_close();

voila.Si il n'y a pas d'erreurs...
0
jte di si ça marhce attend
0
comment on execute le premier on le met en ligne sur le site et on y va ?
0
gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 22:36
oui. ou alors dans ton mysqladmin, il y a un endroit où exécuter des requettes sur la base
Si tu le met en ligne, oublie pas :
//connecte à la bdd
@mysql_connect('localhost','login',pass');
//selction la bdd
@mysql_select_db("base de donnée");
0
bon quand j'ai executé le premier code sur mon site dans mon navigateur j'ai eu parse error je doit coller le premier code entre <?php et
<? ou ?>
0
gluo Messages postés 233 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 13 janvier 2010 105
29 août 2007 à 22:46
<? et ?> sont des balises rapides, préfère <?php et ?> car certains servers refusent ce genre d'abréviations.
Oublie ps de remplacer "base de données" par le nom de ta base de donnée
0
le mieu se serai de me donner le tout dans un fichier php parceque je comprend pas voila mon mail si tu veux me me l'envoyer blackto@ifrance.com
0
C'est simple.

Tu crées une table dans PhpMyAdmin. Tu l'appelles par exemple "liste_ip". Dans cette table, tu vas créer deux champs (un que tu nommeras ID (sans oublier de le mettre en "auto-increment) et l'autre tu le nommeras IP). Dès que c'est fait, tu dois coder ta page comme ceci :

<?php
$ip = $_SERVER['REMOTE_ADDR'];

mysql_connect('ton_serveur', 'ton_login', 'ton_mot_de_passe');
mysql_select_db('ta_base_de_donnees');

mysql_query('INSERT INTO liste_ip VALUES(\'\', \''.$ip.'\')') OR die(Erreur dans la requête);

mysql_query();
?>

Cette page va donc enregistrer l'IP de toutes les personnes qui viendront sur cette page. Si maintenant tu veux afficher les adresses IP enregistrées, tu dois faire ceci dans une autre page :

<?php
mysql_connect('ton_serveur', 'ton_login', 'ton_mot_de_passe');
mysql_select_db('ta_base_de_donnees');

$recup = mysql_query('SELECT ip FROM liste_ip') OR die(Erreur dans la requête);
while ($donnees = mysql_fetch_array($recup))
{
echo $donnees['ip'];
}

mysql_query();
?>
0
Désolé, c'est :

mysql_close(); et non mysql_query(); pour fermer la connexion.
0
a ok je suis très car je n'ai pas fait que recoller le code mais je l'ai compris merci beaucoup
0
j'ai parler trop vite j'ai se message quand je cré la table !!! Erreur

requête SQL:

CREATE TABLE `litste_ip` (
`ID` MEDIUMINT( 9 ) NOT NULL AUTO_INCREMENT ,
`IP` CHAR( 8 ) NOT NULL
) TYPE = MYISAM

MySQL a répondu:Documentation
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
0