NewbieContest

Programmation => Langages Web => Discussion démarrée par: popop le 26 Juillet 2005 à 21:05:47



Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: popop le 26 Juillet 2005 à 21:05:47
voila je suis en train de créer un site dans lequel je voudrais mettre un espace membre mais je dois avouer que je ne sais absolument pas comment faire donc si vous pouviez m'aider **orthographe !** sympas
=)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Romano le 26 Juillet 2005 à 21:16:29
T'as plusieurs solutions.

Je pense que le plus simple si tu ne connais pas le php est d'utiliser un espace membre déjà codé, tu en trouveras sur des sites type http://www.comscripts.com/

PS : Vérifie tout de même que les magic_quotes_gpc sont activées sur le serveur qui hebergera ton site, sinon vérifie la présence d'addslashes() sur les variables sensibles :)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: popop le 27 Juillet 2005 à 08:43:54
ok merci je vais voir tout de suite


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 03 Août 2005 à 12:58:32
Il te servirait à quoi cet espace membre ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 03 Août 2005 à 16:06:07
mouarf moi aussi je suis entrain d'en coder un mais c'est assez chaud , d'ailleurs si quelqu'un pouvait m'aider au sujet de mysql sur free car j'y comprend pas grand chose , a quoi sert les tables ont doit les citer dans les script de connexion ou pas ?  on fait notre script que l'on balance sur le serveur et hop la c'est bon ? (  pas trés clair mais ca ne l'ai pas plus pour moi ;) )


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 05 Août 2005 à 14:11:30
j'ai pas pigé ce que tu veux dire pour être franc... :/


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 05 Août 2005 à 14:42:01
Citation
j'ai pas pigé ce que tu veux dire pour être franc... hmm
si tu parle de ce que j'ai dit , j'ai fini par comprendre =D mais a vrai dire j'avais pas vraiment compris ce j'ai dit aussi :?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Invit le 05 Août 2005 à 15:38:23
loll ^ c super clair... :D


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 05 Août 2005 à 20:08:52
<Modo>
Ca se barre en sucette là... C'était quoi la question ?
Merci d'être clair et précis pour obtenir de l'aide...
</Modo>


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 07 Août 2005 à 10:13:23
Citation de: Perfect Slayer
<Modo>
Ca se barre en sucette là... C'était quoi la question ?
Merci d'être clair et précis pour obtenir de l'aide...
</Modo>
Pour essayer d'etre clair :
- ca sert a quoi une table dans une bdd ? ( du au faite de la présence de phpmyadmin ) pour moi maintenat c'est résolu .( le reste de ce que j'ai dit était en rapport avec ca ).
-La premiere question demandait de l'aide pour un espace membre par popop .

Moi j'ai créé un script d'inscription mais celui de connexion du membre ne marche pas :

Code:
<?
//j'inclue les parametres de connexion a la bdd
include ('http://site.free.fr/commun/config.php');

//j'enleve les caractères html et php aux entrées
$login = strip_tags ( $login );
$pass = strip_tags ( $pass );

