confirmation inscription

Eléphant du PHP | 60 Messages

29 mai 2006, 14:51

soit un peu logique... si tu regardes la fonction time(), on t'indique qu'elle retourne le temps en secondes depuis le 01.01.1970...

dans la vérification tu fais simplement quelque chose du genre :
if(time()-$heure_db>3600) {
// Si ça fait plus d'une heure
}
else {
// si ça fait moins d'une heure
}

Mammouth du PHP | 965 Messages

29 mai 2006, 15:43

Je te colle mon script comme prevu pour que tu puisse voir hesite pas a demander si tu comprends pas un truc :
<?php
require ("connect.php");

$pseudo    = $_POST['pseudo'];
$password  = $_POST['password'];
$password2 = $_POST['password2'];
$email     = $_POST['email'];

$ress   = mysql_query("SELECT * FROM `art` WHERE nom='". $pseudo ."' or email='". $email ."' ");
$existe = mysql_num_rows($ress);
$chaine_hachee = md5($_POST['pseudo'].$_POST['password'].$_POST['email']);
$vinsc= md5($_POST['pseudo']);

//On vérifie si les champs son vide
if($pseudo != "" && $password != "" && $password2 != "" && $email != "" && $pseudo != " " && $password != " " && $password2 != " " && $email != " ")
{
    //On vérifie que le mot de passe est bien recopié
    if($password == $password2)
    {
        //On vérifie que l'email ou le pseudo n'est pas enregistré
        if(!$existe)
        {
            $sql    = "INSERT INTO art (nom,mdp,email) VALUES ('".$pseudo."','".$password."','".$email."')";
            $test   = mysql_query($sql) or die("erreur ! ".mysql_error());
            $id     = mysql_insert_id();
            $titre    = "Inscription au generateur de son";
            $headers  ="From: Generateur de son<[email protected]>\r\n";
            $message  = "Bienvenue !\n\n";
            $message .= "Votre nom est : ". $pseudo ." \n";
            $message .= "Votre pass est : ".$password." \n\n";

            $message .= "pour vous connecter sur le site et acceder a votre profil vous devez d'abord cliquer sur le lien suivant : \n";
            $message .= "http://strygies.mooo.com/inscrip.php?pseudo=". $pseudo ."&cle=". $chaine_hachee;

            if(mail($email, $titre, $message, $headers))
            {
                header("location: valide.php?vinsc=$vinsc&p=$pseudo");
            }
            else
            {
               header("location: inscription.php?erreur4");
            }
        }
        else
        {
            header("location: inscription.php?erreur3");
        }
    }
    else
    {
        header("location: inscription.php?erreur2");
    }
}
else
{
    header("location: inscription.php?erreur1");
}
?>
donc avec un retour en cas d'erreur !

par contre quand un email est mal enregistrer il bug genre quand tu n'as pas mis une adresse valide il te marque une erreur de merde.

Ensuite le script de login de cette manière la ::

<?php

require ("connect.php");

$pseudo=$_POST['pseudo'];
$password=$_POST['password'];


$ress=mysql_query("SELECT * FROM `art` WHERE nom='".$_POST['pseudo']."' and mdp='".$password."' and confirme='oui' ") or die("erreur de requette '".mysql_error());
$existe=mysql_numrows($ress);

if(!$existe){

Header("Location: log.php?erreur");


}else{

	session_start();

				session_register("nom");

				$_SESSION['name']= session_name();

				$_SESSION['session_id']= session_id();

				$_SESSION['login']= $_POST['pseudo'];

				Header("Location: index.php?".$_SESSION['name']."=".$_SESSION['session_id']);


$verif= mysql_query("SELECT * FROM `art`  WHERE confirme LIKE 'non' AND nom='".$_POST['pseudo']."' and mdp='".$password."' ");
$row=mysql_fetch_array($verif);

if($row['confirme'] == "non"){
Header("Location: log.php?erreur2");
}

$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM sessions WHERE ip='".$_SERVER['REMOTE_ADDR']."' ");
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
    $sql = "INSERT INTO sessions (ip,timestamp,nom,sessid) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".time()."', '".$_SESSION['login']."', '".$_SESSION['session_id']."') ";
    $request = mysql_query($sql) or die ("erreur ".$sql);
}
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
{
    $sql = "UPDATE sessions SET timestamp= '".time()."', nom = '".$_SESSION['login']."', sessid = '".$_SESSION['session_id']."' WHERE ip= '".$_SERVER['REMOTE_ADDR']."' ";
    $request = mysql_query($sql) or die ("erreur ".$sql);
}

// -------
// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM sessions WHERE timestamp < ' . $timestamp_5min);

// -------
// ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM sessions');
$donnees = mysql_fetch_array($retour);


// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo $sql;
echo "hello";
}
?>
donc quand je fais mon script je met aussi a jour ma table des gens connecté ca peut t'être utile aussi donc en fait le script creer la session et retourne une erreur si il n'a pas confirmé l'inscription.

Donc je te met ca comme ca tu peux me poser les questions que tu veux y'a pas de soucis.

TchOos.

Mammouth du PHP | 536 Messages

29 mai 2006, 16:05

pourquoi ne peut-on pas passer le mot lycée par exemple dans le lien dans le mail ? ca ne marche pas, et ca me coupe mon lien en deux. [url]http://adresse_site/rep1/sousrep1/validation.php?nom=lyc[/url]ée
hippolyte fontaine&login=login

Avez vous une réponse?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 965 Messages

