par
toutou » 26 janv. 2011, 21:58
Bonjour, mon site était heberger chez un gratuit, et j'ai décidé de le passer sur un payant (planet hoster) j'ai donc du appliquer quelques modifications pour que le renud soit bon.
il me reste un probleme sur les accent, j'ai décidé de tout convertir en UTF-8, mais Mysql semble resistant, étant donné que je n'ai que quelques articles (un 20ene) je peut le faire à la main, ce n'est pas ca le probleme.
j'avais un script qui comptait le nombre di visiteur connecté en meme temp, (pas tres précis et quelques bug, mais marchait bien) et voila que maintenant, il ne marche plus, en effet, la variable reste toujours à 0, résultat, le nombre de visiteur augmente a chaque fois que je réactualise la page.
le code :
Code : PHP - Sélectionner
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
54
55
56
57
58
59
<?php
$serveur = "localhost"; // serveur
$user= "root"; // identifiant
$password = "YXXXXX"; // mot de passe
$bdd = "sitee";
$sql = new mysqli($serveur, $user, $password, $bdd);
$date_fr = time();
$stmt = $sql->prepare('SELECT * FROM visite WHERE ip = ?');
$stmt->bind_param('i', $ip);
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
$stmt->execute();
$stmt->store_result();
$lignes= ($stmt->num_rows);
if ($lignes == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
$query = "INSERT INTO visite VALUES('$ip','$date_fr')";
$sql->query($query);
}
else //on met a jour le time
{
$query = "UPDATE visite SET timestamp='$date_fr' WHERE ip='$ip'";
}
//5 minutes :
$min = time() - (60 * 5); // 60 * 5 = nombre de secondes \351coul\351es en 5 minutes
$query = "DELETE FROM visite WHERE timestamp < '$min'";
$sql->query($query);
// -------
// nbr de visiteur connécté
$retour = $sql->prepare('SELECT * FROM visite');
$retour->execute();
$retour->store_result();
$final= ($retour->num_rows);
//record de connection
echo '<br /><span class="Rouge">Il y a actuellement ' . $final . ' visiteurs.</span>';
$fichier = fopen('/home/tXXX/public_html/record.txt', 'r+');
$record = fgets($fichier);
if ($final > $record)
{
fseek($fichier, 0);
fputs($fichier, $final);
fclose($fichier);
}
?>
Bonjour, mon site était heberger chez un gratuit, et j'ai décidé de le passer sur un payant (planet hoster) j'ai donc du appliquer quelques modifications pour que le renud soit bon.
il me reste un probleme sur les accent, j'ai décidé de tout convertir en UTF-8, mais Mysql semble resistant, étant donné que je n'ai que quelques articles (un 20ene) je peut le faire à la main, ce n'est pas ca le probleme.
j'avais un script qui comptait le nombre di visiteur connecté en meme temp, (pas tres précis et quelques bug, mais marchait bien) et voila que maintenant, il ne marche plus, en effet, la variable reste toujours à 0, résultat, le nombre de visiteur augmente a chaque fois que je réactualise la page.
le code :
Code : PHP - Sélectionner
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
54
55
56
57
58
59
<?php
$serveur = "localhost"; // serveur
$user= "root"; // identifiant
$password = "YXXXXX"; // mot de passe
$bdd = "sitee";
$sql = new mysqli($serveur, $user, $password, $bdd);
$date_fr = time();
$stmt = $sql->prepare('SELECT * FROM visite WHERE ip = ?');
$stmt->bind_param('i', $ip);
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
$stmt->execute();
$stmt->store_result();
$lignes= ($stmt->num_rows);
if ($lignes == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
$query = "INSERT INTO visite VALUES('$ip','$date_fr')";
$sql->query($query);
}
else //on met a jour le time
{
$query = "UPDATE visite SET timestamp='$date_fr' WHERE ip='$ip'";
}
//5 minutes :
$min = time() - (60 * 5); // 60 * 5 = nombre de secondes \351coul\351es en 5 minutes
$query = "DELETE FROM visite WHERE timestamp < '$min'";
$sql->query($query);
// -------
// nbr de visiteur connécté
$retour = $sql->prepare('SELECT * FROM visite');
$retour->execute();
$retour->store_result();
$final= ($retour->num_rows);
//record de connection
echo '<br /><span class="Rouge">Il y a actuellement ' . $final . ' visiteurs.</span>';
$fichier = fopen('/home/tXXX/public_html/record.txt', 'r+');
$record = fgets($fichier);
if ($final > $record)
{
fseek($fichier, 0);
fputs($fichier, $final);
fclose($fichier);
}
?>