//verification présence login /pass
if ( $login && $pass )
{
//je cherche dans la bdd les données correspondant
$db = mysql_connect ( $serveur, $user, $password);
@mysql_select_db($basename, $db);
$sql = "SELECT * FROM `membres`
WHERE login='.$login' AND pass='.$pass'";
$req = @mysql_query ( $sql );
$data = @mysql_fetch_array ( $req );

if ( $data['login']== $login && $data['pass']==$pass )
{
echo '<a href="http://site.free.fr/membres.htm" >Membres</a>';
}
?>
J'ai créé 2 script de connexion aucun ne marche , un chtit coup de main please ( pas une claque ;) )


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 07 Août 2005 à 17:09:30
Bah une base SQL sans table de données... C'est comme une feuille vierge. La base SQL marche grace au serveur et apres, il y a plusieurs tables dessus ou tu peux enregistrer tes données (les tables contiennent les données pouvant être enregistrées et leur format)

fait le strip_tags apres la déclaration de la variable.. sinon tu risques d'avoir une erreur s'il essaye de faire strip_tags sur une fonction qui existe pas (ou sinon utilise l'arobase)

Retire les arobases pour les fonctions SQL et fait une détection d'erreur avec la fonction or die()

t'es sur que la concaténation de tes 2 vars se fait bien ? (ca m'a l'air fait à l'arrache... Des points n'importe ou.. etc..)

Et puis le meilleurs pour la fin, il te manque une accolade à la fin de ton script (celui de ton premier if).

refais déjà tout ca et on vera ce que ca donne apres oki ? Bonne chance si tu débutes !


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 07 Août 2005 à 19:11:10
merci de tes conseil Perfect Slayer , je  vais les suivre , et les imprimés pour reflechir a tout ca cette nuit :P

Citation
t'es sur que la concaténation de tes 2 vars se fait bien ? (ca m'a l'air fait à l'arrache... Des points n'importe ou.. etc..)
Oué un peu quand meme .  Pourtant sur les bases d'un livre .Pour ce qui est de la concaténation , on m'a dit que ca ameliorer la sécurité , est-ce vrai ?

Citation
refais déjà tout ca et on vera ce que ca donne apres oki ? Bonne chance si tu débutes !
Merci , et effectivement je débute , j'ai un livre ( comme dit un poil plus haut ) qui est vraiment mauvais , le gars n'explique pas vraiment ces script et n'explique rien a coté de ca . C'est du boulot d'essayer de faire ca , et je pense que je vais vidr la cartouche de mon imprimante :shock:

Petite précision a quoi sert les arobases a executer la requete sans forcement lui attribuer de variable ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 08 Août 2005 à 10:34:55
Bah la concaténation (dans ton cas), c'est le fait de passer des variables dans une string (chaine de caractères). Maintenant pour la sécurité, la concaténation en elle même n'a aucun rapport. C'est plus comment tu la fais que le fait de le faire (si tu vois ce que je veux dire... par exemple, il est préférable de faire :
Code:
$var = "bibi";
...
$rq = "SELECT pass FROM membres WHERE pseudo = '".$var."'";

à ca :

$var  = "bibi";
...
$rq = "SELECT pass FROM membres WHERE pseudo = $var";
Pourquoi ? Tout simplement pour prévenir des injection de code (dans ce cas-ci, injections SQL).

Maintenant les arobases, pour faire simple, ca indique à PHP de ne pas afficher une erreur s'il en arrive une.

Exemple :

@echo $var;

Si $var est définie, pas d'erreur. Si elle n'existe pas, normalement tu as le droit à une erreur  comme quoi il est pas possible pour PHP d'appeler cette variable. Or l'arobase fait que le script n'affiche pas d'erreur et continu (apres selon ton niveau, tu peux reconfigurer le serveur pour qu'il arrete un script ou non en fonction du niveau des erreurs rencontrées)

Et pourquoi mysql_select_db n'est pas mit dans une variable ? Parce que dans ce cas ci tu n'en as pas besoin. Il doit certainement renvoyer true si tout ce passe bien et false si ca se passe mal. Ca sert à faire des détection d'erreurs. Donc dans ton cas inutil. Et bien sur, tu peux utiliser des fonctions sans les passer dans des variables obligatoirements (comme echo ou print).

Voilà, j'espère que je t'ai éclaircit un peu... :/


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 08 Août 2005 à 10:39:52
Citation
Voilà, j'espère que je t'ai éclaircit un peu... hmm
Un peu !!! en une réponse tu m'a éclaircis et appris des trucs alors que dans un bouquin de + de 370 pages j'ai rien compris et rien appris .

DONC MERCI

Edit :
encore 2-3 chtites question :
Pour la connexion du membre , je peux utiliser mes variables du formulaires et non les GET et POST , d'ailleurs ceci ne pourrait pas avoir des problemes pour la sécurisation ( buffer overflow ...) ? Donc vaut mieux que j'utilise quoi ?

En faite j'avais un probleme au niveau de mon include pour les valeurs du serveur user pass sur la bdd !!! je les mets dans le script php et voila que ca marche , pourtant en incluant les parametres dans le script de connexion a partir d'un autre script cela ne devrait pas marcher ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 08 Août 2005 à 16:33:27
Code:
//j'enleve les caractères html et php aux entrées
if ($pseudo_c != NULL AND $pass_c != NULL) //S'ils sont pas vident
{
$login = strip_tags ( $login_c );
$pass = strip_tags ( $pass_c );

//je cherche dans la bdd les données correspondant

$db = mysql_connect ( $serveur, $user, $password)OR die ('Connexion impossible');
mysql_select_db($basename, $db)OR die ('base inexistance ou non joignable');
$req = mysql_query( "SELECT * FROM `membres`WHERE login='.$login' && pass='.pass'");
while ( $rec= mysql_fetch_array ($req))
{
$login= $rec['.$login'];
$pass= $rec['.$pass'];
echo "login $pass";
}
}
?>
Quand j'execute ce code , il me donne une page blanche , c'est normal ?
Vaut mieux faire une boucle en if a la place du while ou pas ?  La base de donnée est intelligente pour prendre le ogin qui va avec le pass ou pas ? Le tableau sert a quelque chose ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 09 Août 2005 à 19:43:41
Citation de: Comtezero
Pour la connexion du membre , je peux utiliser mes variables du formulaires et non les GET et POST , d'ailleurs ceci ne pourrait pas avoir des problemes pour la sécurisation ( buffer overflow ...) ? Donc vaut mieux que j'utilise quoi ?
Bah pour récupérer les variables d'un formulaire, il faut passer par le super globla $_POST[]... Donc comme ça la question est réglée.

Citation de: Comtezero
En faite j'avais un probleme au niveau de mon include pour les valeurs du serveur user pass sur la bdd !!! je les mets dans le script php et voila que ca marche, pourtant en incluant les parametres dans le script de connexion a partir d'un autre script cela ne devrait pas marcher ?
Bah si normalement ca marche à part si les varaibles ont pas le meme nom (genre l'include te donne la var $var1 et que dans ton script tu veuilles $var2 mais j'pense pas que t'es fait ce genre d'erreur... :s) ou si l'include ne se fait pas... (genre mauvais chemin d'acces au fichier..)

Important ! Le fichier à inclure (s'il doit passer des variables) doit etre un fichier PHP donc avec les tags PHP <? et ?> en début et fin :wink:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 09 Août 2005 à 20:13:39
Citation de: Comtezero
Code:
//j'enleve les caractères html et php aux entrées
if ($pseudo_c != NULL AND $pass_c != NULL) //S'ils sont pas vident
{
$login = strip_tags ( $login_c );
$pass = strip_tags ( $pass_c );

//je cherche dans la bdd les données correspondant

$db = mysql_connect ( $serveur, $user, $password)OR die ('Connexion impossible');
mysql_select_db($basename, $db)OR die ('base inexistance ou non joignable');
$req = mysql_query( "SELECT * FROM `membres`WHERE login='.$login' && pass='.pass'");
while ( $rec= mysql_fetch_array ($req))
{
$login= $rec['.$login'];
$pass= $rec['.$pass'];
echo "login $pass";
}
}
?>
Quand j'execute ce code , il me donne une page blanche , c'est normal ?
Vaut mieux faire une boucle en if a la place du while ou pas ?  La base de donnée est intelligente pour prendre le ogin qui va avec le pass ou pas ? Le tableau sert a quelque chose ?
Ne fait pas : $pseudo_c != NULL mais empty($pseudo_c)
On évite le SELECT * ... car ça utilise des ressources pour rien... Fait plutot : SELECT pseudo,pass

Ensuite, si tu fais un mysql_fetch_array, tu obtiens un tableau de tous les membres ont ce log et ce pass. Donc pour que le login soit bon, il faut qu'il y en ait un. Alors à ce moment là, pour vérifier si le log est bon : tu comtes les entrées de ce tableau avec la fonction count();. Si elle te renvoit 0, alors le log a échoué, si elle te renvoit 1 alors le log et bon et si elle te renvoit plus, alors il y a plussieurs utilisateurs avec le meme pass et meme code... :s

Sinon, on ne fait pas : $rec['.$login']; mais $rec['login'] ce qui correspond à l'index login de la matrice $rec qui correspond aux résultat de la requete SQL... J'espère que tu te perds pas trop.. .Mais si tu mets la var $login, ca cherche l'index de la matrice qui a pour nom le contenu de la variable $login.

Voilà, bonne chance pour la suite !! ++


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 09 Août 2005 à 20:13:49
Citation
Bah si normalement ca marche à part si les varaibles ont pas le meme nom (genre l'include te donne la var $var1 et que dans ton script tu veuilles $var2 mais j'pense pas que t'es fait ce genre d'erreur... :s) ou si l'include ne se fait pas... (genre mauvais chemin d'acces au fichier..)

Important ! Le fichier à inclure (s'il doit passer des variables) doit etre un fichier PHP donc avec les tags PHP <? et ?> en début et fin icon_wink
Béh c'est ca que je trouve bizarre les variables portaient le meme nom il y avait bien les <? ?>


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 09 Août 2005 à 20:16:57
et l'include se fait bien ? Genre mets un echo "bipbip"; dans le fichier à include et regarde s'il s'affiche bien ? (je sais, c'est un peu barbare comme méthode mais j'pense pas que je vais commencer les cours sur le debugging avec toi maintenant !)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 09 Août 2005 à 20:18:24
mouarff des cours au niveau ou j'en suis , faudrait encore que j'ai quelque chose a débugger .:lol:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 10 Août 2005 à 06:23:27
Code:
<?
    /* Chargement de la configuration */
    require("config.php");

    /* Récupération des variable */
    $login = $_POST["login"];
    $pass = $_POST["pass"];

    /* Connection à la base de données */
    $db_link = mysql_connect($sql_server,$sql_login,$sql_pass);
    if(!$db_link) {
        die("Connexion impossible à la base de données : " . mysql_error());
    }

    /* Selection de la base de données */
    $db_selected = mysql_select_db($sql_bdd,$db_link);
    if(!$db_selected) {
        die("Impossible de selectionner la base de données : " . mysql_error());
    }

    /* Identification */
    $requete = mysql_query("SELECT * FROM membre WHERE login=\"$login\" AND pass=\"$pass\"",$db_link);
    if(!$requete) {
        die("Impossible d'executer la requete : " . mysql_error());
    }

    /* Vérification du nombre de resultat */
    if(mysql_num_rows($requete)==1) {
    /* Création de l'id */
        $taille = 20;
        $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
        $id = "";
        srand(time());
   for ($i=0;$i<$taille;$i++) {
            $id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
        $requete = mysql_db_query($sql_bdd,"UPDATE membre SET id=\"$id\" WHERE login=\"$login\" AND pass=\"$pass\"",$db_link);
        header("Location:index.php?id=$id");
    } else {
        header("Location:erreur_connection.htm");
        exit;
    }
    mysql_close($db_link);


?>
Voila un petit script home made pas du tout fini, mais il y a qd meme la base.
Contrairement au script de Comtezero, celui la verifie le nombre de reponses que renvoi la requete SQL avec mysql_num_rows()
Ca evite d'utiliser une boucle et de consomer de la memoire pour rien =)
Voila j'espere que ca peut vous aider :)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 10 Août 2005 à 13:02:15
merci de ce petit script , j'en avais fait un avec la fonction mysql_num_rows() mais je comprend pas pourquoi il faut mettre 1 car cette fonction et dans mon livre mais il n'explique pourquoi ca renvoie 1 qu'est-ce que ca doit renvoyer sinon ? 1=true et 0=false ou pas ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 10 Août 2005 à 18:28:15
mysq_num_rows() donne le nombre de reponses que renvoi la requete SQL.
Si elle est = 0, c soit un mauvais login, soit un mauvais password.
Si elle est = 1, tout est bon.
Si elle est > 1, il y a un gros pb on va dire lol. C'est soit il y a 2x le meme enregistrement dans la table, soit on essaye les injections sql ;)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 10 Août 2005 à 18:32:48
Bah y a quand meme quelques petites choses à redire Bricou...
Tu traites pas les superglobaux POST.
Ton code est vulnérable aux injection. (sythaxe de la requete)
Tu veux éviter la boucle pour la ressource mais tu en gache inutilement :

Code:
    /* Connection à la base de données */
    mysql_connect($sql_server,$sql_login,$sql_pass) or die("Connexion impossible à la base de données : " . mysql_error());
a la place de :

Code:
    /* Connection à la base de données */
    $db_link = mysql_connect($sql_server,$sql_login,$sql_pass);
    if(!$db_link) {
        die("Connexion impossible à la base de données : " . mysql_error());
    }
PS. a quoi sert ton id ?? :?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 11 Août 2005 à 06:12:45
Citation
Voila un petit script home made pas du tout fini, mais il y a qd meme la base.
;)
L'id me sert d'identifiant. Si la personne à le meme id et le meme pseudo que ceux de la table, alors il est identifié.
Code:
if ( $data['login']== $login && $data['pass']==$pass )
{
echo '<a href="http://site.free.fr/membres.htm" >Membres</a>';
}
Ici tu as aucune protection. Qui dit au site que celui qui va sur la page membres.htm est bien identifié ?
Enfin de compte, on verifie seulement si le login et le pass correspondent bien, et si c'est juste, on te donne un lien vers la page membres.
Autant aller directement sur la page membres ;)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 11 Août 2005 à 10:36:20
Bah il en est pas encore au mécanisme de session ou de cookie...

Et sinon pourquoi tu utilises pas l'ID de ta BDD ? La clé primaire que tu as du mettre en autoincrément (ne serait-ce apres que pour lier des tables ensembles... :/)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 11 Août 2005 à 10:50:00
la clé défini pendant l'installation en plus du pass et du login , mais ca me servirait a quoi si ils sont bons ? l'utilisateur ne les connaitras pas . En effet j'en suis pas encore au session , deja que c'est la lutte pour une petit script de connexion , ca va etre la guerre pour les sessions .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 11 Août 2005 à 10:55:15
L'id ici c'est l'id de la session, pas l'id du membre en question.
D'ailleurs, comment on utilise l'auto-incrementation avec une requete INSERT :?:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 11 Août 2005 à 10:58:45
oui je l'ai d'ailleurs défini mors de l'inscription du membre mais elle servirait a quoi si il rentre un pseudo et pass ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 11 Août 2005 à 11:46:24
Je parle bien de l'id de session et pas de l'id du membre que tu donnes lors de l'inscription.
Cet id me permet de savoir si le client qui regarde telle page est identifié.

http://www.bricou.org/webjeff_espace_membre_v1.11.zip
Dedans y a un script d'inscription, d'identification et de modification je croix.
Ca pourra surment t'aider :)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 11 Août 2005 à 14:18:53
Je crois pas qu'il soit pres à ce qu'on lui montre le mécanisme de session ou meme de cookie. (rien que l'idée de headers je sais pas si ca va bien passer...)

Sinon, pourquoi tu te sers pas de l'ID de ta table SQL ? (le clé primaire de l'enregistrement ?)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 11 Août 2005 à 17:41:10
Citation
Sinon, pourquoi tu te sers pas de l'ID de ta table SQL ? (le clé primaire de l'enregistrement ?)
A quoi ca sert faut bien une authentification avec mot de passe , si dans le cookie aprés
y a qu'une ID c'est plus facile a le créér avec hkit qu'un mot de passe et login existant ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 11 Août 2005 à 19:07:48
l'ID sert juste à savoir de quel membre il s'agit.. Pas s'il est connecté. Et tu ne stoques pas de password dans un cookie ! (tres dangereux ! C'est déjà pas top pour le pseudo..)

