Problème de paramètres utilisateur / privilèges ?

Fermé
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023 - Modifié par lilsource le 8/11/2013 à 09:43
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023 - 16 nov. 2013 à 20:10
Bonjour à tous, je suis nouvelle ici.

J'essaye de créer une interface pour répertorier des livres via myadmin en passant par Wamp mais je suis heurtée à un problème que je n'arrive pas à résoudre sur un autre forum. Je sais qu'ici ça bouge pas mal alors j'espère que quelqu'un pourra me sortir de l'impasse. Voilà comment j'appelle ma base de données :

$link = mysql_connect ( "localhost","root","" );

Mais ça semble être une erreur alors hier dans myadmin, j'ai créé un nouvel utilisateur que j'ai nommé media (même nom que ma base de données). Ses privilèges? J'ai tout coché (je ne sais pas à quoi correspondent toutes les abréviations) et j'ai généré un mot de passe. Donc dans mon fichier config.inc à la ligne qui merdoit, j'ai remanié :

$link = mysql_connect ( "127.0.0.1","media","mon_nouveau_mo_de_passe" );

Mais vu que ça change rien, et que c'est toujours impossible de se connecter à la base (selon le message d'erreur que j'ai paramétré dans mon code) peut être faut-il faire de même dans le fichier config.inc.php du logiciel de bdd (wamp, en l'occurence).

Mais dites moi si je me trompe. en utilisant mysql_connect et non mysqli, est-ce que tous mes problèmes de connection à la BDD peuvent provenir de là? Je sais que c'est mieux d'être en php5 mais j'ai déjà essayé et j'avais des erreurs de code....
C'est un métier, je sais et je suis partie dans un truc qui me dépasse mais je crois que je suis près du but (avec un petit coup de pouce parce que moi pas bien parler langage informatique mais j'y travaille chaque jour).

Merci pour votre aide précieuse.

28 réponses

Utilisateur anonyme
14 nov. 2013 à 00:16
Si si, j'ai bien regardé depuis longtemps l'URL que tu m'as indiquée. J'ai même laissé un mot sur le livre d'or. Je suis étonné de voir qu'il a été enregistré : ton livre d'or marche sans base de données ?

Je reviens à ton code. Dans config.inc, tu définis une fonction connect mais ensuite tu n'appelles jamais cette fonction. Donc tu ne te connectes jamais à ta base de données (ou alors, dis moi où). Et tu dis que ça a marché en local ? J'ai beaucoup de mal à croire.
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
14 nov. 2013 à 09:59
Oui il marche comme ça le livre d'or. Je l'ai fait pendant mes cours mais j'avais un aussi des erreurs sur lesquelles j'y ai passé pas mal de temps. Maintenant le code est nickel sauf peut être qu'on ne peut émettre qu'un seul avis (normal, c'est mentionné dans le php) mais même quand je supprime à la main les données dans le fichier.txt où s'enregistrent les messages.
J'ai tout effacé pour repartir à zéro et faire en sorte qu'on puisse reposter mais non, pas moyen.
je vais supprimer un temps l'option
setcookie("ip", $_SERVER['REMOTE_ADDR'], time() + 3600);
et voir si on peut repartir de zéro.

Bref, c'était une parenthèse. Pour mon config.inc, c'est ce code qui a marché en local :
<?php

$db = "m2cdiffusion";
$link = mysql_connect ("localhost", "root", "");

if( ! $link )
die ( "Impossible de se connecter à MySQL" );
mysql_select_db( $db, $link )
or die ( "Impossible ouvrir $db: ".mysql_error() );
?>
C'est celui que je garde actuellement (jusqu'à ce que free active) et là, dis moi si je me trompe, je devrai mettre :
m2cdiffusion.free.fr la place de "localhost"
m2cdiffusion (nom de la base free) à la place de "root"
et mon mot de passe free à la place de ""

