Accueil > Forum > > > > formulaire qui ne marche pas !
formulaire qui ne marche pas !
dimanche 29 juin 2008 à 19:52:43 |
formulaire qui ne marche pas !

nicomilville
|
Salut,
j'ai un formulaire avec des champs de type hidden auxquels j'essai d'assigné le résultat d'une requête SQL seuleument ça ne marche pas, pouvez vous me dire ce qui ne va pas ?
mon code :
<?php session_start(); if(isset($_POST['pseudo']) && isset($_POST['pass'])) { mysql_connect('host','pseudo','pass'); mysql_select_db('base'); $req = "SELECT * FROM utilisateurs WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'"; $retour = mysql_query($req); if(mysql_num_rows($retour)<1) { echo 'Ce compte n\'existe pas, merci de <a href="inscription.php">vous inscrire</a>'; } else { $_SESSION['pseudo'] = $_POST['pseudo']; $_SESSION['age'] = $_POST['age']; $_SESSION['cp'] = $_POST['cp']; mysql_query("INSERT INTO connecte VALUES('','".time()."','".$_POST['pseudo']."','".$_SESSION['age']."','".$_SESSION['cp']."','".$_SERVER['REMOTE_ADDR']."')"); header("Location: tableau.php"); } } ?> <body> <div align="center"> <form action="connection.php" method="post"> <table width="414" height="221" border="0" cellspacing="0"> <tr> <td><div align="center"> <table width="388" height="141" border="0" cellspacing="0"> <tr> <td><div align="center">Pseudo : </div></td> <td><div align="center"> <label> <input type="text" name="pseudo" /> </label> </div></td> </tr> <tr> <td><div align="center">Mot de passe : </div></td> <td><div align="center"> <label> <input type="password" name="pass" /> </label> </div></td> </tr> <?php mysql_connect('host','pseudo','pass'); mysql_select_db('base'); $query = "SELECT age, cp FROM utilisateurs WHERE pseudo='".$_SESSION['pseudo']."'"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { ?> <tr> <input type="hidden" name="age" value="<?php echo $row['age']; ?>" /> </tr> <tr> <input type="hidden" name="cp" value="<?php echo $row['cp']; ?>" /> </tr> <?php } ?> <tr> <td> </td> <td><div align="center"> <label> <input type="submit" name="Submit" value="connexion" /> </label> </div></td> </tr> <tr> <td> </td> <td><div align="center"> <label> <a href="inscription.php">Inscrivez-Vous</a> </label> </div></td> </tr> </table> </form> </div></td> </tr> </table> </div> </body>
Aidez moi svp !
a++
Si la réponse vous convient, pensez : Réponse acceptée ! 
|
|
dimanche 29 juin 2008 à 22:51:38 |
Re : formulaire qui ne marche pas !

JoJo738
|
Hello Qu'est ce qui ne va pas ? Par contre je viens de voir un truc avec tes hiddens ... Comment veut tu faire une requete SQL si _SESSION['pseudo'] n'existe pas ??? Et fait des vérifications (htmlentities(), mysql_string_escape(), isset(), ....) ! Ho ! Et deux connexions à MySQL ??? Quel intéret ? Surtout si il n'y a pas de déconnexions ... Ah, et utilise mysql_query(...) or die(mysql_error());^^ Si ma reponse te convient, merci de l'accepter ! 
|
|
dimanche 29 juin 2008 à 23:02:08 |
Re : formulaire qui ne marche pas !

nicomilville
|
c'est pas ça, en fait, si je me connecte et que je fais précèdant et que je me reconnecte, ça va mais sinon ça va pas ! oui, mais comment faire la requête sans la session avec le pseudo ? a++ Si la réponse vous convient, pensez : Réponse acceptée ! 
|
|
lundi 30 juin 2008 à 04:39:25 |
Re : formulaire qui ne marche pas !