PS : en plus, l'ID de la table permet de faire des liaisons entre différentes tables pour un meme membre... :wink:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 11 Août 2005 à 19:14:35
**No slang** que ca me gave :
Citation
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/2/b/zone2test/connexion.php on line 16
Je refais un script dans tout les cas le coco m'affiche une belle page blanche ( ca me fait une belle jambe ) soit je modifie et la il me pond cette erreur .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 11 Août 2005 à 19:32:00
Comtezero, ta requete sql n'est pas bonne, rajout un or die("machin" . mysql_error()); apres ta requete. Tu dois utiliser une mauvaise table ou quelque chose comme ca.

Perfect Slayer, on ne parle pas de l'id créé lors de l'inscription d'un membre, mais d'un id créé a chaque session du membre.
Un id unique par membre qui lui sert d'identification par rapport au site.
C'est ce que contient le cookie PHPSESSID du site de NC.


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 11 Août 2005 à 20:05:16
j'ai beau rajouté le sql error , les variables sont bonnes , mais j'ai toujours une belle page blanche alors que je devrais avoir un message .


Edit : rhhaa ca avance un peu je n'utilise pas les http_post car dans mon bouquin il explique pas et sur internet je n'ai rien trouvé de convinquant , j'essayerai un peu plus tard comme meme , la je suis maintenant dans le meme cas d'avant ou meme avec le bon login/pass ca m'accepte pas ( c pour ca que je ne comprenais pas le num_rows ).

