IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connexion à un serveur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Connexion à un serveur
    En reprenant une application serveur qui montre une galerie de photos, je me replonge dans le PHP que je n'avais plus pratiqué depuis plus de 15 ans : dur, dur.

    Passant de PHP 5 à PHP 7, j'ai dû remplacer tous les mySQL par des mySQLi. J'ai réussi à mettre en œuvre mon application en local, mais j'ai un problème et je m'y emmêle les crayons : c'est relatif à la connexion.

    NOTA : mon application serveur se trouve sur un Raspberry Pi 3B+ sous rasbian "Stretch". Ce Raspberry à une adresse fixe 192.168.0.X

    En local, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MySQLi_Connect("my_host", "my_user", "my_password");
     
    Avec "my_host" = "localhost" et "my_user" = "root".
    Et tout se passe bien.

    Maintenant, je m'emmêle lorsque je veux atteindre mon application à partir d'un poste distant. Par poste distant, j'entends :

    • Un PC situé sur le réseau local,
    • Un PC situé dans le "monde" ; j'ai une adresse fixe de part mon FAI.


    Deux cas se présentent :

    • Administrer mon application : je dois m'identifier.
    • Visiter mon application : je n'ai pas à m'identifier, j'y vais comme une visiteur lambda.


    Dans chacun de ces cas, que valent "my_host", "my_user" et "my_password".

    Merci pour vos renseignements.

    Cordialement.

    Pierre.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    J'imagine que votre environnement local est en Windows ?

    Et du coup le PI3 lui c'est du Linux.

    Linux, contrairement à Windows est sensible à la casse et donc ceci n'existe pas en Linux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MySQLi_Connect("my_host", "my_user", "my_password");
    Mais ceci oui :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysqli_connect("my_host", "my_user", "my_password");

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysqli_connect("my_host", "my_user", "my_password");
    Erreur de frappe dans ce forum. C'est bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_connect("my_host", "my_user", "my_password");
    qui est écrit dans mes fichiers *.php.

    Cordialement.

    Pierre

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Ok,

    Pour répondre à votre question quelque soit, d'où vous atteignez votre serveur, la connexion à la db ne change pas.

    Mais cela ne doit pas être root et il faut un mot de passe (sécutité oblige).

    C'est votre application PHP que travaille avec la db et non pas l'utilisateur qui se connecte.

  5. #5
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    essais ça. j'utilise windows.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $mysqli = new mysqli('my_host', 'my_user', 'my_password','basse_de_donnée');
    $mysqli = new mysqli('127.0.0.1', 'root', '', 'ducerf'); ici le password est vide car j'utilise msqli en local.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    $email = htmlspecialchars( $_POST['email']) ;
     $sql = "SELECT email, token FROM membre WHERE email = '".$email."'";
    if (!$result = $mysqli->query($sql)) {
     
           header('Location: index.php?error=1');
       }
     
       if ($result->num_rows === 0) {
     
           header('Location: index.php?error=1');
       }
     
     if ($data = mysqli_fetch_array($result))
      {
     ; }
    mysqli_close($mysqli); 
     
         $result->close();

  6. #6
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par Philcmoi Voir le message
    essais ça. j'utilise windows.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $mysqli = new mysqli('my_host', 'my_user', 'my_password','basse_de_donnée');
    $mysqli = new mysqli('127.0.0.1', 'root', '', 'ducerf'); ici le password est vide car j'utilise msqli en local.
    Depuis un autre PC sur mon réseau interne, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_connect("localhost", "root", "my_password");
    et cela fonctionne. Ma conclusion :

    Depuis n'importe où, les trois termes à employer : "localhost", 'root"', "my_password" sont les mêmes, à la grosse différence que :

    • Si je veux être administrateur, c'est à moi de fournir le bon mot de passe,
    • Si je suis un simple visiteur, c'est le serveur qui va lui même fournir le mot de passe qu'il a dans ses entrailles bien caché, codé.


    Est-ce vrai ?

    Cordialement.

    Pierre

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Vous confondez Moteur de base de données et base de données applicatif.

    Le root, va utiliser le moteur de base de données et acceder à tout les schémas de MySQL (votre_db, mysql, performance_schema...;autres).

    Votre application de photo, à une base de données qui est accédé par root, dans cette base, il y a surement une table qui gère les utilisateurs de votre applications photo et qui donneront les droits sur votre application uniquement.

    J'espère être clair

  8. #8
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Vous confondez Moteur de base de données et base de données applicatif.

    Le root, va utiliser le moteur de base de données et acceder à tout les schémas de MySQL (votre_db, mysql, performance_schema...;autres). ...
    C'est certainement vrai.

    Citation Envoyé par MaitrePylos Voir le message
    ... Votre application de photo, a une base de données qui est accédé par root, ...
    Oui.

    Citation Envoyé par MaitrePylos Voir le message
    ... dans cette base, il y a surement une table qui gère les utilisateurs de votre applications photo et qui donneront les droits sur votre application uniquement. ...
    Non. Mon mot de passe n'est pas dans la base données ; il est codé, crypté, ailleurs. Les autres utilisateurs sont les visiteurs qui n'ont pas besoin de mot de passe.

    C'est là où je ne comprends pas. Pour accéder à cette base, il faut un mot de passe et celui là ne peut pas être dans une table de la base.

    Dans le cas où mon application est chez mon FAI par exemple, quels doivent être les paramètres à donner à mysqli_connect pour s'y connecter ?

    Je suis désolé, tout cela est encore très confus dans ma tête.

    Cordialement.

    Pierre

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Dans le cas où mon application est chez mon FAI par exemple, quels doivent être les paramètres à donner à mysqli_connect pour s'y connecter ?
    Dans ce cas les identifiant que votre FAI, vous aura donné pour la base de données qui se trouve chez votre FAI.

Discussions similaires

  1. [Debutant] Connexion à un serveur SQL Server sur le reseau
    Par klael dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/02/2009, 03h07
  2. Réponses: 11
    Dernier message: 13/10/2003, 14h48
  3. connexion sql serveur
    Par DiJiRiDouS dans le forum ASP
    Réponses: 10
    Dernier message: 16/09/2003, 16h14
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo