Le fuseau horaire est UTC+2 heures




Publier un nouveau sujet Répondre au sujet  [ 72 message(s) ]  Aller vers la page 1, 2, 3, 4, 5  Suivant
 

Auteur Message
Message Publié : 25 Fév 2006, 16:35 
Confirmé
Hors-ligne

Inscription : 02 Jan 2006, 17:11
Message(s) : 221
Localisation : Toulouse
INFO : Ce premier post est mis à jour selon les modifications/améliorations apportées au long de la discussion
Voila comme promis un tutorial sur la creation d'un espace membre en PHP car je pense que sa aidera pas mal de gens.
Bien entendu, ce tutorial n'a aucune prétention, si ce n'est que de marcher comme il faut même si c'est vrai qu'il reste basique.

-----------------------------------------------------------------------

1/ Aller dans votre base de donnée via PHPMyAdmin et aller dans l'onglet "SQL".
Recopiez le script suivant et appuyez sur "Executer" :


Script table :

CREATE TABLE membre (
id_membre int(10),
id varchar(20),
pseudo varchar(20),
passe varchar(20)
);
-----------------------------------------------------------------------
2/Modifiez ensuite les variables du script suivant puis creez une page contenant ce script que vous nommerais "conf.php3" :

<?

// SERVEUR SQL
$sql_serveur="votre serveur SQL (ex: sql2.power-heberg.net...)";

// LOGIN SQL
$sql_user="Votre login";

// MOT DE PASSE SQL
$sql_passwd="Votre pass";

// NOM DE LA BASE DE DONNEES
$sql_bdd="Nom de la base de données";

// REDIRECTION VERS UNE PAGE ERREUR AU CAS OU LE LOGIN ET MOT DE PASSE SONT INVALIDES
$url_erreur="erreur.htm";//page à configurer par vos soins...et à mettre dans le meme répertoire que le fichier conf.php3

// PAGE PRINCIPALE PROTEGEE PAR MOT DE PASSE
$zone_membre="zonemembre.php3";//ne rien modifier (pour éviter les erreurs plus tard)
?>

--------------------------------------------------------------------------------------

3/Creez maintenant une page pour chaque script suivant en respectant le nom que j'attribue à chaque page :

Page "adduser.php3" :

<html>
<head>
<title>Espace membre</title>
</head>
<body>
<font face="Verdana" size="2">
<center>
<?
require("conf.php3");

switch($action) {
/*-----------------------------------------------------------------*/
/* AJOUT DANS MySQL */
/*-----------------------------------------------------------------*/

case "add";

// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}

// TEST SUR LES VALEURS SAISIES
if($pseudo_membre==""){echo "Vous devez choisir un pseudo<br><br><a href="javascript:window.history.back()">Retour</a>";exit;}
if($passe_membre==""){echo "Vous devez choisir un mot de passe<br><br><a href="javascript:window.history.back()">Retour</a>";exit;}
// CHAMPS SUPLEMENTAIRES, inspirez-vous des lignes suivantes. Pour qu'un champs soit facultatif, omettez la ligne.
//if($email==""){echo "Vous n'avez pas saisi votre email<br><br><a href="javascript:window.history.back()">Retour</a>";exit;}
//if($ville==""){echo "Vous n'avez pas saisi la ville<br><br><a href="javascript:window.history.back()">Retour</a>";exit;}

// ON VERIFIE SI CE PSEUDO EXISTE DEJA
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo="$pseudo_membre"",$db_link) or die(mysql_error());
$num=mysql_num_rows($requete);
if($num!=0)
{
echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href="javascript:window.history.back()">Retour</a>";
}
else
{
// CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}

// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
$idmax=mysql_result($requete,0,"max(id_membre)");

// INSERTION DANS LA TABLE
$idnew=$idmax+1;
$requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,"$id","$pseudo_membre","$passe_membre")",$db_link) or die(mysql_error());
// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
// insert into membre values ($idnew,"$id","$pseudo_membre","$passe_membre","$email","$ville")

// REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
echo "Merci, vous êtes bien enregistré. Cliquez <a href="$zone_membre?id=$id">ici</a> pour entrer dans votre espace privé.";
}

// DECONNEXION MYSQL
mysql_close($db_link);

break;


/*-----------------------------------------------------------------*/
/* AFFICHAGE DU FORMULAIRE */
/*-----------------------------------------------------------------*/

default;
echo " <h2>Nouveau membre</h2>
<form action="adduser.php3" method="post">
<input type="hidden" name="action" value="add">
Chosissez un pseudo<br><input type="text" name="pseudo_membre"><br>
Chosissez votre pass<br><input type="password" name="passe_membre"><br>
<! -- CHAMPS SUPLEMENTAIRES, décommentez les 2 lignes suivantes -->
<!-- Votre email<br><input type="text" name="email"><br> -->
<!-- Ville<br><input type="text" name="ville"><br> -->
<input type="submit" value="Envoyer">
</form>
<font face="Verdana" size="2"><a href="index.htm">Se connecter</a></font>";
break;
}
?>
</center>
</font>
</body>
</html>