Il retourne toujours 0 :shock:
Cela ne pourrait il pas venir de la concatenation ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 11 Août 2005 à 20:51:27
http://php.benscom.com/manual/fr/language.variables.external.php pour $_post et $_get

Sinon pour mysql_num_rows, si il te retourne tjrs 0, c'est que peut etre que tu interroges la mauvaise table, ou que tu cherches un champ qui n'existe pas.


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 11 Août 2005 à 21:04:24
Citation de: Bricou
Un id unique par membre qui lui sert d'identification par rapport au site.
C'est ce que contient le cookie PHPSESSID du site de NC.
Bah j'vois pas l'utiliité de ton code...
le PHPSESSID est généré tout seul...
et un ID unique pour faire un lien avec le site, j'trouve qu'il y a rien de mieux que la clé primaire.. :?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 12 Août 2005 à 08:50:43
Citation
Sinon pour mysql_num_rows, si il te retourne tjrs 0, c'est que peut etre que tu interroges la mauvaise table, ou que tu cherches un champ qui n'existe pas.
Pourtant il existe , il sont dans phpmyadmin , lors de l'inscription il n'y a pas d'erreur , dans la connexion je me connecte a la bonne table avec les bons champs mais ca me renvoie 0 , je fais chercher du coté de la page d'inscriptions .

