[RESOLU] Problème accès utilisateur.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème accès utilisateur.

Re: [RESOLU] Problème accès utilisateur.

par niconicochan » 24 avr. 2014, 17:13

Quelle étourderie!!
Après INSERT INTO j'ai mis le nom de ma base au lieu du nom de ma table!

Re: Problème accès utilisateur.

par niconicochan » 24 avr. 2014, 15:58

Merci pour ta réponse.
Je suis tout-à-fait d'accord avec toi pour le nom de famille,
mais j'ai simplement simplifié mon code pour une meilleure visibilité
(si on peut passer outre ce point, c'est juste un simple exemple pour régler le problème).

Je prends note du @ pour annuler les messages d'erreurs,
et bien sûr de l'utilisation du bbcode.

Mais pour le point principal de mon message, je ne sais toujours pas comment
faire pour régler le problème suivant:
Exécution de la requête impossible.

Est-ce que quelqu'un aurait une idée de la raison du problème?

Re: Problème accès utilisateur.

par moogli » 24 avr. 2014, 12:15

1/ utiliser @ c'est mal (comme dirais certain c'est chier derrière un sapin en pensant que ça va sentir bon :mrgreen: )
utilise les fonctions isset ou empty

3/ la clef primaire sur le nom de famille indique qu'une seule personne d'une même famille peu s'inscrire et pire qu'un homonyme ne peux pas s'inscrire (dupon(d|t), martin etc).

2/
<?php
$query=mysqli_query($connexion,$req);
if($query === false) {
   echo 'Erreur SQL : '.mysqli_error().'<br />;
}else {
echo "<h4>Les données que vous avez saisies ont bien été enregistrées.</h4>";
}
@+

Re: Problème accès utilisateur.

par moogli » 24 avr. 2014, 12:09

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé). cet loin de la souris les boutons au dessus du champs de saisis ?

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Re: Problème accès utilisateur.

par niconicochan » 24 avr. 2014, 08:53

Je vous montre donc ce que j'ai fait
(je ne sais pas utiliser les bbcodes, mais mes pages sont très simples)

1)Page de formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nom et prénom</title>
</head>

<body>
<br/>
<br/>
<br/>
<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tapez votre nom et prénom.<br/>
<br/>
<form method="POST" action="traitementnomprenom.php">
<ul style="list-style-type: none;">
  
         <br/>
         <br/>
         <li>Nom:&nbsp;&nbsp;<input type="text" name="nomfamille" value="<?php echo htmlentities(@$_POST['nomfamille']) ?>" size="30" maxlength="25"/></li>
         <br/>
         <br/>
         <li>Prénom:&nbsp;&nbsp;<input type="text" name="prenom" value="<?php echo htmlentities(@$_POST['prenom']) ?>" size="30" maxlength="25"/></li>
         <br/>
         <br/>    
         <input type="submit" name="validation" value="valider"/>
         <input type="reset" name="reset" value="recommencer"/></li>
</ul>
</form>
<br/>
<br/>
<br/>
</body>
</html>
2)Page de traitement de formulaire:
<?php

$hote="localhost";
$utilisateur="root";
$motPasse="";
$nombase="mabase";

$nomfamille=$_POST['nomfamille'];
$prenom=$_POST['prenom'];

$connexion=mysqli_connect($hote,$utilisateur,$motPasse) or die ("Connexion au serveur impossible.");
$nombase=mysqli_select_db($connexion,$nombase) or die ("Sélection de la base impossible.");
 
$req="INSERT INTO mabase (nomfamille, prenom)
VALUES('".$nomfamille."','".$prenom."')";
 
$query=mysqli_query($connexion,$req) or die ("Exécution de la requête impossible.");

echo "<h4>Les données que vous avez saisies ont bien été enregistrées.</h4>";
mysqli_close();
?>
Résultat du navigateur:

Exécution de la requête impossible.

3)Pour info la table que j'ai créé sur phpmyadmin en local:
CREATE TABLE nometprenom (    
nomfamille varchar(25) NOT NULL,
prenom varchar(25) NOT NULL,
PRIMARY KEY (nomfamille)
);