------------------------------------------------------------------------------------------

Page "zonemembre.php3" :

<?
require("conf.php3");

// CONNEXION MYSQL
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from membre where id="$id"",$db_link) or die(mysql_error());

// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
{
// REDIRECTION PAGE ERREUR
header("Location:$url_erreur");
exit;
}

// LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
$pseudo_membre=mysql_result($requete,0,"pseudo");
// CHAMPS SUPLEMENTAIRES
// Si vous avez ajouté des champs dans la table SQL, inspirez-vous de la ligne précédente pour récupérer leur valeur. Exemple :
//$email=mysql_result($requete,0,"email");
//$ville=mysql_result($requete,0,"ville");

// DECONNEXION MYSQL
mysql_close($db_link);
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body bgcolor="#FF0000" text="#000000">

<br>



<br>
<p align="center"><b><font face="Verdana" size="3">ESPACE
MEMBRE</font></b></p>
<p align="center"> </p>
<p align="center"><font size="2" face="Verdana">
<br><br>
Salut à toi <b><? echo "$pseudo_membre <br>"; ?></b><br><br>
Exemple de lien vers une autre page protégée :<br>
<a href="test.php3?id=<? echo "$id"; ?>">Test</a><br>

<br><br>

<!-- CHAMPS SUPLEMENTAIRES, décommentez les lignes suivantes -->
<!-- Votre email : <b><? echo "$email"; ?></b><br> -->
<!-- Votre ville : <b><? echo "$ville"; ?></b><br> -->

</font></p>
</body>
</html>

----------------------------------------------------------------------------------------

Page "login.php3" :

<?
require("conf.php3");

/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/

// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}

// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete=mysql_db_query($sql_bdd,"select pseudo,passe from membre where pseudo="$pseudo_membre" and passe="$passe_membre"",$db_link) or die(mysql_error());

// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
// REDIRECTION VERS LA PAGE ERREUR
header("Location:$url_erreur");
}

// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
// CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}

// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE
$requete=mysql_db_query($sql_bdd,"update membre set id="$id" where pseudo="$pseudo_membre" and passe="$passe_membre"",$db_link) or die(mysql_error());

// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
header("Location:zonemembre.php3?id=$id");
}

// DECONNEXION MYSQL
mysql_close($db_link);
?>

---------------------------------------------------------------------------------------

Page "index.html" :

<html>
<head>
<title>Espace membre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<br>




<br>
<div align="center"><b><font face="Verdana" size="2">Pour
entrer dans l'espace membre, saisissez votre pseudo et votre mot de passe :</font></b>
<form method="post" action="login.php3">
<b><font face="Verdana" size="1">Pseudo<br>
<input type="text" name="pseudo_membre">
<br>
<br>
Mot de passe</font></b><br>
<input type="password" name="passe_membre">
<br>
<br>
<input type="submit" name="Submit" value="Entrer">
</form>
<font face="Verdana" size="2"><a href="adduser.php3">Inscription</a></font>
</div>
</body>
</html>

----------------------------------------------------------------------------------

IMPORTANT !!!! PROTECTION DES PAGES MEMBRES
Toutes les pages protégées par mot de passe dans votre "Espace membre" doivent être des pages PHP et
contenir le code suivant en haut de page, avant même la balise <HTML> :


<?
require("conf.php3");
// CONNEXION MYSQL
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from membre where id="$id"",$db_link) or die(mysql_error());
// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
{
// REDIRECTION PAGE ERREUR
header("Location:$url_erreur");
exit;
}
// LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
$pseudo_membre=mysql_result($requete,0,"pseudo");
// CHAMPS SUPLEMENTAIRES
// Si vous avez ajouté des champs dans la table SQL, inspirez-vous de la ligne précédente pour récupérer leur valeur.
//$email=mysql_result($requete,0,"email");
//$ville=mysql_result($requete,0,"ville");
// DECONNEXION MYSQL
mysql_close($db_link);
?>

---------------------------------------------------
Ce code permet de vérifier si on est bien passé par le formulaire "index.htm".
Vous pouvez afficher les informations du membre, comme par exemple son pseudo :
<? echo "Bonjour $pseudo_membre"; ?>

NAVIGATION ENTRE LES PAGES
Le script "login.php3" a créé un identifiant aléatoire pour le membre et l'a mis à jour dans la table MySQL.
Sans cet identifiant, on ne peut pas consulter la page. Il est accessible dans la page PHP avec la variable
$id. Vous pouvez donc insérer des liens vers d'autres pages protégées avec le code suivant :

<a href="pageprotege.php3?id=<? echo "$id"; ?>">AUTRE PAGE MEMBRE</a>

NB : Si vous vos pages membres ne sont pas toutes dans le même répertoire, adaptez le chemin
d'accés au fichier "conf.php3" dans la fonction require.
Exemple :
require("../conf.php3"); // (répertoire parent)
require("monrep/conf.php3"); // (sous-répertoire)