Non en faite le probleme viens bien de mon script de connexion , je lui dit a certains endroit de me renvoyer les variables login et pass et il me renvoie toujours juste le login comme si il n'y avait pas de pass , cela pourrait peut-etre venir du "AND" .

Quoique ca doit venir de mon script d'inscriptions car apres verification sur phpmyadmin il n'y a personne d'inscrit pourtant avec les test ils devraient ( enfin je devrais ) etre au moins  10 !!! :shock:

//test pour voir s'il n'y a pas un champ de vide
if(empty($login_i) OR empty($pass_i) OR empty($email_i))
{
echo 'Vous avez laissez un champ vide ';
echo'<a href="http://site.free.fr/inscriptions.htm" target="_blank">
Inscriptions</a>';
}

//test entre les 2 mots de passe pour qu'ils soient identiques
elseif ($pass_i!=$pass2_i)
{
echo 'vous avez fait une erreur en tapant votre mot de passe';
echo'<a href="http://site.free.fr/inscriptions.htm" >
Inscriptions</a>';
}

//insertion des données dans mysql
else
{
$login = $HTTP_POST_VARS['pseudo_i'];
$pass = $HTTP_POST_VARS['pass_i'];
$pass = $HTTP_POST_VARS['mail_i'];

$db = mysql_connect ( $serveur, $user, $password)OR die ('Erreur de connexion' . mysql_error());
mysql_select_db($basename, $db)OR die ('base inexistance ou non joignable' . mysql_error()) ;
$sql=mysql_query("INSERT INTO membres('id','login','pass','email')VALUES ('','.$login','.$pass','.$email')" . mysql_error());

echo'Félicitations vous etes maintenant inscris en tant que ';
echo'<a href="http://site.free.fr/index.htm" >
Membre</a>';
echo"$login $pass $email";
}
?>

