problème avec session_start() - PHP - Programmation
Marsh Posté le 28-03-2008 à 10:31:22
verifie la creation du fichier session, si t as les droits d ecritures dans lequel le fichier va se sauvegarder, en cas de prob tu peux specifier toi meme le repertoire dans lequel les fichiers sessions vont s enregistrer avec session.save_path() (a appeléavant session_start() ).
Marsh Posté le 28-03-2008 à 11:20:28
En attendant plus de renseignements sur ton erreur, 2/3 commentaires :
1- attention au malin qui va créer le pseudo "toto<script type="text/javascript">alert("i pwnz teh worldz" )</script>" ==> utiliser htmlentities
2- tu devrais stocker le hash de tes mots de passe, pas les mdps directement
3- pas sur que ce soit une bonne idée d'annoncer à qqun qu'il a un bon login et un mauvais mdp
Marsh Posté le 28-03-2008 à 11:48:06
rengzehn a écrit : 3- pas sur que ce soit une bonne idée d'annoncer à qqun qu'il a un bon login et un mauvais mdp |
Sur pleins de sites (genre ici), le login est affiché partout, donc je sais pas si c'est vraiment un problème (contrairement à d'autres cas)
Marsh Posté le 28-03-2008 à 11:53:48
Citation : 1- attention au malin qui va créer le pseudo "toto<script type="text/javascript">alert("i pwnz teh worldz" )</script>" ==> utiliser htmlentities |
La c est un script de login pas d inscription, a priori le javascript injecter ne fera rien non ?
Marsh Posté le 28-03-2008 à 12:10:12
Sinon,
Citation : "SELECT pass WHERE pseudo = $pseudo" |
OUblie pas de preciser la table et de mettre des quotes a la variable php
Citation : "SELECT pass FROM logins WHERE pseudo ='$pseudo'" |
De meme pense a verifier l'input de $pseudo aui peut contenir des quotes et donc creer une possibilite d injection mysql avec
mysql_real_escape_string()
Marsh Posté le 28-03-2008 à 12:30:25
Même remarques que Krifur, mais, je dois dire, les sessions c'est chiants ( ne fais aucun lien vers la page ou tu initialise les $_SESSION['xxx'] sinon, gros bug ... )d'après mon expérience !
Bonne chance
Marsh Posté le 28-03-2008 à 13:40:36
krifur a écrit :
|
oui en effet, c'est quand meme le genre de truc à blinder ici au niveau des requests sql, $pseudo n'est pas protégé.
$pass2 = mysql_query("SELECT pass WHERE pseudo = $pseudo" );
Possible d'injecter n'importe quoi dans la requete.
Marsh Posté le 28-03-2008 à 16:17:17
J'ai modifié la ligne par
Code :
|
Code :
|
Là je suis à coté de la plaque : j'ai appris le php sur Le Site du Zéro et il y a un blanc au niveau du fichier dans lequel se sauvegardent les sessions ...
Je me documente et je tiens au courant.
Marsh Posté le 28-03-2008 à 17:06:49
Citation : quelle est l'erreur ? |
La page affiche "pseudo incorrect".
Bon, voilà le code édité, mais ça ne marche toujours pas.
Code :
|
Edit: Bon, j'ai rien trouvé sur les fichiers de session. La seule chose que j'ai apprise est que c'est le serveur qui gère tout.
Marsh Posté le 28-03-2008 à 18:30:21
Si c est juste pour tester les sessions, tu fait,
Dans le fichier avec le formulaire html,
$_SESSION['kikoo']="plop";
puis dans affichage1.php,
echo $_SESSION['kikoo'];
Citation : J'ai modifié la ligne par |
C'est valable pour toutes tes requetes, t'oublies de preciser le FROM table dans plusieurs d entre elles,
Vérifie les choses une par une plutot: session puis bon traitement du processus du login(c'est pas clair tes if imbirqués la), puis hashage du mot de passe, puis verification des caracteres passer dans l input...
Marsh Posté le 28-03-2008 à 20:14:56
J'ai modifié toutes les lignes.
Avec des echo de toutes mes variables, j'ai localisé le pb, je suis en train de regarder.
En réalité, le $pass2 n'est pas récupéré correctement ...
Marsh Posté le 29-03-2008 à 12:40:42
en effet mysql_query() renvoie une ressource pas une chaine de caractère, tu dois l'explode avec mysql_fetch_array(). Globalement le résultat d'une requete n'est pas une valeur mais une table.
Marsh Posté le 27-03-2008 à 20:21:42
Salut à vous, je comprends pas, ça devrait marcher ...
Un formulaire envoie un pseudo et un pass à une page de traitement qui, si pseudo et pass corrects, initialise la session.
Voila le formulaire:
je rame dessus depuis ce matin ...
Merci d'avance !