Re: Problème accès utilisateur.

par moogli » 23 avr. 2014, 18:33

heu il ne faut pas confondre phpmyadmin qui est un client MySQL et la base de données MySQL.

le plus simple pour t'aider c'est que tu nous fournisse le code qui te pose problème ;) (pense a à utiliser le bbcode)

dans les messages d'erreurs tu peux aussi utiliser mysqli_error afin d'avoir un message d'erreur (SQL) clair ;)


@+

Re: Problème accès utilisateur.

par niconicochan » 23 avr. 2014, 18:25

Merci, j'ai fait comme tu m'as dit.

maintenant j'ai "Exécution de la requête impossible".
Problème au niveau de mysqli_query apparemment.

J'ai l'impression que je n'arrive pas à insérer des données du fait de deux boutons radios.
Après avoir coché ces boutons je ne sais pas comment l'information est censée rentrer dans la base de données.
Serait-ce un problème de paramétrage au niveau des lignes de boutons radio dans la table sur phpmyadmin en local?
j'ai paramétrer varchar(5) pour chacun d'eux, et dans la colonne Défaut Aucune pour l'un et NULL pour l'autre
(j'ai mis l'info du deuxième bouton radio facultative).
Le problème viendrait peut-être de là, je ne sais pas trop.

Re: Problème accès utilisateur.

par moogli » 23 avr. 2014, 18:08

salut,

pour ce qui est du message d'erreur
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\monsite\mapage.php on line 19
tu arrive sur un serveur mysql donc l'url (ou host) est bonne
tu essai de te connecter avec un utilisateur qui s'appel root et qui a un mot de passe.
la connexion est refusé pour cet utilisateur root (avec un mot de passe).

Il peux y avoir plusieurs causes :
- mot de passe ko (par défaut root n'as pas de mot de passe lorsque l'on installe le serveur mysql)
- Problème de configuration de l'utilisateur.
Un utilisateur mysql peu être autorisé (ou non) à se connecter sur le serveur suivant son origine.
Par défaut on ne peux faire qu'une connexion "locale" c'est à dire qu'il faut que la connexion soit initiée sur la machine où se trouve le serveur mysql (dans ton cas tu as surement le serveur web et mysql sur ta machine ?).
Il est aussi possible d'indiquer un rang d'ip (10.0.1.*) ou simplement d'indiquer toutes les connexions possible (%).


Pour ce qui est des accès mysql utilise des "droits" (grant) pour pas mal de chose, comme la gestion des utilisateurs, bases de données, table (ajout / modif / suppression) etc etc.

du coup tu peux très bien créer des utilisateur qu n'ont pas le droit d'administrer les utilisateurs, ou de créer des base de donnés.

dernière chose tu peux configurer un utilisateur pour n'ai accès qu'a certaine base (par exemple toto a accès aux base tata et titi mais pas tutu).

Pour ce qui est de la configuration de phpmyadmin je t'invite à regarder les doc sur le site, il y a énormément de possibilité comme celle de demande un utilisateur (+ mot de passe bien sur) pour y accéder et donc charge les droits qui vont bien en fonction de l'utilisateur ;)


@+

Re: Problème accès utilisateur.

par telnes » 23 avr. 2014, 17:59

hello

$utilisateur="root"; //utilisateur que tu utilise dans phpmyadmin
$serveur="localhost";
$motdepasse="";//un password (lié à root dans le cas présent) ou non si tu en as mis un
$basedonnees="TaBase";//la base ou il y a les tables qui t'interresse


enjoy

Problème accès utilisateur.

par niconicochan » 23 avr. 2014, 17:48

Bonjour,

J'ai des difficultés à manipuler des bases de données sur un serveur local.
J'arrive à le faire avec un serveur distant mais pour moi le serveur local averc l'interface
phpmyadmin en local c'est encore une bête noire.

Voilà ce que m'envoit le navigateur quand j'essaye d'envoyer des informations de formulaire
dans une base de données sur mon serveur local.

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\monsite\mapage.php on line 19
Connexion au serveur impossible.