Le code est lourd est surement pas trés bien developpé ( je verrai pour la sécu plus tard ) le probleme c'est que dans tout les cas il renvoie que c'est bon mais ne test pas si il y a des erreurs dans mon script je n'en voit pas .:cry:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 12 Août 2005 à 11:04:27
SI tu veux, envoie moi tout tes fichier (2 normalement ?) sur mon mail. Je vais tester ca pour te dire ce qui va pas (parce que ca va finir par te dégouter). ++


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 12 Août 2005 à 11:29:20
Code:
$login = $HTTP_POST_VARS['pseudo_i'];
$pass = $HTTP_POST_VARS['pass_i'];
$pass = $HTTP_POST_VARS['mail_i'];
utilise $login = $_POST["pseudo_i"]; si tu travailles sur PHP4

Et il y a un petit probleme d'ordre dans ton code. Qd ton script fait les test sur $login et autre, ces variables sont vides. Ton script leur attribu une valeur qu'apres le else...


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 12 Août 2005 à 16:23:27
Citation de: Perfect Slayer
SI tu veux, envoie moi tout tes fichier (2 normalement ?) sur mon mail. Je vais tester ca pour te dire ce qui va pas (parce que ca va finir par te dégouter). ++
Je te l'ai envoyé  .
merci


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 12 Août 2005 à 20:37:40
J't'ai renvoyé ca. Tout juste avant que je sorte !! Allez maintenant la nuit et à moi !! :twisted:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 13 Août 2005 à 10:57:46
je te remercie pour ce que tu as fait , maintenant je vais aller comparer ce que j'avais fait et tes modifications pour comprendre ce qui n'allait pas dans ce que je faisais . Merci pour la rapidité et merci pour m'avoir aidé .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 16 Août 2005 à 10:22:11
vaut mieux utiliser le mécnisme des sessions ou des cookies ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 16 Août 2005 à 10:37:18
Euh... Session ! Parce que les cookies sont gardé sur la machine du visiteur donc récupérable... (imagine que tu stoques le pass..)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 16 Août 2005 à 14:22:36
ok , je vais etudier ca alors .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Bricou le 16 Août 2005 à 16:25:47
http://cyberzoide.developpez.com/php4/faqsession/

bonne lecture ;)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 17 Août 2005 à 12:51:56
moué pas convainquant tout ca .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 17 Août 2005 à 14:28:37
cool le systeme de session , j'arrive a aligner 6 warning , d'un coup !
J'ai un probleme avec ca : session.save_path = /tmp , il faut changer le droit d'acces lecture mais comment je modifie ca ? apres j'ai des erreurs de chemin de repertoire !!!

