OVH Community, votre nouvel espace communautaire.

MySQL : insertion possible mais pas la sélection


mailyes
11/10/2006, 12h12
Désolé pour ma première requete elle est mal placée...
Voici le lien http://dvdspectacle.com/web
alors que l'index fonctionne http://dvdspectacle.com

amadeus
11/10/2006, 09h35
1. quand on a un problème on ouvre un nouveau post on ne squatte pas celui d'un autre c'est une question de politesse !
2. je n'ai rien compris : tu as un dédié, un plan, une chévre ?? tu utilises un CMS, tout est en html, etc... ?
3. on pourrait avoir un lien pour voir de nos propres yeux ?

mailyes
10/10/2006, 23h17
Bonjour j'ai aussi un soucis avec une base sql qui au moment de la connection me donne cette erreur
MySQL Error : 2013 - Lost connection to MySQL server during query
Je n'ai jamais fait d'admin et ne connais pas encorre le contenu c'est un pot qui n'en peux plus .et qui ne veux plus, enfin je me retrouve avec un site sans site cool...
D'autre part j'ai sur un autre sitre une chose bizzare qui vient de m'arriver la page index.htm est vide.
Alors que en vérifiant bien tout le contenu y est et a la bonne place???
SOS please..

Denis Bitouzé
10/10/2006, 11h08
Bonjour,

voilà, le problème a été résolu grâce au concours d'un contributeur du forum fr.comp.applications.sgbd. Il m'a suggéré de remplacer tous les PASSWORD par des OLD_PASSWORD et là, ça fonctionne !

Merci à tous ceux qui ont consacré du temps au problème que je rencontrais.

Denis Bitouzé
08/10/2006, 20h08
Si tu as un pb avec le mot de passe cela peux venir de la fonction password effectivement, en local ou en prod l'algo est pas forcément le même (version mysql ou pb de config).
Ah, merci pour l'info, j'ignorais. Par contre, avec un utilisateur inséré non pas en local mais sur OVH, donc avec la fonction de cryptage PASSWORD de MySQL telle qu'elle est sur les serveurs d'OVH, devrait pouvoir être retrouvé avec cette même fonction sur ce même serveur. Or ce n'est pas le cas : je viens de faire le test en insérant un utilisateur fictif qui apparaît bien dans la base (contrôle avec phpMyAdmin), que je peux sans problème retrouver avec une requête de la forme :

Code:
SELECT *
FROM utilisateurs
WHERE nom_utilisateur = $nom_utilisateur
mais pas avec une requête de la forme :

Code:
SELECT *
FROM utilisateurs
WHERE mot_de_passe = PASSWORD( $mot_de_passe )
Merci !

amadeus
08/10/2006, 19h49
Si tu as un pb avec le mot de passe cela peux venir de la fonction password effectivement, en local ou en prod l'algo est pas forcément le même (version mysql ou pb de config). Enfin c'est juste une piste.

Bon courage

Denis Bitouzé
08/10/2006, 19h39
D'après la doc de MySQL:

The SET PASSWORD statement assigns a password to an existing MySQL user account

Ce qui ne me semble pas être ce que tu veux faire... Et cela ne devrait pas non plus "fonctionner" en local.
Euh, hum, oui, désolé, je citais de mémoire parce que je n'étais pas sur mon poste. En fait, ce n'est pas
Code:
SET PASSWORD
qui est utilisé lors de l'insertion d'utilisateurs mais une requête de la forme :

Code:
INSERT INTO utilisateurs ( 
nom_utilisateur, nom, prenom, mot_de_passe )
VALUES (
$nom_utilisateur, $nom, $prenom, PASSWORD( $mot_de_passe )
)
et celle-ci fonctionne à merveille. C'est lors de la requête de login :

Code:
SELECT *
FROM utilisateurs
WHERE nom_utilisateur = $nom_utilisateur
AND mot_de_passe = PASSWORD( $mot_de_passe )
que ça ne fonctionne plus : je viens de vérifier en modifiant un peu le script, c'est la concordance du mot de passe qui ne convient pas.

une colonne avec le mot de passe (mieux: un hash du mot de passe)
J'imagine que , lorsque tu parles de « hash », c'est de la fonction PASSWORD telle que j'utilise que tu parles, non ?

Merci en tous cas !

Gagar
08/10/2006, 14h09
D'après la doc de MySQL:

The SET PASSWORD statement assigns a password to an existing MySQL user account

Ce qui ne me semble pas être ce que tu veux faire... Et cela ne devrait pas non plus "fonctionner" en local.

Pour ce que tu veux faire:
- une colonne avec le login
- une colonne avec le mot de passe (mieux: un hash du mot de passe)

Good luck

Denis Bitouzé
08/10/2006, 14h01
Bonjour,

j'ai un souci avec une base MySQL qui fonctionne parfaitement en local sur ma machine mais pas complètement sur le serveur OVH.

Je m'explique : dans cette base, se trouve une table d'utilisateurs qui s'enrichit lorsque un internaute s'inscrit via un formulaire et un script PHP, en donnant entre autre un identifiant et un mot de passe (ce dernier est inséré dans la table au moyen de la commande MySQL « SET PASSWORD »). Ceci fonctionne parfaitement mais le problème que je rencontre est que lorsqu'un internaute inscrit veut se logger : pour cela, au moyen d'un autre formulaire et d'un autre script PHP, il saisit son identifiant et son mot de passe ; mais là, ça ne va plus : systématiquement, la requête SQL échoue et il semble que ce soit à cause du mot de passe. Je rappelle que cette procédure fonctionne parfaitement en local mais plus sur le serveur d'OVH.

Je soupçonne quelque peu un problème d'encodage mais, même lorsque les identifiant et mot de passe ne sont constitués que de caractères ASCII, le login échoue...

Quelqu'un aurait-il une idée pour me tirer de ce mauvais pas ?

Merci d'avance,
--
Denis