par
Ryle » 10 déc. 2006, 12:18
Tu as un petit soucis dans la récupération de l'ip en base. En effet tu récupère celle associée à la dernière date, mais tu ne sais pas si entre temps tu as vidé la table ou pas. Je ne suis par ailleurs pas certain que l'on puisse utiliser la condition WHERE dans un INSERT.
Pour ma part, la première chose que je ferais c'est de ramener uniquement la date max de ta table sans ramener les autres enregistrements (actuellement tu ramenes toutes les lignes pour ne traiter que la première) et sans te soucier de l'ip. (soit avec un "max", soit avec un "limit 0,1")
Si la date est différente, effectivement tu tronques.
Ensuite, je me consacrerais à l'ip. Je ferais donc un count(*) dans la table avec un WHERE sur l'ip pour savoir s'il y a déjà un enregistrement correspondant ou pas (si on vient de faire un truncate, c'est pas utile, on sait déjà qu'il n'y en aura pas)
Et en fonction du résultat du count, s'il n'a rien trouvé, je fais l'insertion en base et j'affiche la frame, sinon je lui dis qu'il est déjà venu
Sinon quelques p'tites remarques en passant :
- quand tu définies une nouvelle constante, il faut mettre des apostrophes (ou des guillemets) autour du nom de la constante. Tant qu'elle n'est pas définie, ca reste une chaine de caractère normale
define( '_TABLE' , 'Ip_Unique' );
- Ce n'est pas utile, lorsque tu concatène une variable à la fin d'une chaine, de rajouter une chaine vide après :
mysql_query("TRUNCATE TABLE " . _TABLE ); // pas besoin du: . ""
- Ton contrôle sur l'ip devrait également (surtout d'ailleurs) être effectué sur la page PTP2.php si ce n'est pas déjà le cas, dans la mesure ou l'on peut l'appeller directement via son url. C'est d'avantage elle qu'il faut protéger que l'iframe qui l'affiche

Tu as un petit soucis dans la récupération de l'ip en base. En effet tu récupère celle associée à la dernière date, mais tu ne sais pas si entre temps tu as vidé la table ou pas. Je ne suis par ailleurs pas certain que l'on puisse utiliser la condition WHERE dans un INSERT.
Pour ma part, la première chose que je ferais c'est de ramener uniquement la date max de ta table sans ramener les autres enregistrements (actuellement tu ramenes toutes les lignes pour ne traiter que la première) et sans te soucier de l'ip. (soit avec un "max", soit avec un "limit 0,1")
Si la date est différente, effectivement tu tronques.
Ensuite, je me consacrerais à l'ip. Je ferais donc un count(*) dans la table avec un WHERE sur l'ip pour savoir s'il y a déjà un enregistrement correspondant ou pas (si on vient de faire un truncate, c'est pas utile, on sait déjà qu'il n'y en aura pas)
Et en fonction du résultat du count, s'il n'a rien trouvé, je fais l'insertion en base et j'affiche la frame, sinon je lui dis qu'il est déjà venu :)
Sinon quelques p'tites remarques en passant :
- quand tu définies une nouvelle constante, il faut mettre des apostrophes (ou des guillemets) autour du nom de la constante. Tant qu'elle n'est pas définie, ca reste une chaine de caractère normale :)
[php]define( '_TABLE' , 'Ip_Unique' ); [/php]
- Ce n'est pas utile, lorsque tu concatène une variable à la fin d'une chaine, de rajouter une chaine vide après :
[php]mysql_query("TRUNCATE TABLE " . _TABLE ); // pas besoin du: . ""[/php]
- Ton contrôle sur l'ip devrait également (surtout d'ailleurs) être effectué sur la page PTP2.php si ce n'est pas déjà le cas, dans la mesure ou l'on peut l'appeller directement via son url. C'est d'avantage elle qu'il faut protéger que l'iframe qui l'affiche :)