// // // //

Voila j'espère que ce tuto vous aideras un peu et vous pouvez meme, si le coeur vous en dis, de le modifier pour l'améliorer ;)


Dernière édition par Flo.L le 26 Fév 2006, 23:17, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:36 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
merci mais voila se qu il m affiche apres avoir mit sur le serveur
Parse error: parse error, unexpected T_VARIABLE in /home/royantan/www/conf.php3 on line 11


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:42 
Confirmé
Hors-ligne

Inscription : 02 Jan 2006, 17:11
Message(s) : 221
Localisation : Toulouse
Il doit y avoir une erreur de votre part à la ligne 11 de la page "conf.php3"
Vérifiez bien que tu vous n'avez pas modifié le script et que vous avez rentré les bons identifiants (nom de votre bd...) ou alors si vous avez pas trouvé ce soir, je vous recontacterez pour voir ce que je peux faire.

Sinon au niveau de mon script tout est correct. ;)


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:44 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
je n en doute pas et je vais donc voir a la ligne 11 mais je n y arrive guere a voir la faute


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:45 
Expert
Hors-ligne

Inscription : 03 Sep 2005, 12:33
Message(s) : 710
Localisation :

Bordeaux

Montres nous le code de ta page conf.php3. Tu as fdu oublié un ;


Dernière édition par Alberich le 25 Fév 2006, 17:45, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:46 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
<?
$sql_serveur="sql2.power-heberg.net";
$sql_user="royantan";
$sql_passwd="********";
$sql_bdd="tau.power-heberg.net";
$url_erreur="erreur.htm";//page à configurer par vos soins...et à mettre dans le meme répertoire que le fichier conf.php3
$zone_membre="zonemembre.php3";//ne rien modifier (pour éviter les erreurs plus tard)
?>


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:47 
Expert
Hors-ligne

Inscription : 03 Sep 2005, 12:33
Message(s) : 710
Localisation :

Bordeaux

Si tu l'as fait comme ça, il n'y a que 8 lignes. Fais attention à ne pas avoir de retour à la ligne après le ?> final.


Dernière édition par Alberich le 25 Fév 2006, 17:48, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:51 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
attend je ressaye mzis quand je dois mettre base de donnee s est quoi honte sur moi


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:57 
Expert
Hors-ligne

Inscription : 03 Sep 2005, 12:33
Message(s) : 710
Localisation :

Bordeaux

c'est royantan, j'avais pas vu ça ^^.


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 17:58 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
quoi royantan que dois je faire


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 18:04 
Expert
Hors-ligne

Inscription : 03 Sep 2005, 12:33
Message(s) : 710
Localisation :

Bordeaux

Code :
<?
$sql_serveur="sql2.power-heberg.net";
$sql_user="royantan";
$sql_passwd="********";
$sql_bdd="royantan"; // c'est ton login souvent le nom de la base de donnée sauf si c'est la base secondaire
$url_erreur="erreur.htm"; // page à configurer par vos soins...et à mettre dans le meme répertoire que le fichier conf.php3
$zone_membre="zonemembre.php3"; // ne rien modifier (pour éviter les erreurs plus tard)
?>


Dernière édition par Alberich le 25 Fév 2006, 18:08, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 18:08 
Debutant
Hors-ligne

Inscription : 25 Fév 2006, 10:09
Message(s) : 84
sauf si c'est la base secondaire de l'option
ben halas je crois que s est sa alors je dois faire quoi


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 18:16 
Confirmé
Hors-ligne

Inscription : 02 Jan 2006, 17:11
Message(s) : 221
Localisation : Toulouse
Ouais Alberich je l'avait pas vu son erreur.

En effet, $sql_user doit avoir le nom de la base de donnée et pas le nom du serveur de base de données de Power-Heberg.

Par contre il faut savoir si tu est sur le serveur TAU ou SQL2 car tu as mis les deux dans ton code source visiblement...


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 18:25 
Expert
Hors-ligne

Inscription : 03 Sep 2005, 12:33
Message(s) : 710
Localisation :

Bordeaux

euh oui mais ça c'est une ratatouille tau c'est pour le ftp me semble.


Haut
 Profil  
Répondre en citant  

Message Publié : 25 Fév 2006, 18:42 
Confirmé
Hors-ligne

Inscription : 02 Jan 2006, 17:11
Message(s) : 221
Localisation : Toulouse
ah je savais pas. je pensais que TAU c'était un autre serveur de PH comme Oméga ou Gamma...


Dernière édition par Flo.L le 25 Fév 2006, 18:42, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 72 message(s) ]  Aller vers la page 1, 2, 3, 4, 5  Suivant

Le fuseau horaire est UTC+2 heures


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de :
Aller vers :  
cron
Thème par Easy-Hébergement
Powered by phpBB © 2000, 2002, 2005, 2007, 2011 phpBB Group
Traduit en français par Maël Soucaze.