Du coup ce code est pourrit c'est ça ? :
<?php
function connect($sql) {
$link=mysql_connect('localhost','root','');
mysql_select_db('m2cdiffusion',$link);
echo mysql_error($link);
$req=mysql_query($sql) or die ('erreur requette!<br/>'.$sql.'<br>'.mysql_error());
mysql_close();
return $req;
}
?>
0
Utilisateur anonyme
14 nov. 2013 à 10:52
Presque d'accord avec ce qu'il faudra adapter :
m2cdiffusion.free.fr la place de "localhost" J'utilise sql.free.fr dans mes sites free, le nom de mon site n'apparaît pas.
m2cdiffusion (nom de la base free) à la place de "root" OK, sauf qu'il s'agit du nom d'utilisateur. Mais chez Free, c'est le même que la base
et mon mot de passe free à la place de "" OK

Quant à ton code pourri, il n'est pas pourri par lui-même : c'est plutôt l'utilisation que tu en fais (ou que n'en fais pas) qui est pourrie. Est-tu consciente qu'en l'entourant de
function connect($sql) { ... }
, il ne s'exécute QUE quand tu appelles la fonction connect() ?
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
15 nov. 2013 à 09:51
Bonjour Le Père,

Ok sql.free.fr plutôt que m2cdiffusion.free.fr

Sinon le code function... N'est plus, n'en parlons plus car non je ne suis pas consciente de ce que tu dis. Moi pas comprendre trop bien. Il me faudrait un exemple concret pour cette function et un autre en comparaison pour bien avoir conscience des choses mais nous ne sommes pas là pour tenir un cours magistral.

Free me dit toujours Votre base de données a déja été activée,
elle sera créée durant la nuit
. ça commence à me chauffer.

Ne puis-je pas faire autrement en attendant pour que mon interface fonctionne ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 nov. 2013 à 11:20
nous ne sommes pas là pour tenir un cours magistral
Pourtant, tu en aurais certainement bien besoin. Tu n'as pas compris ce que je t'ai dit à propos de
function
et ça ne semble pas t'intéresser. Pourtant, il s'agit d'une notion absolument essentielle, qui de plus est commune à la plupart des langages.
En attendant que Free daigne créer ta base, est-ce que ça marche à nouveau en local ?

Sois patiente pour l'activation : sur ce site ils parlent de 3 semaines de délai, ce qui semble fou. La dernière fois que j'ai créé un compte, il y a 3 ans, il me semble que ç'avait été 24h.
En attendant, il est inutile que je te suggère d'utiliser sqlite, il faudrait plusieurs cours magistraux !

Tu peux toujours corriger une énorme faille de sécurité en attendant. Je te l'envoie par MP.
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
Modifié par lilsource le 15/11/2013 à 22:17
Oui j'ai bien besoin de cours de php, ça m'aiderait grandement je le reconnais... C'est juste une question de temps. ça y est le délai est dépassé. Free me fait poireauter mais je prends mon mal en patience.

Si tu veux que je m'y intéresse, allons y. Tu dis : En entourant mon code de function connect($sql) { ... }, il ne s'exécute QUE quand j'appelle la fonction connect(). Alors comment l'appeler déjà? Allons-y, rentrons dans le vif si tu veux bien.

C'est dur de se comprendre avec ce langage (je veux dire avec mes notions de ce langage). Disons que j'ai des pages de code pour la mise en forme et d'autres pour les commandes à exécuter. Disons que j'appelle à partir des premières qu'on pourrait appeler soft et j'exécute dans les pages hard, là où j'ai le <?php ... ?>
S'il y a déjà un terme pour décrire ce que je viens de dire, dis le moi, ça m'évitera de "réinventer la roue" et de perdre de l'énergie.

Donc dans mon soft j'ai des lignes du style :
	<td>Prénom de l'auteur :<p></td>

<td width="200"align="center">
<form action="admin_ad-liv2.php" method="get">
<input type="text" name="prenom"><p>
</form>
</td>
J'ai donc appelé les commandes que je peux trouver dans ce fichier admin_ad-liv2.php et là le code HARD CODE se présente sous cette HARD forme ;-)
<?

mysql_connect("localhost","root","");
mysql_select_db("m2cdiffusion",$db);

$id=$_GET["id_livres"];
$rayon=$_GET["rayon"];
$titliv=$_GET["titliv"];
$nom=$_GET["nom"];
$prenom=$_GET["prenom"];
$datedit=$_GET["datedit"];
$edition=$_GET["edition"];
$isbn=$_GET["isbn"];

