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

MySQL Discussion :

Lier un site sur un hébergeur avec une bdd sur un autre


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Lier un site sur un hébergeur avec une bdd sur un autre
    Bonjour, je souhaite lier un site sur l'hébergeur netlify à une base de données lié directement à un formulaire de mon site. Cette base de donnée est sur l'hébergeur Alwaysdata.

    J'ai la page traitement.php suivante*:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
      <?php
    // Connexion à la base de données
    $servername = "phpmyadmin.alwaysdata.com";
    $username = "root";
    $password = "Azerty";
    $dbname = "test_réservation";
     
    $conn = new mysqli($servername, $username, $password, $dbname);
     
    if ($conn->connect_error) {
        die("Erreur de connexion à la base de données : " . $conn->connect_error);
    }
     
    // Vérification si le formulaire est soumis
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Récupération des données envoyées par le formulaire
        $nom = $_POST["nom"];
        $email = $_POST["email"];
        $telephone = $_POST["telephone"];
        $destination = $_POST["destination"];
        $categorie = $_POST["categorie"];
        $date_depart = $_POST["date_depart"];
        $date_retour = $_POST["date_retour"];
        $nb_personnes = $_POST["nb_personnes"];
        $commentaires = $_POST["commentaires"];
     
        // Préparation de la requête SQL d'insertion
        $sql = "INSERT INTO reservation (nom, email, telephone, destination, categorie, date_depart, date_retour, nb_personnes, commentaires)
                VALUES ('$nom', '$email', '$telephone', '$destination', '$categorie', '$date_depart', '$date_retour', '$nb_personnes', '$commentaires')";
     
        // Exécution de la requête SQL
        if ($conn->query($sql) === TRUE) {
            echo "Réservation enregistrée avec succès.";
        } else {
            echo "Erreur lors de l'enregistrement de la réservation : " . $conn->error;
        }
    }
     
    // Fermeture de la connexion à la base de données
    $conn->close();
    ?>
    Et la page API.php suivante*:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
     
    <?php
    header('Content-Type: application/json');
     
    // Étape 2 : Inclure le fichier de connexion
    require_once 'connexion.php';
     
    // Étape 3 : Récupérer toutes les réservations
    if ($_SERVER['REQUEST_METHOD'] === 'GET') {
        $query = $con->query("SELECT * FROM réservation");
     
        if ($query) {
            $reservations = [];
            while ($row = $query->fetch_assoc()) {
                $reservations[] = $row;
            }
     
            $response['error'] = false;
            $response['reservations'] = $reservations;
            $response['message'] = 'La récupération des réservations a réussi.';
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération des réservations.';
        }
     
        echo json_encode($response);
    }
     
    // Récupérer une réservation par nom
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['nom'])) {
        $nom = $_POST['nom'];
        $query = $con->prepare("SELECT * FROM réservation WHERE nom = ?");
        $query->bind_param("s", $nom);
     
        if ($query->execute()) {
            $result = $query->get_result();
     
            if ($result->num_rows > 0) {
                $reservation = $result->fetch_assoc();
                $response['error'] = false;
                $response['reservation'] = $reservation;
                $response['message'] = 'La récupération de la réservation par nom a réussi.';
            } else {
                $response['error'] = true;
                $response['message'] = 'Aucune réservation trouvée avec ce nom.';
            }
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération de la réservation par nom.';
        }
     
        echo json_encode($response);
    }
     
    $con->close();
     
    // Exemple d'envoi d'une requête POST à api.php depuis JavaScript pour récupérer une réservation par nom
    const nomReservation = 'John Doe'; // Remplacez 'John Doe' par le nom souhaité
     
    fetch('api.php', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        nom: nomReservation
      })
    })
      .then(response => response.json())
      .then(data => {
        // Traitement des données de la réponse
        console.log(data);
      })
      .catch(error => {
        // Gestion des erreurs
        console.error('Une erreur s\'est produite:', error);
      });
     
    ?>


    J'ai l'erreur suivante*:

    Cette page du site*[...].netlify.app*est introuvable
    Aucune page Web trouvée à l'adresse*:https://[...]/traitement.php



    HTTP ERROR 404

    Pourtant la page se situe dans le même répertoire que les autres fichiers dans mon dêpot github*.

    Et le journal de déploiement de netlify me dit que tout est «*complet*» (au niveau de l'initialisation, du bâtiment, du déploiement, du nettoyage et du post-traitement)


    Pouvez vous me clarifier l'erreur s'il-vous-plaît*? Merci

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 480
    Points : 19 491
    Points
    19 491
    Par défaut
    Salut Print_Man.

    Citation Envoyé par Print_Man
    Lier un site sur un hébergeur avec une bdd sur un autre
    On ne dit pas "sur" mais "chez", ce qui donne "Lier un site chez un hébergeur avec une bdd chez un autre".

    Ensuite, vous devez lire la documentation d'Alwaysdata concernant "Mariadb/Mysql".
    A ce sujet, pour vous connecter, la syntaxe est "mysql-[compte].alwaysdata.net", or ce n'est pas ce que vous utilisez.
    Le compte est celui que vous avez ouvert chez Alwaysdata.
    Le nom de la base de données est celui, en principe, préfixé par votre compte que vous avez créé sous Admin.
    C'est le même nom quand vous êtes sous PhpMyAdmin.

    La syntaxe est la suivante :
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    $Connexion = "mysql:host=mysql-compte.alwaysdata.net;port=3306;dbname=compte_votrebase";
    Vous devez remplacer ce que j'ai mis en rouge par vous propres valeurs.

    Ensuite, le user et le password sont ceux qu'Alwaysdata vous a donné pour entrer dans phpmyadmin.
    Le user est un numéro et non votre compte. Le password est le même que pour votre compte.

    Cordialement.
    Artemus24.
    @+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    D'accord, merci pour votre réponse. Je me suis concentrer sur l'API :
    Nom : api.png
Affichages : 333
Taille : 14,3 Ko

    connexion.php contient le code suivant:
    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
    20
    21
    
    <?php
    
    //modif 
    $dbname = "user_reservation";
    $host = "mysql-user.alwaysdata.net";
    $username = "ttt";
    $password = "ttt";
    
    $con = mysqli_connect($host, $username, $password, $dbname);
    
    // Vérification
    if (!$con) {
        echo "Message : Impossible de se connecter à la BD";
    die();
    } else {
        echo "Connexion effectuée avec succès!";
    }
    
    ?>
    api.php contient le code suivant :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
    header('Content-Type: application/json');
     
    // Autoriser l'accès depuis un domaine spécifique
    header('Access-Control-Allow-Origin: https://melun-voyage.netlify.app');
    // Autoriser les méthodes GET et POST
    header('Access-Control-Allow-Methods: GET, POST');
    // Autoriser le contenu avec les en-têtes Content-Type spécifiés
    header('Access-Control-Allow-Headers: Content-Type');
     
    // Étape 2 : Inclure le fichier de connexion
    require_once __DIR__ . '/connexion.php';
     
     
    // Connexion à la base de données
    $dbname = "user_reservation";
    $host = "mysql-user.alwaysdata.net";
    $username = "ttt";
    $password = "ttt";
     
    $con = new mysqli($servername, $username, $password, $dbname);
     
    if ($con->connect_error) {
        die("Erreur de connexion à la base de données : " . $con->connect_error);
    }
     
    // Récupérer toutes les réservations
    if ($_SERVER['REQUEST_METHOD'] === 'GET') {
        $query = $con->query("SELECT * FROM reservation");
     
        if ($query) {
            $reservations = [];
            while ($row = $query->fetch_assoc()) {
                $reservations[] = $row;
            }
     
            $response['error'] = false;
            $response['reservations'] = $reservations;
            $response['message'] = 'La récupération des réservations a réussi.';
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération des réservations.';
        }
     
        echo json_encode($response);
    }
     
    // Récupérer une réservation par nom
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['nom'])) {
        $nom = $_POST['nom'];
        $query = $con->prepare("SELECT * FROM reservation WHERE nom = ?");
        $query->bind_param("s", $nom);
     
        if ($query->execute()) {
            $result = $query->get_result();
     
            if ($result->num_rows > 0) {
                $reservation = $result->fetch_assoc();
                $response['error'] = false;
                $response['reservation'] = $reservation;
                $response['message'] = 'La récupération de la réservation par nom a réussi.';
            } else {
                $response['error'] = true;
                $response['message'] = 'Aucune réservation trouvée avec ce nom.';
            }
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération de la réservation par nom.';
        }
     
        echo json_encode($response);
    }
     
    $con->close();
    ?>
    le fichier proctfile contient le code suivant : web: sh run.sh .


    composer.json contient le code suivant :


    run.sh le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/bash
    php api.php

    Cependant j'ai les erreurs suivantes : C:\laragon\www\littleAPI>heroku logs --tail --app api-avion
    2023-07-02T12:18:27.200704+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=api-avion-7c409a1420d5.herokuapp.com request_id=5e3a22e5-8bf8-4502-9341-5838f38c76f0 fwd="162.255.45.108" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-02T12:18:28.118456+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=api-avion-7c409a1420d5.herokuapp.com request_id=d85101ea-7da7-4252-863b-71082af1e3cc fwd="162.255.45.108" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-02T12:30:23.069830+00:00 app[api]: Scaled to web@1:Basic by user darras.loic@outlook.com
    2023-07-02T12:30:24.163774+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-02T12:30:24.987531+00:00 app[web.1]: PHP Warning: require_once(connexion.php): Failed to open stream: No such file or directory in /app/api.php on line 12
    2023-07-02T12:30:24.987558+00:00 app[web.1]: PHP Fatal error: Uncaught Error: Failed opening required 'connexion.php' (include_path='.:') in /app/api.php:12
    2023-07-02T12:30:24.987559+00:00 app[web.1]: Stack trace:
    2023-07-02T12:30:24.987559+00:00 app[web.1]: #0 {main}
    2023-07-02T12:30:24.987560+00:00 app[web.1]: thrown in /app/api.php on line 12
    2023-07-02T12:30:25.117184+00:00 heroku[web.1]: Process exited with status 255
    2023-07-02T12:30:25.147767+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-02T12:30:25.153305+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-02T12:30:26.045555+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-02T12:30:26.949203+00:00 app[web.1]: PHP Warning: require_once(connexion.php): Failed to open stream: No such file or directory in /app/api.php on line 12
    2023-07-02T12:30:26.949222+00:00 app[web.1]: PHP Fatal error: Uncaught Error: Failed opening required 'connexion.php' (include_path='.:') in /app/api.php:12
    2023-07-02T12:30:26.949223+00:00 app[web.1]: Stack trace:
    2023-07-02T12:30:26.949223+00:00 app[web.1]: #0 {main}
    2023-07-02T12:30:26.949225+00:00 app[web.1]: thrown in /app/api.php on line 12
    2023-07-02T12:30:27.078753+00:00 heroku[web.1]: Process exited with status 255
    2023-07-02T12:30:27.112988+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-02T12:30:52.728877+00:00 app[api]: Scaled to web@0:Basic by user darras.loic@outlook.com
    2023-07-02T12:30:53.238898+00:00 heroku[web.1]: State changed from crashed to down
    2023-07-03T08:26:42.000000+00:00 app[api]: Build started by user darras.loic@outlook.com
    2023-07-03T08:26:53.000000+00:00 app[api]: Build succeeded
    2023-07-03T08:26:53.506901+00:00 app[api]: Deploy b4e882b5 by user darras.loic@outlook.com
    2023-07-03T08:26:53.506901+00:00 app[api]: Release v4 created by user darras.loic@outlook.com
    2023-07-03T08:35:50.000000+00:00 app[api]: Build started by user darras.loic@outlook.com
    2023-07-03T08:36:00.909707+00:00 app[api]: Deploy a6c7396c by user darras.loic@outlook.com
    2023-07-03T08:36:00.909707+00:00 app[api]: Release v5 created by user darras.loic@outlook.com
    2023-07-03T08:36:01.000000+00:00 app[api]: Build succeeded
    2023-07-03T10:49:02.524097+00:00 app[api]: Starting process with command `ls` by user darras.loic@outlook.com
    2023-07-03T10:49:03.767188+00:00 heroku[run.6796]: Awaiting client
    2023-07-03T10:49:03.907833+00:00 heroku[run.6796]: State changed from starting to up
    2023-07-03T10:49:06.090223+00:00 heroku[run.6796]: Starting process with command `ls`
    2023-07-03T10:49:09.640211+00:00 heroku[run.6796]: Process exited with status 0
    2023-07-03T10:49:09.670128+00:00 heroku[run.6796]: State changed from up to complete
    2023-07-03T11:04:20.000000+00:00 app[api]: Build started by user darras.loic@outlook.com
    2023-07-03T11:04:31.950591+00:00 app[api]: Deploy d4eab293 by user darras.loic@outlook.com
    2023-07-03T11:04:31.950591+00:00 app[api]: Release v6 created by user darras.loic@outlook.com
    2023-07-03T11:04:32.000000+00:00 app[api]: Build succeeded
    2023-07-03T11:07:38.060136+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=api-avion-7c409a1420d5.herokuapp.com request_id=8bc9ccbb-0231-475f-b40c-894e05e8d102 fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-03T11:07:38.627460+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=api-avion-7c409a1420d5.herokuapp.com request_id=aee9119b-7fd3-4ac9-8cac-06283b62680b fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-03T11:14:29.000000+00:00 app[api]: Build started by user darras.loic@outlook.com
    2023-07-03T11:14:40.000000+00:00 app[api]: Build succeeded
    2023-07-03T11:14:40.632952+00:00 app[api]: Deploy 7144d56f by user darras.loic@outlook.com
    2023-07-03T11:14:40.632952+00:00 app[api]: Release v7 created by user darras.loic@outlook.com
    2023-07-03T11:15:49.741147+00:00 app[api]: Starting process with command `ls` by user darras.loic@outlook.com
    2023-07-03T11:15:51.264673+00:00 heroku[run.3608]: State changed from starting to up
    2023-07-03T11:15:52.076585+00:00 heroku[run.3608]: Awaiting client
    2023-07-03T11:15:52.090755+00:00 heroku[run.3608]: Starting process with command `ls`
    2023-07-03T11:15:55.968271+00:00 heroku[run.3608]: Process exited with status 0
    2023-07-03T11:15:55.995841+00:00 heroku[run.3608]: State changed from up to complete


    Cela signifie donc*:

    que le message d'erreur "No web processes running" indique qu'il n'y a pas de processus web en cours d'exécution pour votre application. Cela peut être dû à un problème avec votre fichier Procfile ou à une configuration incorrecte.
    lorsque le processus web est lancé avec la commande sh run.sh ., il y a une erreur dans le fichier api.php à la ligne 12. L'erreur indique qu'il n'a pas été possible d'ouvrir le fichier connexion.php. Assurez-vous que le fichier connexion.php est présent dans le même répertoire que api.php sur Heroku.


    Pourtant le fichier connexion.php et api.php se situent dans le même dossier.

    Merci d'avance pour votre aide.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Il y a t-il un connaisseur s'il-vous-plaît ?

    Pour éclaircir le contexte, j'ai essayé de mettre en place une API avec Heroku.

    api.php a le code suivant :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <?php
    header('Content-Type: application/json');
     
    // Autoriser l'accès depuis un domaine spécifique
    header('Access-Control-Allow-Origin: https://melun-voyage.netlify.app');
    // Autoriser les méthodes GET et POST
    header('Access-Control-Allow-Methods: GET, POST');
    // Autoriser le contenu avec les en-têtes Content-Type spécifiés
    header('Access-Control-Allow-Headers: Content-Type');
     
    // Étape 2 : Inclure le fichier de connexion
    require_once __DIR__ . '/connexion.php';
     
    // Connexion à la base de données
    $dbname = "user_reservation";
    $servername = "mysql-user.alwaysdata.net";
    $port = "3306";
    $username = "user";
    $password = "";
     
    $con = new mysqli($servername, $username, $password, $dbname, $port);
     
    // Vérifier les erreurs de connexion
    if ($con->connect_error) {
        $response['error'] = true;
        $response['message'] = "Erreur de connexion à la base de données : " . $con->connect_error;
        echo json_encode($response);
        exit;
    }
     
    // Récupérer toutes les réservations
    if ($_SERVER['REQUEST_METHOD'] === 'GET') {
        $query = $con->query("SELECT * FROM reservation");
     
        if ($query) {
            $reservations = [];
            while ($row = $query->fetch_assoc()) {
                $reservations[] = $row;
            }
     
            $response['error'] = false;
            $response['reservations'] = $reservations;
            $response['message'] = 'La récupération des réservations a réussi.';
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération des réservations : ' . $con->error;
        }
     
        echo json_encode($response);
    }
     
    // Récupérer une réservation par nom
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['nom'])) {
        $nom = $_POST['nom'];
        $query = $con->prepare("SELECT * FROM reservation WHERE nom = ?");
        $query->bind_param("s", $nom);
     
        if ($query->execute()) {
            $result = $query->get_result();
     
            if ($result->num_rows > 0) {
                $reservation = $result->fetch_assoc();
                $response['error'] = false;
                $response['reservation'] = $reservation;
                $response['message'] = 'La récupération de la réservation par nom a réussi.';
            } else {
                $response['error'] = true;
                $response['message'] = 'Aucune réservation trouvée avec ce nom.';
            }
        } else {
            $response['error'] = true;
            $response['message'] = 'Échec de la récupération de la réservation par nom : ' . $con->error;
        }
     
        echo json_encode($response);
    }
     
    $con->close();
    ?>
    connexion.php a le code suivant :
    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
    <?php
    // Connexion à la base de données
    $dbname = "user_reservation";
    $servername = "mysql-user.alwaysdata.net";
    $port = 3306; // Remplacez par le port approprié
    $username = "user";
    $password = "";
     
    try {
        $con = new mysqli($servername, $username, $password, $dbname, $port);
        if ($con->connect_error) {
            throw new Exception("Impossible de se connecter à la base de données : " . $con->connect_error);
        }
        echo "Connexion effectuée avec succès!";
    } catch (Exception $e) {
        echo "Erreur de connexion à la base de données : " . $e->getMessage();
        die();
    }
    ?>

    J'ai toujours les messages suivants :
    2023-07-05T15:27:52.059261+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-05T15:27:53.092711+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-05T15:27:54.151166+00:00 app[web.1]:
    2023-07-05T15:27:54.151194+00:00 app[web.1]:
    2023-07-05T15:27:54.468403+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-05T15:27:54.468487+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-05T15:27:54.468488+00:00 app[web.1]: Stack trace:
    2023-07-05T15:27:54.468489+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-05T15:27:54.468489+00:00 app[web.1]: #1 {main}
    2023-07-05T15:27:54.468489+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-05T15:27:54.588595+00:00 heroku[web.1]: Process exited with status 255
    2023-07-05T15:27:54.617242+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-05T15:50:09.031943+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-05T15:50:10.122229+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-05T15:50:12.410274+00:00 app[web.1]:
    2023-07-05T15:50:12.410300+00:00 app[web.1]:
    2023-07-05T15:50:12.739450+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-05T15:50:12.739460+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-05T15:50:12.739461+00:00 app[web.1]: Stack trace:
    2023-07-05T15:50:12.739462+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-05T15:50:12.739463+00:00 app[web.1]: #1 {main}
    2023-07-05T15:50:12.739465+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-05T15:50:12.852572+00:00 heroku[web.1]: Process exited with status 255
    2023-07-05T15:50:12.884135+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-05T16:31:00.924049+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-05T16:31:02.335378+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-05T16:31:03.689023+00:00 app[web.1]:
    2023-07-05T16:31:03.689051+00:00 app[web.1]:
    2023-07-05T16:31:04.007451+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-05T16:31:04.007528+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-05T16:31:04.007528+00:00 app[web.1]: Stack trace:
    2023-07-05T16:31:04.007529+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-05T16:31:04.007529+00:00 app[web.1]: #1 {main}
    2023-07-05T16:31:04.007530+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-05T16:31:04.128152+00:00 heroku[web.1]: Process exited with status 255
    2023-07-05T16:31:04.168078+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-05T17:55:21.978558+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-05T17:55:23.007597+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-05T17:55:23.962827+00:00 app[web.1]:
    2023-07-05T17:55:23.962860+00:00 app[web.1]:
    2023-07-05T17:55:24.281178+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-05T17:55:24.281275+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-05T17:55:24.281276+00:00 app[web.1]: Stack trace:
    2023-07-05T17:55:24.281277+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-05T17:55:24.281277+00:00 app[web.1]: #1 {main}
    2023-07-05T17:55:24.281278+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-05T17:55:24.414683+00:00 heroku[web.1]: Process exited with status 255
    2023-07-05T17:55:24.447539+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-05T18:58:10.916509+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=api-avion-7c409a1420d5.herokuapp.com request_id=1c29cb03-5eb8-407a-a47f-bb056c20bed3 fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-05T18:58:11.180069+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=api-avion-7c409a1420d5.herokuapp.com request_id=215c84d2-5f3a-4fa9-8936-5e0418d80865 fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-05T20:43:57.217119+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-05T20:43:58.441566+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-05T20:43:59.496613+00:00 app[web.1]:
    2023-07-05T20:43:59.496640+00:00 app[web.1]:
    2023-07-05T20:43:59.819763+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-05T20:43:59.819839+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-05T20:43:59.819840+00:00 app[web.1]: Stack trace:
    2023-07-05T20:43:59.819840+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-05T20:43:59.819840+00:00 app[web.1]: #1 {main}
    2023-07-05T20:43:59.819841+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-05T20:43:59.972910+00:00 heroku[web.1]: Process exited with status 255
    2023-07-05T20:44:00.007811+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-06T02:24:18.634314+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-06T02:24:19.829071+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-06T02:24:20.830693+00:00 app[web.1]:
    2023-07-06T02:24:20.830721+00:00 app[web.1]:
    2023-07-06T02:24:22.175195+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-06T02:24:22.175275+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-06T02:24:22.175275+00:00 app[web.1]: Stack trace:
    2023-07-06T02:24:22.175276+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-06T02:24:22.175276+00:00 app[web.1]: #1 {main}
    2023-07-06T02:24:22.175276+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-06T02:24:22.303918+00:00 heroku[web.1]: Process exited with status 255
    2023-07-06T02:24:22.333118+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-06T07:49:26.969790+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-06T07:49:28.565610+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-06T07:49:29.691569+00:00 app[web.1]:
    2023-07-06T07:49:29.691581+00:00 app[web.1]:
    2023-07-06T07:49:30.011860+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-06T07:49:30.011926+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-06T07:49:30.011927+00:00 app[web.1]: Stack trace:
    2023-07-06T07:49:30.011927+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-06T07:49:30.011928+00:00 app[web.1]: #1 {main}
    2023-07-06T07:49:30.011928+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-06T07:49:30.155740+00:00 heroku[web.1]: Process exited with status 255
    2023-07-06T07:49:30.191780+00:00 heroku[web.1]: State changed from starting to crashed
    2023-07-06T09:07:32.804543+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=api-avion-7c409a1420d5.herokuapp.com request_id=b8c590cc-29ad-4c15-a981-e24e5218e5d9 fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-06T09:07:33.983296+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=api-avion-7c409a1420d5.herokuapp.com request_id=01bf6a2c-6d95-44ae-85e3-259b0d96def2 fwd="90.25.216.195" dyno= connect= service= status=503 bytes= protocol=https
    2023-07-06T13:33:55.983748+00:00 heroku[web.1]: State changed from crashed to starting
    2023-07-06T13:33:56.917305+00:00 heroku[web.1]: Starting process with command `sh run.sh .`
    2023-07-06T13:33:57.834633+00:00 app[web.1]:
    2023-07-06T13:33:57.834658+00:00 app[web.1]:
    2023-07-06T13:33:58.183850+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    2023-07-06T13:33:58.183909+00:00 app[web.1]: PHP Fatal error: Uncaught mysqli_sql_exception: No such file or directory in /app/api.php:21
    2023-07-06T13:33:58.183909+00:00 app[web.1]: Stack trace:
    2023-07-06T13:33:58.183909+00:00 app[web.1]: #0 /app/api.php(21): mysqli->__construct()
    2023-07-06T13:33:58.183909+00:00 app[web.1]: #1 {main}
    2023-07-06T13:33:58.183909+00:00 app[web.1]: thrown in /app/api.php on line 21
    2023-07-06T13:33:58.326867+00:00 heroku[web.1]: Process exited with status 255
    2023-07-06T13:33:58.357705+00:00 heroku[web.1]: State changed from starting to crashed
    Il faut savoir également, que mon site sur netlify a une page traitement.php :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    // Connexion à la base de données
    $servername = "mysql-user.alwaysdata.net";
    $username = "user";
    $password = "";
    $dbname = "user_reservation";
    $port = 3306;
     
    // Étape 2 : Inclure le fichier de connexion
    require_once __DIR__ . '/connexion.php';
     
     
    $conn = new mysqli($servername, $username, $password, $dbname, $port);
     
    if ($conn->connect_error) {
        die("Erreur de connexion à la base de données : " . $conn->connect_error);
    }
    // Vérification si le formulaire est soumis
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Récupération des données envoyées par le formulaire
        $nom = $_POST["nom"];
        $email = $_POST["email"];
        $telephone = $_POST["telephone"];
        $destination = $_POST["destination"];
        $categorie = $_POST["categorie"];
        $date_depart = $_POST["date_depart"];
        $date_retour = $_POST["date_retour"];
        $nb_personnes = $_POST["nb_personnes"];
        $commentaires = $_POST["commentaires"];
     
        // Préparation de la requête SQL d'insertion
        $sql = "INSERT INTO reservation (nom, email, telephone, destination, categorie, date_depart, date_retour, nb_personnes, commentaires)
                VALUES ('$nom', '$email', '$telephone', '$destination', '$categorie', '$date_depart', '$date_retour', '$nb_personnes', '$commentaires')";
     
        // Exécution de la requête SQL
        if ($conn->query($sql) === TRUE) {
            echo "Réservation enregistrée avec succès.";
        } else {
            echo "Erreur lors de l'enregistrement de la réservation : " . $conn->error;
        }
    }
     
    // Fermeture de la connexion à la base de données
    $conn->close();
    ?>

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 880
    Points
    1 880
    Par défaut
    Lisez bien les messages d'erreurs, on voit des choses comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2023-07-02T12:30:24.987531+00:00 app[web.1]: PHP Warning: require_once(connexion.php): Failed to open stream: No such file or directory in /app/api.php on line 12
    Et puis ça qui en découle probablement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2023-07-05T15:27:54.468403+00:00 app[web.1]: Connexion effectuée avec succès!PHP Warning: Undefined variable $servername in /app/api.php on line 21
    C'est un problème de chemin relatif, ou d'arborescence dans votre projet.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je vous remercie pour votre aide, cependant je ne comprends pas cette erreur.

    En effet, connexion.php et api.php se situent dans le même répertoire, c'est à dire précisément "C:\laragon\www\littleAPI" .

    Dans api.php j'avais donc intégrer cette ligne de code pour procéder à l'intégration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once __DIR__ . '/connexion.php';
    Malheureusement dans mon cas ceci ne fonctionne pas .

    Merci encore si vous pouvez m'indiquer un chemin, une idée à exploiter.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 880
    Points
    1 880
    Par défaut
    Affichez la valeur de __DIR__ sur votre site pour débugger, et vérifiez que le chemin correspond bien à ce que vous attendez.
    Manifestement non.
    Au cas où: si c'est un serveur Linux, les noms de fichiers sont case-sensitive. Ainsi, Api.php != api.php

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2022
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonsoir, merci encore pour votre aide .

    Ce n'est pas un serveur Linux. Cependant en testant le site sur wampserver, cela envoie bien sur la base de donnée hébergé sur alwaysdata : Nom : capture d'écran pour developpez.png
Affichages : 299
Taille : 152,9 Ko Nom : Capture d'écran 2023-07-07 221100.png
Affichages : 287
Taille : 4,1 Ko

    Donc le code en soi est peut-être correcte, c'est la liaison avec l'api qui ne fonctionne pas ? Un problème avec traitement.php ...


    Quand je suis sur netlify, j'ai le message suivant : Cette page du site www-voyage.netlify.app est introuvableAucune page Web trouvée à l'adresse :https://www-voyage.netlify.app/traitement.php
    HTTP ERROR 404

    traitement.php fonctionne donc avec wampserver mais pas avec netlify ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/01/2012, 12h00
  2. [XL-2010] Lier un email (ou pièce jointe) avec une ligne d'un tableau
    Par mikeactuaire dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/08/2011, 15h57
  3. Réponses: 0
    Dernier message: 16/03/2009, 09h36
  4. Listviewwebpart avec une liste d'un autre site
    Par sergio25 dans le forum SharePoint
    Réponses: 2
    Dernier message: 08/12/2008, 11h18
  5. [MySQL] Accéder à une base de données d'une autre site (sur un autre serveur)
    Par FCDB dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/06/2006, 16h59

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