Code:
Warning: session_start(): open(/var/www/free.fr/2/b/zone2test/sessions/sess_91b202d9a6f2a7e8a28f6b9345a1f2d3, O_RDWR) failed: No such file or directory (2) in /var/www/free.fr/2/b/zone2test/connexion.php on line 32

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/2/b/zone2test/connexion.php:24) in /var/www/free.fr/2/b/zone2test/connexion.php on line 32

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/2/b/zone2test/connexion.php:24) in /var/www/free.fr/2/b/zone2test/connexion.php on line 32

Warning: Unknown(): open(/var/www/free.fr/2/b/zone2test/sessions/sess_91b202d9a6f2a7e8a28f6b9345a1f2d3, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/www/free.fr/2/b/zone2test/sessions) in Unknown on line 0


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 17 Août 2005 à 18:07:17
Bon déjà, tu peux pas enregistré de variables de session si le buffer de sorti a déjà été vidé vers le browser... (autrement dit, si t'as déjà affiché qqchose à l'écran)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 17 Août 2005 à 20:10:36
ok merci je vais aller enlever le cthit echo alors .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 19 Août 2005 à 19:02:20
1. crée un dossier sessions a la racine de ton site (c'est marqué dans la faq de free :-°)
2. les session_register et session_is_registred sont obsolètes. Il faut utiliser la variable super-global $_SESSION.


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 24 Août 2005 à 13:56:53
a bé oué tout de suite ca marche mieux :rolleyes:
merci .

Maintenant par contre je sais pas vraiment quoi codé en php et qui peut se trouver sur un site .:(


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Folcan le 24 Août 2005 à 17:56:44
Un livre d'or, un forum, une chatbox...ya le choix ;)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 24 Août 2005 à 20:37:11
roflll une chatbox bien vu , un livre d'or , pfiiou , un forum me faudrait au moins 10 vies !!!! lol


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Doli le 24 Août 2005 à 22:12:52
surtout que qd tu vois qu'invision ou phpbb laisse des failles monumentales dans leur code alors que ça fait plusieurs années qu'ils bossent dessus, ça a de quoi te décourager! :wink:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Folcan le 25 Août 2005 à 00:41:12
ouai mais fo commencer petit pour un forum, pas de pm, pas de sondage, juste un envoi et affichage de message et puis l'agrementer au fur et a mesure.

NC ne s'est pas construit en un soir, c'est un enorme projet qui a mis du temps a arriver, a la base juste des challenges JS, et meme pour vous dire, c'etait en html et il fallait m'envoyer les reponses par email pour que je mete a jour la page de classement manuellement. Aucune gestion de membre, pas de forum, pas darticle etc...


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Doli le 25 Août 2005 à 01:17:29
A l'ancienne quoi LOL
Mais tu as tout à fait raison, ce genre de choses se paufinnent petit à petit, le plus dur étant de se lancer! Après on se laisse facilement prendre au jeu de la prog :wink:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 25 Août 2005 à 12:25:07
Citation de: Folcan
ouai mais fo commencer petit pour un forum, pas de pm, pas de sondage, juste un envoi et affichage de message et puis l'agrementer au fur et a mesure.

NC ne s'est pas construit en un soir, c'est un enorme projet qui a mis du temps a arriver, a la base juste des challenges JS, et meme pour vous dire, c'etait en html et il fallait m'envoyer les reponses par email pour que je mete a jour la page de classement manuellement. Aucune gestion de membre, pas de forum, pas darticle etc...
rofl ca a sacrément changer depuis , la tu dois bien etre content de ne plus le faire =D


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 30 Août 2005 à 15:43:58
rofl en faite il m'accepte jamais dans ma session , je ne sais pas pourquoi =D , c cool d'avoir une session membre inaccessible pour tous :shock:


Code:
<?

If (Session_is_Registered("pseudo") AND ("passm")){

?>
CEla ne devrait pas suffir ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 31 Août 2005 à 22:07:49
n'utilise pas session_is_registred, c'est pas bien :p

utilise if (isset($_SESSION['pseudo']) AND isset($_SESSION['passm'])) {


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Doli le 31 Août 2005 à 23:05:41
d'accord avec kokotchy, session_is_registered c'est caca! c'est mal de l'utiliser! :lol:
non mais sans rire, sa solution est effectivement plus propre et a plus de chances de bien fonctionner!


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 31 Août 2005 à 23:38:43
ok je test ca dés que j'ai le temps .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Luther le 01 Septembre 2005 à 14:36:14
Bricou, pour calculer ton id, ya cette fonctionne qui existe
 $id = str_shuffle('abcdefghijklmnopqrstuvwxyz1234567890');

enfin la tienne va aussi sauf qu'elle est plus longue :P


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 03 Septembre 2005 à 19:21:39
Code:
session_start () ;			
$_SESSION['pseudo'] = 'login';
$_SESSION['passm'] = 'pass';
header ("location: http://zone2test.free.fr/membres/membres.php");
}
Else
{
Echo "Si vous ne quittez pas cette page immédiatement elle va s auto-détruire dans 5sc";
}
Ici j'ai essayé plusieurs possibilité au niveau de login et pass avec  des "" ou $ et des "" mais ca ne marche pas .

Code:
<?
if (isset($_SESSION['pseudo']) AND isset($_SESSION['passm'])) {
?>
Ca me renvoie toujours sur l'index comme ca doit le faire dans le cas ou ca n'est pas bon avec vous une idée pour m'aider ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 03 Septembre 2005 à 20:39:55
montre tout ton code car c'est un peu bizarre d'avoir des bouts de codes comme ca ;)


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 03 Septembre 2005 à 20:50:24
Il manque juste les parametres avec le pass et user :P c'est le connexion.php :
Code:
//j'enleve les caractères html et php aux entrées
If (Empty($_POST['login_c']) or Empty($_POST['pass_c'])) //S'ils sont pas vident
{
Echo 'un ou les deux champs sont vides mon coco';
}
Else
{
$login = Strip_Tags($_POST['login_c']);
$pass = Strip_Tags($_POST['pass_c']);
//je cherche dans la bdd les données correspondant
$db = Mysql_Connect($serveur,$user,$password)OR Die('Connexion impossible'.mysql_error());
Mysql_Select_Db($basename,$db)OR Die('base inexistance ou non joignable'.mysql_error());
$req = Mysql_Query("SELECT login,pass FROM membres WHERE login='".$login."' AND pass='".$pass."'");
$rec = Mysql_Num_Rows($req);
If ($rec== 1)
{
//debut de la session du membre
session_start () ;
$_SESSION['pseudo'] = '$login';
$_SESSION['passm'] = '$pass';
header ("location: http://zone2test.free.fr/membres/membres.php");
}
Else
{
Echo "Si vous ne quittez pas cette page immédiatement elle va s auto-détruire dans 5sc";
}

}
?>
maintenant le membres.php , je vais pas tout mettre je n'ai pas inclue la page je met tout sa forme dedans
Code:
<?
if (isset($_SESSION['pseudo']) AND isset($_SESSION['passm'])) {
?>
la page
<?
}
else
{

header ("location:http://zone2test.free.fr/index.php");

}
?>
voila


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 03 Septembre 2005 à 21:12:36
$_SESSION['pseudo'] = '$login';
$_SESSION['passm'] = '$pass';
ca c'est pas correct ;)

$_SESSION['pseudo'] = $login;
$_SESSION['passm'] = $pass;
c'est mieux comme ceci :)

ensuite dans membres.php, il faut faire un session_start(); que tu n'as pas fait.


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 03 Septembre 2005 à 21:19:20
toujours pô .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 03 Septembre 2005 à 21:58:48
fait un print_r($_SESSION); et regarde si les valeurs sont définies.


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 04 Septembre 2005 à 10:25:22
rofl vu ce qu'il retourne c'est grosso modo normal que ca marche pô :
               
                                                     Array ( )


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: kokotchy le 04 Septembre 2005 à 20:24:37
bizarre, les variables devraient existées.
Tu as naturellement fait le print_r($_SESSION); apres le session_start ?


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 05 Septembre 2005 à 19:02:05
je l'ai mis dans la boucle du else , pour quand ca ne marche pas .

Je viens de faire echo $_SESSION['pseudo'] ; avant mon header qui redirige vers la page membre ( avant j'avais mis un include mais ca ne marchait pas non plus ) et dans la page connexion il a en memoire les variables de la session .


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 06 Septembre 2005 à 15:13:36
Je vais finir par penser que les sessions marchent pas chez free :evil:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: Perfect Slayer le 06 Septembre 2005 à 17:38:37
Citation de: Comtezero
rofl vu ce qu'il retourne c'est grosso modo normal que ca marche pô :
               
                                                     Array ( )
Bah normal... $_SESSION est un super global.. Met l'index avec.. :wink:


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 06 Septembre 2005 à 19:49:43
l'index c'est la variable ? du style :
Code:
$_SESSION['pseudo'] = $login ;
Ou c'est un truc completement a part  , du style l'index de la page ? je ne comprends pas :(

merci


Titre: [PHP] Création d'un espace membre (question et aide)
Posté par: comtezero le 07 Septembre 2005 à 19:05:09
Dans l'index ca marche maintenant , mais si je quitte le site et reviens je peux accéder la page protégé mais pas en quittant firefox .