Connexion avec une base donnée

Fermé
tazieff Messages postés 14 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 10 juin 2008 - 30 mai 2008 à 18:28
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 - 14 juin 2008 à 00:10
Bonjour,
je veux crée une page sur mon site ou l'accés à un fichier se fait par identification.mais je n'arrive pas; c'est à dire je veux une page ou l'on accède par identifiant et mot de passe qui réagissent ave'c une base de donnée avant d'afficher le contenu de la page.

4 réponses

alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
30 mai 2008 à 23:22
il y a de très bon tutoriaux sur lesiteduzero.fr
0
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
30 mai 2008 à 23:38
Tu peux te créer un petit formulaire HTML pour permettre à l'utilisateur de rentrer ses informations du genre :

<form action="access.php" method="post">
    Identifiant : <input type="text" name="id" /><br />
    Password : <input type="password" name="pass" /><br />
</form>


Puis ensuite dans le script PHP, tu récupères les infos de connection et tu les compares avec ce que tu as dans ta base de données (par exemple une base MySQL)

if(isset($_POST['id']) && isset($_POST['pass'])){
    // On se connect à la base de donnée
    $dbh = mysql_connect(NOM_SERVEUR, NOM_UTILISATEUR_BASE, MOT_DE_PASSE_BASE);
    if($dbh){
        // Au cas où tu aies plusieurs base de données
        $iddata = mysql_select_db(NOM_BASE_DE_DONNEE);
        if($iddata){
             // Requete pour récupérer les infos dans la base de donnée
             $requete = "SELECT id, pass FROM ".NOM_TABLE;
             $requete .= " WHERE id='".$_POST['id']."'";
             $requete .= " AND pass='".$_POST['pass']."'";
             // On lance la requete
             $result = mysql_query($requete);
             // Si la requête a retournée une ligne alors on autorise l'accès
             if(mysql_num_rows($result)){
                 // Accès autorisé
                 ....
             } else {
                 // Accès non-autorisé
                 ....
             }
        } else {
             echo "Erreur lors de la sélection de la base<br />";
        }
        // On n'oublie pas de fermer la connection à la base de donnée
        mysql_close($dbh);
    } else {
        echo "Erreur lors de la connection à la base de donnée<br />";
    }
}

où "NOM_SERVEUR" est le nom du serveur hébergeant la base de donnée, "NOM_UTILISATEUR_BASE" est le nom du propriétaire de la base (à priori ton identifiant de connection à la base de donnée) et "MOT_DE_PASSE_BASE" est le mot de passe pour se connecter à la base de donnée.

Voilà. Honnêtement je ne l'ai pas débugué mais à priori s'est sensé marcher... Pour l'autorisation d'accès en lui-même je ne sais pas trop mais tu dois avoir moyen de gérer ça avec les variables de sessions ou des cookies.

En espérant avoir pu te débloquer un peu
0
tazieff Messages postés 14 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 10 juin 2008
10 juin 2008 à 10:53
c'est vraiment très sympa de ta part .je crois que je me suis ensortir grâce a ton aide
0
guiguitariste > tazieff Messages postés 14 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 10 juin 2008
13 juin 2008 à 11:13
Salut j'ai un problème assez similaire.
J'ai programmé mon site avec un formulaire pour que l'utilisateur rentre son nom et son email. C'est fait avec phpMyadmin et cela fonctionne très bien en local.
Le problème c'est que lorsque je l'upload sur le serveur d'hébergement cela ne fonctionne plus du tout. Je pense que je dois uploader ma bdd mais comment? est-ce un fichier? sous quel format dois-je l'exporter sur phpMyadmin?

Merci d'avance pour votre aide.
0
guiguitariste > guiguitariste
13 juin 2008 à 11:30
Voila mon code

$host = "******";
$user = "*******";
$passwd = "******";
$bdd = "identification" ;
$ide= MYSQL_CONNECT($host,$user,$passwd) or die('Erreur de connexion '.mysql_error());
mysql_select_db("$bdd", $ide);

Et voila l'erreur

Warning: mysql_connect() [function.mysql-connect]: #HY000Host '88.191.253.130' is not allowed to connect to this MySQL server in verif.php on line 31
Erreur de connexion #HY000Host '88.191.253.130' is not allowed to connect to this MySQL server

Est-ce que quelqu'un a une idée?
0
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
13 juin 2008 à 13:02
Tu dois importer ta base de données sur le serveur qui t'héberge, et dans ton code tu dois renseigner les variables qui contiennent le nom de la base, ton identifiant et mon de passe, ainsi que l'adresse du serveur my sql d'après les paramètres qui te sont fournis à cet effet par ton hébergeur. (c'est logique, tu n'es plus en local)
Dans phpMyAdmin sélectionne ta base de données et choisis 'exporter'. Exporte ta base au format '.sql'. Il s'agit tout simplement d'un fichier texte qui contient toutes les lignes de commandes à entrer pour 'reconstituer' à l'identique ta base de données. Tu peux même l'ouvrir avec le Bloc-Notes si tu es curieux.
Ensuite connecte toi au phpMyAdmin de ton hébergeur, et importe tout simplement ce fichier dans ta base de données.
Attention! comme ton hébergeur t'imposera sans doute un nom pour ta base de données qui ne sera pas le même que celui que tu as utilisé en local, cette restauration peut planter. Si c'est le cas, il te suffit de modifier le nom de la base dans ton fichier de sauvegarde .sql, grace à la fonction "Rechercher/Remplacer" du bloc notes.
par exemple ta base en local s'appelle MA_BASE_LOCALE, donc dans ton fichier .sql de sauvegarde tu va trouver au début une ligne qui ressemble à ça :
CREATE DATABASE IF NO EXIST "MA_BASE_LOCALE";
CREATE TABLE "MA_BASE_LOCALE"."USER" etc....
etc...
etc...
Malheureusement ton hébergeur t'oblige à utiliser ce nom pour ta base : "POUETPOUET_BASE"
Donc tu ouvre le fichier sauvegarde.sql dans le bloc-notes (je te conseille de télécharger notepad++ à ce propos), et tu remplace toutes les occurences de "MA_BASE_LOCALE" par "POUETPOUET_BASE"
ensuite tu pourra restaurer sans soucis...
0
guiguitariste
13 juin 2008 à 15:13
Je te remercie alex je pense que ton idée aurait marché malheuresement je suis en stage et c'est mon patron qui c'était occupé d'acheter le nom de domaine et il avait pris le moins cher celui dans lequel il n'y a pas de base de donnée et pas la possibilité d'en ajouter une non plus!!

Vive le patronnat.
0
alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
14 juin 2008 à 00:10
ah... ben il a du talent ton patron, pas facile de dénicher un hébergement sans base de données de nos jours...
Si le serveur de l'hébergeur doit venir taper dansd ton serveur de base de donnée perso, c'est aussi simple, tu dois juste t'assurer que ton seveur est accessible depuis l'extérieur (routage, pare-feu)
0