Farfadh
|
Je n'ai pas regardé en détail mais je vois des failles majeures dans ton code.
Déjà, $_SESSION est stocké dans les cookies donc l'écriture dans cette variable risque d'échouer la plupart du temps si tu n'active pas le buffer de sortie avec ob_start() au début. Deuxièmement, comme le contenu de $_SESSION est dicté par les cookies de l'utilisateur, tu ne peux absolument pas lui faire confiance pour lui confier des informations de connection, sinon, il suffit d'attendre que quelqu'un est connecté, entrer son pseudo dans les cookies et hop ! Tu as accès à son compte et tu n'as plus qu'à changer son mot de passe pour lui voler son compte. Et si tu veux y mettre une valeur moins évidente, voire même chiffrée, il est toujours possible de voler les cookies à ta victime pour ensuite lui dérober son compte.
Ensuite, pour tes requêtes MySQL, tu oublies de protéger les valeurs de tes chaînes avec mysql_real_escape_string() alors qu'il s'agit de données possiblement sensibles. Ensuite tu utilises mysql_num_rows() et un while sur mysql_fetch_array() sur des résultats qui contiennent au mieux un enregistrement, ce qui est très maladroit. Tu entres dans ta table de connections des informations sur l'utilisateur qui n'ont rien à faire là, et qui constituent une redondance de données particulièrement inutile, d'autant plus que tu voulais déjà sauvegarder ces données dans la session.
On va arrêter cette liste accablante avec le fait que tu ne nous donnes pas le moyen avec lequel tu rétablis une connection active. Je suis en train de préparer un code dont tu pourras te servir sans problème. A tout de suite.
|
|
lundi 30 juin 2008 à 10:17:36 |
Re : formulaire qui ne marche pas !

nicomilville
|
Salut... merci, a tout de suite ! a++ Si la réponse vous convient, pensez : Réponse acceptée ! 
|
|
lundi 30 juin 2008 à 14:33:42 |
Re : formulaire qui ne marche pas !

neigedhiver
|
Salut, @Farfadh : "Déjà, $_SESSION est stocké dans les cookies" Au lieu de dire n'importe quoi, il serait bien de lire la doc de PHP : http://fr3.php.net/manual/fr/book.session.php Les sessions sont gérées côté serveur, SÛREMENT PAS côté client (ça fait même l'objet d'une question dans un test sur le site de Zend) Lorsqu'on ouvre une session, seul l'identifiant de la session (retourné par session_id() ) est stocké sur le client. RIEN D'AUTRE. Il peut être : - stocké dans un cookie si la configuration le permet, et si le client l'accepte - passé dans l'url si la configuration le permet (cf la directive de configuration session.use_trans_sid) Par défaut le gestionnaire de session est 'files' : les sessions sont stockées dans des fichiers, écrits dans un répertoire spécifique (déterminé par la directive de configuration session.save_path). Le gestionnaire peut aussi être personnalisé, voire entièrement réécrit (on trouve même des sources sur phpCS pour utiliser une base de données). Par conséquent, le tampon de sortie n'a absolument rien à voir dans l'histoire. La seule condition est qu'aucun entête ne soit envoyé au client avant l'ouverture de la session (qui tente de placer un cookie, ce qui est une requête HTTP) "Deuxièmement, comme le contenu de $_SESSION est dicté par les cookies de l'utilisateur, tu ne peux absolument pas lui faire confiance pour lui confier des informations de connection," La question n'est pas là. Les sessions ne sont pas sécurisées : c'est là qu'est le problème. Placer un cookie est a priori relativement sûr (hormis le fait que sans utilisation de SSL, il circule en clair sur internet). Le vol de sessions est chose rare : récupérer un cookie d'un internaute n'est pas si aisé que cela (il faut sniffer le réseau, intercepter les paquets, identifier la personne, le site visité, spoofer l'ip du client...). Le principal risque est de laisser un cookie sur un ordinateur partagé. Pour ce qui est du reste de la protection, il suffit de s'imposer quelques règles dans la gestion d'un compte (saisir le mot de passe actuel pour pouvoir le changer, etc). Quoi qu'il en soit, les variables de sessions sont stockées sur le serveur et ne transitent pas sur le réseau. Point barre. Donc si un pseudo est stocké dans les variables de session, il ne sera pas stocké dans un cookie. Il sera stocké dans le fichier correspondant à la session de l'utilisateur (le tableau $_SESSION est d'ailleurs linéarisé avec serialize() avant d'être stocké, et délinéarisé avec unserialize() lorsque la session est restaurée). Voilà pour la mise au point qui me paraissait vraiment nécessaire. Bonne journée. Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
lundi 30 juin 2008 à 15:50:41 |
Re : formulaire qui ne marche pas !

nicomilville
|
Salut neige, Merci de cette explication car je dois t'avouer que je ne savais plus quoi penser ! a++ PS : as tu une solution pour mon pb ? Si la réponse vous convient, pensez : Réponse acceptée ! 
|
|
lundi 30 juin 2008 à 18:47:39 |
Re : formulaire qui ne marche pas !

