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
|
<?php
if(!empty($_POST['pseudo']) && !empty($_POST['message']))
{
// Définition des variables
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$message = mysql_real_escape_string($_POST['message']);
$regexpseudo = '`^([a-zéèà0-9._-]+)( (?1))?$`i';
$ip = get_ip();
//Si la session n'existe pas on insert dans la table session le pseudo et le timestamp (c'est pour afficher les utilisateurs qui poste)
if(!isset($_SESSION['pseudo']))
{
if(preg_match($regexpseudo, $pseudo))
{
if(strlen($pseudo) >= 3 && strlen($pseudo) <= 25)
{
$sql1 = "INSERT INTO session(id, pseudo, timestamp) VALUES('', '".$pseudo."', '".time()."')";
mysql_query($sql1) or die(mysql_error());
}
}
}
else // Sinon c'est que la session existe et donc on met à jour le timestamp de la table session
{
$sql3 = "UPDATE session SET timestamp = '".time()."' WHERE pseudo = '".$_SESSION['pseudo']."'";
mysql_query($sql3) or die(mysql_error());
//Ici on récupère le timestamp de la table session pour faire une condition, à savoir si le timestamp de la table session est inferieur au timestamp actuel + 10 secondes alors on supprime l'entrée de la table pour que l'utilisateur est sa session de supprimer. Donc d'après le code la quand je poste alors que la session existe déjà et bien on entre dans la condition et donc l'entré est supprimé
$requete = mysql_query("SELECT timestamp FROM session WHERE pseudo = '".$_SESSION['pseudo']."'");
$donnees = mysql_fetch_array($requete);
if($donnees['timestamp'] < time() + 5)
{
$sql = "DELETE FROM session WHERE pseudo = '".$_SESSION['pseudo']."'";
mysql_query($sql) or die(mysql_error());
session_unset();
session_destroy();
}
}
//Ici on crée la session et on insère le message dans la table tchat
if(preg_match($regexpseudo, $pseudo))
{
if(strlen($pseudo) >= 3 && strlen($pseudo) <= 25){
$_SESSION['pseudo'] = $pseudo;
$sql2 = "INSERT INTO tchat(id, pseudo, message, timestamp, ip) VALUES('', '".$_SESSION['pseudo']."', '".$message."', '".time()."', '".$ip."')";
mysql_query($sql2) or die(mysql_error());
}
else
{
echo '<script>alert("Votre pseudo doit être compris entre 3 et 25 caractères inclu");</script>';
}
}
else
{
echo '<script>alert("Votre pseudo est invalide\nLes caractères autorisés sont :\n- alphanumériques\n- é\n- è\n- à\n- underscore(_)\n- tiret(-)\n- point(.)\n- Espace (autorisé seulement en milieu de chaîne)");</script>';
}
}
?> |
Partager