$requete="INSERT INTO 'livres' ( 'id_livres', 'rayon', 'titliv', 'nom', 'prenom', 'datedit', 'edition', 'isbn')
VALUES ('', '$rayon', '$titliv', '$nom', '$prenom', '$datedit', '$edition', '$isbn');";

if(!mysql_query($requete))$main_page = "include_admin-ok.php";
else
if($requete=="") $main_page = "include_admin-echec.php";
else $main_page = "";
include ($main_page);

mysql_close($db);
?>

Est-ce que mon code est encore pourrit?
Que vois tu à me faire comme remontrance Le Père 'fouetard' ?
Cours magistral, je prends...
Buena Notte
0
Si je comprends bien ton vocabulaire, tes pages pour la mise en forme sont du HTML, et celles que tu appelles "hard" sont du PHP.

Je ne vais pas te faire un cours complet, nous y serons encore dans plusieurs mois et je ne suis pas sûr du tout d'avoir les qualités pédagogiques nécessaires. Il y a de très bons sites comme openclassroms pour l'initiation aux différents langages.

Pour préciser quelques points très importants quand même :
Le HTML est le langage compris par ton navigateur, c'est celui qui décrit ce que tu vois sur une page web.
Le PHP (balise <?php et non pas simplement <? ) est un langage qui est compris par le serveur qui envoie les pages : normalement, il n'arrive pas jusqu'aux pages web. Les navigateurs (IE, Firefox et autres Chrome) ne le comprennent pas. Il décrit un programme, c'est à dire une suite d'instructions à exécuter. Personnellement, je l'ai appris dans le manuel, tout simplement. Parmi ces instructions, il y a "echo" qui permet d'envoyer du texte (HTML de préférence...) au navigateur de celui qui visite ta page.
En général, dans une page php, il y a aussi du HTML(alors que toi tu sembles séparer rigoureusement les deux). L'inverse n'est pas vrai : si tu appelles une page .html et que tu essayes de mettre du php dedans, il ne sera pas compris par le serveur, qui l'enverra tel quel au navigateur, qui l'ignorera.

En ce qui concerne l'utilisation du mot function:
Quand tu entoures ton code de function connect($sql) { ... }, de code n'est pas exécuté : tu définis une fonction pour l'utiliser ailleurs.
Ailleurs, tu écriras connect ("toto") et là, le code de la fonction s'exécutera, la valeur de $sql étant alors "toto" : c'est un appel à la fonction connect.

Assez de cours pour aujourd'hui.
Ton code n'est pas pourri, mais comme tu as réclamé le fouet...
La balise de début devrait être <?php, même si ça marche avec <?, ça ne marchera pas avec certains serveurs configurés différemment.
Ton test
if($requete=="")...
n'a pas de sens : tu as donné à la variable $requete la valeur "INSERT..." quelques lignes plus haut. Or, elle n'a aucune raison de changer entre les deux : elle faut toujours "INSERT..." et il est inutile de la comparer avec "".
J'aurais bien quelques autres critiques mais elles sont mineures.
Une dernière pour la nuit : c'est exprès que tu mélanges l'espagnol et l'italien dans ton buena notte, ou c'est une autre langue ?
Bonne nuit aussi
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
16 nov. 2013 à 20:10
Bonsoir Le Père,

Tout ce que tu dis, les bases de base, ça c'est bon, enfin je crois. Même si j'ai oublié effectivement php dès le départ sur cette page <?php
Ok, ça la fout mal comme pour mon bonsoir buena notte. Tu as compris que les langages et les langues étrangères ne sont pas mon fort.
Mince alors, moi qui voulait faire ça plus jeune... bref, bref!

c'est à ce moment que ça devient intéressant, quand tu dis, "En ce qui concerne l'utilisation du mot function (...)"

Mais va falloir que je couche ma fille pour me pencher la tête entre les mains sur tout ça...
lol

OpenClassRoom, j'ai essayé de m'y faire aider comme je le fais ici mais il n'y a pas de père et c'est la solitude totale. Tu peux m'y trouver au nom de Lilsource...

Bonne soirée et à très +
0