JoJo738
|
Lu' ^^ Et avec un code de ce genre ? <?php
session_start(); // include 'mysql_connexion.php';
if( isset($_POST['pseudo'], $_POST['password']) ) { $pseudo = mysql_real_escape_string($_POST['pseudo']); $password = mysql_real_escape_string($_POST['password']); $query = mysql_query('SELECT id FROM utilisateurs WHERE pseudo = "' . $pseudo . '" AND password = "' . $password . '" ') or die(mysql_error());
if( mysql_num_rows($query) <> 1 ) { echo 'Ce compte n\'existe pas, merci de <a href="inscription.php">vous inscrire</a>'; } else { $row = mysql_fetch_assoc($query); $_SESSION['id'] = $row -> id; // Perso, je stocke l'ID du membre (au pire des cas avec transmission d'une clé généré lors de la connection et avec un petit UPDATE (en dessous) je le mémorise
// mysql_query('UPDATE utilisateurs SET time_connexion = NOW(), ip = "' . $_SERVER['REMOTE_ADDR'] . '" WHERE id = ' . $row -> id) or die(mysql_error()); // * Mettre ' . $time() . ' à la place de NOW() en fonction du type de champ (varchar, int, date, ...) // * Je conseil d'utiliser une fonction pour trouver l'IP .... Faut pas oublier les proxys ;) } }
?> <form action="?" method="POST"> <p> <label for="pseudo">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" /> </p>
<p> <label for="password">Mot de passe :</label> <input type="text" name="password" id="password" /> </p> <p> <input type="submit" value="Connection !" /> </p> </form>
Si ma reponse te convient, merci de l'accepter ! 
|
|
lundi 30 juin 2008 à 19:18:06 |
Re : formulaire qui ne marche pas !

nicomilville
|
le pb c'est pas ça, c'est que les session age et cp n'existent pas encore quand je fais ma requête ! a++ Si la réponse vous convient, pensez : Réponse acceptée ! 
|
|
lundi 30 juin 2008 à 23:58:24 |
Re : formulaire qui ne marche pas !

JoJo738
|
Hum ... Qu'est ce que "CP" ? Et quel intéret de récupérer age et cp ? (surtout si tu les as dans ta base) ... C'est un systeme de vérification ??? Si ma reponse te convient, merci de l'accepter ! 
|
|
Cette discussion est classée dans : mysql, session, post, pseudo, pass
Répondre à ce message
Sujets en rapport avec ce message
session_start ou autre chose... ? [ par elisaba ]
bonjour, j'ai une page a accès login + pass avec accès formulaire + test + la page en php. j'ai bien mon dossier sessions, à priori ca defrait foncti
pbroblème de session [ par Miss1 ]
Salut,je veux crée une session pour que l'utilisateur puisse accédé a son compte panier.Le probleme qui intervien' c'est que quand je rentre acun log
session [ par nicomilville ]
Bonjour tout le monde, mon problème est le suivant :j'ai une page connection.php qui permet de se connecter et je voudrai que si l'utilisateur est rec
script de session qui ne marche pas ... [ par nicomilville ]
Salut j'ai un script php utilisant les session et au début ça marche bien mais après quand je retourne sur la page du formulaire ça ne me renvoi pas s
un mini chat [ par mouniklo ]
Bonjour à tous je voudrais intégrer un minichat à mon site.Mais, et oui il y à toujours un mais j'ai une fabuleuse erreur qui fait que ça ne fonctionn
formulaire qui ne marche pas !!! [ par nicomilville ]
Bonjour tout le monde j'ai un petit problème avec le bas de ce code, la partie admin ne se charge pas si je rentre le pseudo et le mot de passe dans l
erreur mysql [ par nicomilville ]
bonjour tout le monde, voici mon formulaire :Accès aux pages :Pseudo : <input type="
connection membre [ par gorn deja pris ]
Voila j'ai un ptit soucis, je débute le php, et j'essai de faire une page où l'on peut se connecter, le truc c'est que j'ai déjà fais les inscriptions
delete from... [ par fatatra ]
Bonjour;Dans le code ci joint, je veux supprimer une entrée de ma table en fonction du dela variable $_post['pseudo'] que je récupere de la page php p
Vérificateur de changement de données [ par givit ]
Bonjour @ tous,Je sais, c'est encore moi ... J'ai un petit souci avec un formulaire de modification de données. Il n'affiche rien lorsqu'il y
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|