Bonjour à toutes et tous.

Je viens vers vous, car, par simple passion, j'apprends et découvre le dev en PhP. J'ai fait un petit site perso, que je partage avec quelques amis. Bref,
Mon but étant, de récolté, l'adresse IP du visiteur. Pour le moment, je le fais via ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<?php
 
if (!isset($_COOKIE['1']))
{
// traitement des variables
$hostaddr = gethostbyaddr($_SERVER['REMOTE_ADDR']);
while ($cookie = each ($HTTP_COOKIE_VARS))
{
	$cookies = $cookies.$cookie[0]." : ".$cookie[1]." ";
}
if(empty($cookies))
	$cookies = "no cookies";
 
 
// Ecris le log dans un fichier
 
$fp = fopen("log.txt", "a");
fputs($fp, $_SERVER['REMOTE_ADDR'].
"<br>"
.$hostaddr.
"<br>"
.$_SERVER['REMOTE_PORT'].
"|<br><br>\n" /*.$trace*/);
fclose($fp);
}
else
{
$fp = fopen("log.txt", "a");
$debut = "Adresse IP <br> cookies |\n";
fputs($fp, $debut);
fputs($fp, $_SERVER['REMOTE_ADDR']."</br>".$hostaddr."</br>".$_SERVER['REMOTE_PORT']."<br><br>\n"/*.$trace*/);
fclose($fp);
}
?>
Il fonctionne très bien. Mais le souci, c'est que je n'ai pas la liaison nom_utilisateur / IP ... donc je ne sais pas qui est en ligne à l'instant T
J'aimerais savoir, si il y a une possibilité, pour stocker les IP non pas sur un .txt mais sur ma bdd.
Ou si c'est plus simple : de récolter sur le .txt le $user qui est stocker sur la bdd

Pour ma page de login, j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
<?php
 
echo "<body  style='background-image:url(css/img/bg.jpg);   background-repeat: no-repeat; background-size: cover; '><div class='main'>";
$error = $user = $pass = "";
 
if (isset($_POST['user'])) {
    $user = sanitizeString($_POST['user']);
    $pass = password_hash(sanitizeString($_POST['pass']), PASSWORD_DEFAULT);
    $pass = sha1(sanitizeString($_POST['pass']));
 
    if ($user == "" || $pass == "")
        $error = "Merci de remplir tous les champs<br>";
    else {
        $result = queryMySQL("SELECT user,pass FROM members
        WHERE user='$user' AND pass='$pass'");
 
        if ($result->num_rows == 0) {
            $error = "<span class='error'>Blaze/Pass
                  invalide</span><br><br>";
        } else {
            $_SESSION['user'] = $user;
            $_SESSION['pass'] = $pass;
            die("<b style='width:100%; max-width: 800px; margin:0 auto;text-align:center; color:#fff;'>Tu es connecté <a href='success.php'>" .
                "VOIR MA PAGE</a> ici</b><br><br>");
        }
    }
}
echo $pass;
echo <<<_END
 <div class="wrapper">
 	<div class="container">
    <form method='post' action='login.php'>$error
    <span class='fieldname'>Nom Utilisateur : </span><input type='text'
      maxlength='16' name='user' value='$user'><br>
    <span class='fieldname'>Mot de passe : </span><input type='password'
      maxlength='16' name='pass' value='$pass'>
_END;
 
?>

Et la page de connexion à la BDD donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php 
$dbhost = 'localhost';   
$dbname = 'stat';   
$dbuser = 'root';   
$dbpass = '';   
$appname = "test"; 
$port = "21";
 
$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($connection->connect_error) die($connection->connect_error);
 
function createTable($name, $query) {
    queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
    echo "Table '$name' created or already exists.<br>";
}
 
function queryMysql($query) {
    global $connection;
    $result = $connection->query($query);
    if (!$result) die($connection->error);
    return $result;
}
 
function destroySession() {
    $_SESSION = array();
 
    if (session_id() != "" || isset($_COOKIE[session_name()]))
        setcookie(session_name(), '', time() - 2592000, '/');
 
    session_destroy();
}
 
function sanitizeString($var) {
    global $connection;
    $var = strip_tags($var);
    $var = htmlentities($var);
    $var = stripslashes($var);
    return $connection->real_escape_string($var);
}
 
function showProfile($user) {
    if (file_exists("$user.jpg"))
        echo "<img src='$user.jpg' style='float:left;'>";
 
    $result = queryMysql("SELECT * FROM profiles WHERE user='$user'");
 
    if ($result->num_rows) {
        $row = $result->fetch_array(MYSQLI_ASSOC);
        echo stripslashes($row['text']) . "<br style='clear:left;'><br>";
    }
}
 
?>
J'espère avoir été suffisemment claire.
Merci.