29 mai 2006, 16:38

envoie le code mais n'oublie pas les balises " et " ouvrantes et fermante par exemple :
echo "<a href="lien.php">Nomdulien></a>";
ne marchera pas mais
echo "<a href=\"lien.php\">Nomdulien</a>";
marchera.

Mammouth du PHP | 536 Messages

29 mai 2006, 16:57

voila mon code :
//envoyer un mail au nouveau membre
$message = "Un nouveau compte de membre viens d'être créé pour vous.\n
Voila les renseignements saisis : \n
Nom  : $nom\n
Adresse  : \n$adresse\n$cp\n$ville\n
Numéro de téléphone et de fax : $tel ; $fax\n
Votre site Internet : $site\n\n
Votre identificateur et votre mot de passe sont : \n\n\t$login\n\t$password\n
Afin de confirmer votre inscription, cliquez sur le lien suivant : http://adresse_site/rep1/sousrep1/validation.php?nom=$nom&login=$login

Nous appécions l'intérêt que vous portez à notre établissement.\n


$sujet = "Nouveau compte";

$adresse = $email;

$entete = "De : [email protected]";

$mailsend=mail($adresse,$sujet,$message,$entete);
 }} ?>
et avant je récupere les variables avec la method post depuis un formulaire.
Mais j'ai l'impression que c'est les accents qui ne marche pas pourtant pour chaque variable, elle est déclarée ainsi :
$nom=nl2br($_POST['nom']);
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 965 Messages

29 mai 2006, 17:07

//Parametres
$adresse = $email;
$sujet = "Nouveau compte";
$entete = "De : [email protected]";

//Corps du message
$message = "Un nouveau compte de membre viens d'être créé pour vous.\n";
$message.= "Voila les renseignements saisis : \n";
$message.= "Nom  : ".$nom." \n";
$message.= "Adresse  : \n ".$adresse." \n ".$cp." \n ".$ville." \n";
$message.= "Numéro de téléphone et de fax : ".$tel."  ".$fax." \n";
$message.= "Votre site Internet : ".$site." \n\n";
$message.= "Votre identificateur et votre mot de passe sont : \n\n\t ".$login." \n\t ".$password." \n";
$message.= "Afin de confirmer votre inscription, cliquez sur le lien suivant \n";
$message.="http://adresse_site/rep1/sousrep1/validation.php?nom=".$nom."&amp=".$login; 
$message.= "Nous appécions l'intérêt que vous portez à notre établissement.\n";

if(mail($adresse,$sujet,$message,$entete))
  {
     header("location: index.php");
  }else{
     header("location: index.php?erreur");
  } 
?>
J'ai corriger les fautes et remis en forme ca passera mieux comme ca :wink:
Modifié en dernier par agité le 29 mai 2006, 17:14, modifié 1 fois.

Mammouth du PHP | 536 Messages

29 mai 2006, 17:14

ok merci, j'essai
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

29 mai 2006, 17:24

toujours le meme souci, le lien s'arrete lorsqu'on met un accent.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 965 Messages

29 mai 2006, 17:44

pfiouuuuu j'ai finis par trouver ou ca coincait :
//Parametres
$adresse = $email;
$sujet = "Nouveau compte";
$entete = "De : [email protected]";

//Corps du message
$message = "Un nouveau compte de membre viens d'être créé pour vous.\n \n";
$message.= "Voila les renseignements saisis : \n \n";
$message.= "Nom  : ".$nom." \n";
$message.= "Adresse  : ".$adresse."  ".$cp."  ".$ville." \n";
$message.= "Numéro de téléphone et de fax : ".$tel."  ".$fax." \n";
$message.= "Votre site Internet : ".$site." \n \n";
$message.= "Votre identificateur et votre mot de passe sont : \n ".$login." \n ".$password." \n";
$message.= "Afin de confirmer votre inscription, cliquez sur le lien suivant \n";
$message.= "http://adresse_site/rep1/sousrep1/validation.php?nom=".$nom."&amp=".$login;
$message.= "Nous appécions l'intérêt que vous portez à notre établissement. \n";

if(mail($adresse,$sujet,$message,$entete))
  {
     header("location: index.php");
  }else{
     header("location: index.php?erreur");
  } 
?>

Mammouth du PHP | 536 Messages

30 mai 2006, 08:20

c'est ou la diférence? c'était quoi l'erreur?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 965 Messages

30 mai 2006, 10:26

Mon code ne marche pas chez toi ?

pourtant j'ai fais le test hier et ca passe pafaitement en PHP4 pour moi, j'ai tester sur mon mail et pas de soucis avec l'affichage des accents et le lien.

C'était juste une erreur dans les espacements, tiens moi au courant si ca ne marche pas ...

TchOos.

Mammouth du PHP | 536 Messages

30 mai 2006, 11:00

non ca ne marche toujours pas il s'arrete à l'accent
cela peut-il venir de hotmail?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

30 mai 2006, 14:56

au secours
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 mai 2006, 14:57

Pourquoi veux tu mettre un accent dans une url ?

Tu n'étais pas parti sur une chaine cryptée ?

Utilise url_encode() sinon : http://fr.php.net/url_encode

Mammouth du PHP | 536 Messages

30 mai 2006, 15:01

nom mais en fait, dans l'url il y a un champ qui est saisi par des utilisateur, des entreprises et des établissement scolaire. Et quand je mets le mots lycée ben ca ne marche pas. Tout comme les espaces
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!