Bonjour,
Voilà, j'ai un problème, j'ai téléchargé un espace membres sur le net, très bien d'ailleurs, et j'ai essayé de le modifier pour qu'il m'affiche le nombre de jours de connexion, c'est à dire si je me connectes lundi, mercredi, jeudi, il m'affichera 3. Le truc c est que j'ai créer un champ $lastlog, qui est la dernière connexion. Ce champ devrait contenir la date de la dernière connexion sur le site. J'ai également ajouter $nbjours, qui dit le nombre de jours de connexion sur le site. En fait, à la connexion, je regarde si $lastlog est egal a aujourd'hui sinon je fais +1 à $nbjours, ensuite j'acualise $lastlog.
En théorie, ca marche, mais en pratique c est différent.
ERREUR: Bienvenue dans votre espace membre, c'est votre 0eme jour de connexion.
Je vous laisse regarder la page de verification de la connexion et de l inscription...
verification de la connexion: pdf_connexion2.php:
<?
session_start();
require "conf.php3";
mysql_connect("$sql_serveur","$sql_login","$sql_pass");
mysql_select_db("$sql_bdd");
mysql_query("SELECT nbjours FROM pdf_membre WHERE pseudo= '$pseudo'");
mysql_query("SELECT lastlog FROM pdf_membre WHERE pseudo='$pseudo'");
$lastlog=addslashes(htmlspecialchars($_POST[lastlog]));
$nbjours=addslashes(htmlspecialchars($_POST[nbjours]));
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];
if ($pseudo != NULL AND $pass != NULL)
{
$reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo'");
$donnees = mysql_fetch_array ($reponse);
$verif = $donnees['pass'];
$id = $donnees['id'];
$pseudo_sql = $donnees['pseudo'];
$confirm = $donnees['confirm'];
if($_SESSION["SESSION_OUVERTE"] != 1)
{
$lastlog = $donnees["lastlog"];
$interval_temps = mktime(0, 0, 0, date("m") , date("d") , date("Y")) - $lastlog;
$lastlog = mktime(0, 0, 0, date("m") , date("d") , date("Y"));
$_SESSION["SESSION_OUVERTE"] == 1;
}
if($pass != $verif)
{
$reponse = 'Votre identifiant ou votre code secret est incorrect';
$redirection = 'pdf_connexion.php';
}
elseif($confirm != NULL)
{
$reponse = 'Votre compte n\'est pas encore activé';
$redirection = 'pdf_connexion.php';
}
else
{
$_SESSION['pseudo'] = $pseudo_sql ;
$redirection = 'pdf_espace_membre.php';
$reponse = 'Connexion réussie vous allez être redirigé.
[pdf_espace_membre.php Rejoindre directement l\'Espace membre]
Dernière connexion :' . date("d/m/Y : H\hi", $interval_temps);
}
}
if($interval_temps != 0)
{
$nbjours == $nbjours + +;
}
mysql_query("UPDATE pdf_membre SET nbjours='$nbjours' WHERE pseudo='$pseudo'");
mysql_query("UPDATE pdf_membre SET lastlog='$lastlog' WHERE pseudo='$pseudo'");
?>
<html>
<head>
<meta http-equiv="refresh" content="2;URL=<? echo "$redirection"; ?>">
</head>
<? echo "$reponse"; ?>
</html>
verification de l'inscription: pdf_inscription2.php:
<?php
session_start();
require "conf.php3";
mysql_connect("$sql_serveur","$sql_login","$sql_pass");
mysql_select_db("$sql_bdd");
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail))
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine);
$pseudo = htmlentities($_POST['pseudo']);
$mail = htmlentities($_POST['mail']);
$mdp = htmlentities($_POST['mdp']);
$verif_mdp = htmlentities($_POST['verif_mdp']);
$lastlog = mktime(date("m") , date("d") , date("Y"));
$nbjours = htmlentities($_POST['nbjours']);
$parrain = htmlentities($_POST['parrain']);
$message1 = '<html> Bonjour ' . $pseudo . ' et bienvenue sur site. ';
$message1 . = '';
$message1 .= '
Merci pour votre inscription !
';
$message1 .= 'Voici un rappel de vos identifiants, gardez les précieusement :
';
$message1 .= 'Votre Pseudo :' . $pseudo .'.
';
$message1 .= 'Votre Mot de passe:' . $mdp .'.
';
$message1 .= 'Votre Mail:' . $mail .'.
';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.
';
$message1 .= 'Copiez ou cliquez sur le lien ci-dessous pour activer votre compte:
';
$message1 .= 'http://site.com/membres/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '
';
$message1 .= 'A très bientôt sur le site!
[
http://www.site.com/">site';
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['COUNT(*)'] >= 1)
{
$reponse = 'Désolé, ce pseudo est déjà utilisé, merci d\'en choisir un nouveau. [javascript:history.back(1) Retour au formulaire]';
}
else
{
$verification2 = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE mail='$mail'") or die (mysql_error());
$donnees2 = mysql_fetch_array($verification2)or die (mysql_error());
if($donnees2['COUNT(*)'] >= 1)
{
$reponse = 'Cette adresse e-mail est déjà utilisé, veuillez en choisir une autre. [javascript:history.back(1) Retour au formulaire]';
}
elseif( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail))
{
$reponse = 'Un ou plusieurs champs ne sont pas remplis, [javascript:history.back(1) Retour au formulaire]';
}
elseif( $mdp != $verif_mdp)
{
$reponse = 'Les mots de passe ne sont pas identiques, [javascript:history.back(1) Retour au formulaire]';
}
elseif( $pseudo == $parrain)
{
$reponse = 'Vous ne pouvez pas vous parrainer vous-même! [javascript:history.back(1) Retour au formulaire]';
}
else
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$lastlog', '$nbjours', '$parrain')");
$reponse = 'Bravo, vous êtes maintenant inscrit sur mon site.
Vous allez recevoir un mail pour activer votre compte.
http://www.site.com/">Retour à l\'Accueil';
$email_admin = [mailto:'mon_mail@moi.com' 'mon_mail@moi.com'];
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Inscription sur Gamwin' . $login .'.' , $message1, "$entete");
}
}
}
else
{
$reponse = 'Votre adresse e-mail "' . $mail . '" n\'est pas correcte. [javascript:history.back(1) Retour au formulaire]';
}
?>
<html>
<? echo "$reponse"; ?>
</html>
structure de la table:
CREATE TABLE `pdf_membre` (
`id` int(11) NOT NULL auto_increment,
`pseudo` varchar(255) NOT NULL default '',
`pass` varchar(255) NOT NULL default '',
`mail` varchar(255) NOT NULL default '',
`confirm` text NOT NULL,
`lastlog` date NOT NULL default '',
`nbjours` int(11) NOT NULL default '',
`parrain` text NULL,
KEY `id` (`id`)
)
je sais deja que mktime() c est faux, mais je sais pas quoi mettre à la place, parce que je prefererais qu'il m'insère dans la bdd que la date, mais je connais pas la fonction... Alors si qqn peut deja m'aider pour ca ce serait deja cool...
merci d'avance pour votre aide.
F