Mes lignes de code sont toutes bonnes je pense, car elles marchent sur un serveur distant,
sauf donc peut-être les quatre variables:

$utilisateur=" ";
$serveur=" ";
$motdepasse=" ";
$basedonnees=" ";

A nom d'utilisateur, je ne sais pas s'il faut écrire localhost ou 127.0.0.1
D'une part, on voit ses pages dans le navigateur en commençant par écrire
http://localhost/... ce qui me ferait plutôt pencher par localhost, et d'autre
par sur phpmyadmin en local je trouve écrit en haut à gauche Serveur: 127.0.0.1
ce qui me ferait plutôt pencher pour 127.0.0.1
Ca c'est le premier point qui me pose un vrai soucis de compréhension.

Pour le mot de passe ça va, sur phpmyadmin en local j'arrive à mettre, à choisir et à enlever un
mot de passe. Cette variable est liée au nom d'utilisateur donc si pour le premier point
ci-dessus je peux avoir une réponse alors je sais ce que je dois écrire pour cette variable.

Le nom que j'ai donné à ma base de données, lui, apparaît sur mon interface phpmyadmin en local
dont ça ça va aussi.

Enfin pour la variable utilisateur je ne comprend presque rien.
Sur mon interface de phpmyadmin en local, dans l'onglet utilisateur je vois la liste de tous
les utilisateurs.
Je ne me souviens pourtant pas en avoir créé un seul et j'ai pourtant déjà une liste.
Je crois que root est crée par défaut. C'est le serveur (Client) 127.0.0.1
Il a un mot de passe que je lui ai donné et il a tous les privilèges (ALL PRIVILEGES)
mais j'ai aussi un autre utilisateur qui s'appelle root lui-aussi qui est le serveur (Client) localhost.
Lui, il n'a pas de mot de passe car je ne lui en ai pas donné et il a aussi tous les privilèges
(ALL PRIVILEGES), alors pourquoi le navigateur retourne access denied?
Il y a vraiment quelque chose que je ne comprends pas.
J'ai même un utilisateur qui s'appelle N'importe lequel ???

De manière plus générale, je ne comprends pas cette histoire d'utilisateurs.
Tous ces utilisateurs inscrits, existants ou non mais en tous cas inscrits, ont accès à l'interface de phpmyadmin en local depuis mon poste, donc depuis mon ordinateur et depuis
mon ordinateur seulement.
Et moi, je peux depuis mon ordinateur, simplement en rentrant dans phpmyadmin en local,
gérer tous les privilèges et tous les paramètres de tous les utilisateurs.
Donc eux ils le peuvent aussi. Je ne vois donc pas l'intérêt du truc.
Bien sûr, j'imagine que tout a été très bien conçu et que c'est moi qui ne comprends pas.

C'est d'ailleurs justement pour ça que je demande votre aide.
J'ai vraiment besoin de comprendre.

Dernier point, si vous acceptez de bien vouloir m'aider jusqu'au bout
(ce qui me permettra aussi de rendre l'ascenseur à d'autres plus tard),
dans l'onglet utilisateur je ne comprends pas la colonne Client.
Pour le cas d'un serveur distant (je pars de ce que je comprends),
j'ai un navigateur, le client, qui envoit des requêtes à un serveur distant,
qui lui-même renvoit des pages demandées au navigateur qui lui va alors les afficher.
Pour ce qui est des lignes de php, elles seront envoyées à l'interpréteur de php
depuis le serveur distant qui renverra le html sous instruction echo au navigateur ou bien qui enverra
les scripts php à une SGBD qui elle-même repassera par l'interpéteur
de php (si je ne me trompe pas) pour ensuite permettre le retour au navigateur.
Lorsque je travaille en local où se trouve l'interpéteur php du serveur local?
En local ou à distance?
Si sur phpmyadmin je suis sur mon serveur local, donc il s'agit bien du client,
le navigateur est-il le logiciel utilisé par ce client?
Est-ce que le navigateur est un logiciel qui fait partie du client?