Faire des sessions PHP sur un compte gratuit Free - PHP - Programmation
Marsh Posté le 29-03-2005 à 17:04:36
créer un rep /sessions/ à la racine
Marsh Posté le 29-03-2005 à 17:06:28
Ouais, mais ça je l'ai fait (j'ai précisé dans mon message). Et ça n'a pas fonctionné.
Marsh Posté le 29-03-2005 à 17:08:27
Code :
|
Marsh Posté le 29-03-2005 à 17:12:32
Y'a pas besoin de faire appel à la db ?
Si je veux allouer des logins et des mots de passe, je fais comment ?
Marsh Posté le 29-03-2005 à 17:13:30
mahuf a écrit : Y'a pas besoin de faire appel à la db ? |
Les sessions n'ont rien à voir avec la db.
Marsh Posté le 29-03-2005 à 17:19:14
Tu crées une DB avec un champ id, login et mot_de_passe et tu compares les données entrées par l'utilisateur et celles de la DB. Ensuite si tout est correct, tu crées une session propre à l'utilisateur avec session_start(); ...
Marsh Posté le 29-03-2005 à 17:23:37
skeye a écrit : Les sessions n'ont rien à voir avec la db. |
enfin ca dépend heinnn.
les données de sessions peuvent être stockées en db plutôt qu'en fichier texte mais par défaut c'est pas le cas
Marsh Posté le 29-03-2005 à 17:26:27
simogeo a écrit : enfin ca dépend heinnn. |
Fichtre!
Je découvre un truc...t'as un lien montrant ça?
Marsh Posté le 29-03-2005 à 17:28:35
http://fr2.php.net/manual/fr/funct [...] andler.php
Marsh Posté le 04-04-2005 à 22:37:00
skeye a écrit : Fichtre! |
Ben c'est le cas des forums justement, en PHPBB notamment, non ?
Justement, j'aimerais bien pouvoir faire un petit module de sessions qui fait appel aux DB ... faire appel à une DB je sais faire, écrire dedans aussi, mais ce sont ces *$&$*ù$& de sessions qui refusent de fonctionner correctement ... chuis maudit ! Z'auriez pas un exemple de truc qui marche ? Siouplait ^^.
Marsh Posté le 04-04-2005 à 23:25:46
mahuf a écrit : |
mahuf a écrit : Justement, j'aimerais bien pouvoir faire un petit module de sessions qui fait appel aux DB ... faire appel à une DB je sais faire, écrire dedans aussi, mais ce sont ces *$&$*ù$& de sessions qui refusent de fonctionner correctement ... chuis maudit ! Z'auriez pas un exemple de truc qui marche ? Siouplait ^^. |
Vu ce que t'as écris plus haut, je suis pas vraiement sûr que ce soit utile de commencer par ça
Commence déjà par tester ce qu'a donné Simogeo plus haut :
simogeo a écrit :
|
Marsh Posté le 05-04-2005 à 16:26:25
Lol, oui ça ça marche
Ce que je veux savoir, c'est comment faire appel à une variable stockée en DB pour la comparer avec une valeur postée. J'ai essayé avec des codes du genre
Code :
|
C'est là que ça plante. Quand je modifie les paramètres, soit il refuse de se connecter, soit il se connecte pour n'importe quelle valeur ... donc je sais pas vraiment quoi faire.
Marsh Posté le 05-04-2005 à 16:45:10
Commence d'abord à faire la différence avec le double quote " et le simple quote '.
Code :
|
L'exemple 1 est sûrment pas l'effet recherché.
L'exemple 2 apparaît correct mais ne permettra pas à la bdd de comprendre ta requête (un champ texte doit être délimité par des quotes (" ou '))
L'exemple 3 marchera mais vaut mieux pas prendre ce type d'habitude
L'exemple 4 est celui à suivre (et à bien assimiler)
Marsh Posté le 05-04-2005 à 16:51:06
J'avais même pas pensé à ça ... c'est sûr que echo '$var' et echo "$var" ça ne donne pas la même chose ! lol
Par contre je comprends pas pour 'la DB ne comprend pas ma requête' : tu veux dire que pour comparer le champ texte représenté par la variable, il doit être représenté impérativement entre guillemets ? Même si le serveur détecte qu'il a remplacé la valeur par une variable ?
PS : je savais pas qu'on pouvait faire comme l'exemple 3. Ca marche sans concaténation ???
Marsh Posté le 05-04-2005 à 16:52:47
Je rajoute ppour pas que tu t'emballes que le raisonnement est faux
Donne un $pseudo vide ou erroné avec un $mdp vide, ça passes...
Marsh Posté le 05-04-2005 à 17:00:45
mahuf a écrit : |
Ton serveur PHP, c'est une chose, ta BDD, c'est autre chose. Le lien qui leur permet de communiquer, c'est le mysql_query, qui fait que le serveur PHP fait une requête à ta BDD.
Bref, c'est comme ça, si tu fais une requête, pour que ta BDD puisse comprendre qu'il s'agit d'une chaîne, faut le lui dire (tout comme php), et ça ne s'applique pas quand le champ est de type entier.
Marsh Posté le 05-04-2005 à 17:01:55
Je viens de voir ça à l'instant ...
Hum ... il faut que je précise avec des conditions
if ($mdp != '' and $login != '')
ou ça ne marchera pas non plus ?
Whatever, j'essaye ^^.
Marsh Posté le 05-04-2005 à 17:06:54
Quand ça marche, t'essaiera aussi avec un pseudo du style :
pseudo = prout"'; echo $login,'-',$password,'
Marsh Posté le 05-04-2005 à 17:19:28
Pour la sécurité, on verra ensuite avec les addslashes ^^
Là il refuse carrément de se connecter ... il n'affiche jamais mon résultat voulu ... par contre il ne connecte pas n'importe qui (normal, personne ne se connecte ^^)
Marsh Posté le 05-04-2005 à 17:20:56
Balance ton "code"
Marsh Posté le 05-04-2005 à 17:28:19
Rhâââ, jamais ! Il fonctionnera ! Je vais me battre avec, mais ça va marcher ... grr !
Marsh Posté le 05-04-2005 à 17:29:35
Master p a écrit : Balance ton "code" |
mahuf a écrit : Rhâââ, jamais ! Il fonctionnera ! Je vais me battre avec, mais ça va marcher ... grr ! |
Fallait le prendre comme un "Fais péter ton code"
Marsh Posté le 05-04-2005 à 17:30:11
Master p a écrit : "Fais péter ton code" |
Code :
|
Marsh Posté le 05-04-2005 à 17:31:13
AAAAAAAh !!! D'ac ... lol.
Code :
|
Marsh Posté le 05-04-2005 à 17:31:58
Il y a des lignes inutiles :
- ligne 3 avec le bouton c'est juste une vérification pour contôler des trucs
Marsh Posté le 05-04-2005 à 17:45:11
Relis ton code bourdel
Ligne 7 : $pseudo = $_POST['pseudo'];
Ligne 14 : vérification sur $login
(je sais, c'est pas ça qui fait planter )
Marsh Posté le 05-04-2005 à 17:46:35
skeye a écrit :
|
L'usage des double quote est à proscrire pour une telle commande
Marsh Posté le 05-04-2005 à 17:46:39
Ah m.... heu, je veux dire désolé ^^.
C'est sûr que si on se sert du login de la db ...
Marsh Posté le 05-04-2005 à 17:49:14
Master p a écrit : Relis ton code bourdel |
Donc ça c'est fait ...
En passant, si le pseudo n'existe pas je fais quoi pour afficher à l'écran : le pseudo n'existe pas ? Parce que je peux pas mettre de else en face d'un while ...
Marsh Posté le 05-04-2005 à 17:49:18
Master p a écrit : L'usage des double quote est à proscrire pour une telle commande |
Marsh Posté le 05-04-2005 à 17:49:21
À quoi ressemble la table_classe ?
Quel est le résultat obtenu ?
Marsh Posté le 05-04-2005 à 17:53:10
Le résultat obtenu :
- si je mets un login qui existe + un mdp qui existe : il me met 'erreur de mot de passe'
- je je mets un login qui n'existe pas il n'affiche rien quel que soit le mot de passe
- je je mets un login qui existe avec un mdp qui n'existe pas il me met : erreur de mot de passe
La table table_classe est :
pseudo, nom, prenom, password, surnoms, email, ID
varchar/varchar/varchar/varchar/varchar/varchar/tinyint
Marsh Posté le 05-04-2005 à 18:04:19
1/ T'es sûr du contenu de ta variable $mdp ? affiche là.
2/ Pourquoi utiliser un while puisque tu n'attend qu'un seul résultat ?
3/ Ça saute aux yeux qu'il y a une requête plus rapide et qui demande moins de traitement. Creuse toi un peu le cervelet.
Marsh Posté le 05-04-2005 à 19:25:31
Master p a écrit : 2/ Pourquoi utiliser un while puisque tu n'attend qu'un seul résultat ? |
Exaaaaaaaaact ...
Sinon je me creuse le cervelet ^^
Marsh Posté le 05-04-2005 à 19:32:19
Ouais pour le creusage de cervelet je pense à un petit truc :
je peux mettre un
'SELECT * FROM table_classe WHERE pseudo = "'.$pseudo.'" AND password = "'.$mdp.'"';
ça marcherait peut-être ça non ?
Marsh Posté le 05-04-2005 à 19:46:22
Ca recommence ...
je suis sûr du résultat que j'ai obtenu pour la variable, mais avec ce code :
Code :
|
n'importe qui peut se connecter.
Marsh Posté le 05-04-2005 à 20:05:52
Et ça maaaaaaaaaaaaaaaarche !!!
Il suffit de placer devant l'instruction echo 'vous êtes connecté' à la ligne 17 la petite ligne :
if (mysql_num_rows($req)>0) {echo 'vous êtes connecté';}
else {echo 'vous n\'êtes pas connecté';}
et ça marche.
Merci beaucoup Master p, pour ton assistance et ta patience, et surtout pour ta méthode qui me permet d'apprendre par moi même ...
Marsh Posté le 05-04-2005 à 20:13:18
De rien, si j'ai des problèmes de php, je viendrais te voir
(Dingue ça, on me découvre des vertus pédagogiques )
Marsh Posté le 29-03-2005 à 17:01:53
Bonjour à tous,
N'y a-t-il pas des trucs à savoir pour créer des sessions et les gérer sur un compte free avec du PHP ? Je sais que les variables globales sont à ON (ce qui peut poser de petits problèmes de sécurité certes mais là n'est pas le problème). Je sais qu'il faut créer un répertoire spécial pour les sessions nommé /sessions mais je voudrais obtenir un code "tout cuit" pour parvenir à faire une session ...
J'ai recherché sur divers site, mais la méthode semble toujours poser problème : Free semble incapable de stocker correctement les données. Toutefois, je sais que c'est possible (j'ai déjà installé des logiciels comme phpBB sur des comptes Free) mais je n'arrive pas à créer un code pour des sessions "toutes simples" ... z'auriez pas un truc SVP ?
Merci d'avance.
Message édité par mahuf le 29-03-2005 à 17:02:13