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 :

Erreur de connections [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut Erreur de connections
    Bonjour,

    Je découvre PHP grâce au tuto de S. VAUTHIER (au passage, vraiment très bien), et j'en suis à l'étape 6.

    La base de donnée est bien renseignée lorsque je clique sur le bouton OK, mais au lieu de revenir sur la page form.php, j'ai ce message d'erreur:

    Page Web inaccessible

    La page Web à l'adresse http://localhost/PHP/form.php est peut-être temporairement inaccessible ou a peut-être été redirigée de façon permanente vers une nouvelle adresse Web.

    Plus d'informations sur cette erreur
    Message d'erreur original ci-dessous

    Erreur 101 (net::ERR_CONNECTION_RESET) : Erreur inconnue
    Je bloque un peu là, et si quelqu'un peut m'aider ça serait vraiment sympa.

    Merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    salut,
    tu pourrais donner le code de ta page stp merci.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Là voici... J'ai exactement repris l'exemple du tuto

    fonctions.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    function connectMaBase(){
        $base = mysql_connect ('localhost', 'root', '');  
        mysql_select_db ('MaBase', $base) ;
    }
    ?>
    form.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
    <?php
    include("fonctions.php");
    ?>
    <html>
        <head><title>Formulaire de saisie utilisateur </title></head>
        <body>
            <h1>Inscrivez-vous !</h1>
            <h2>Entrez les données demandées :</h2>
            <form name="inscription" method="post" action="form.php">
                Entrez votre pseudo : <input type="text" name="pseudo"/> <br/>
                Garçon ou fille ? 	<input type="radio" name="sexe" value="G"/>Garçon<input type="radio" name="sexe" value="F"/>Fille<br/>
                Entrez votre age : <input type="text" name="age"/><br/>
                <input type="submit" name="valider" value="OK"/>
            </form>
            <?php
            if (isset ($_POST['valider'])){
                //On récupère les valeurs entrées par l'utilisateur :
                $pseudo=$_POST['pseudo'];
                $age=$_POST['age'];
                $sexe=$_POST['sexe'];
                //On construit la date d'aujourd'hui
                //strictement comme sql la construit
                $today = date("y-m-d");
                //On se connecte
                connectMaBase();
     
                //On prépare la commande sql d'insertion
                $sql = 'INSERT INTO Utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")'; 
     
                /*on lance la commande (mysql_query) et au cas où, 
                on rédige un petit message d'erreur si la requête ne passe pas (or die) 
                (Message qui intègrera les causes d'erreur sql)*/
                mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
                // on ferme la connexion
                mysql_close();
            }
            ?>
        </body>
    </html>
    Quelque chose me dit que cela peut venir de la méthode de fermeture du mysql, mais j'en suis pas sûr du tout.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par Jiyuu
    Quelque chose me dit que cela peut venir de la méthode de fermeture du mysql, mais j'en suis pas sûr du tout.
    Pas seulement, tu rencontre surtout un problème de portée (visibilité, accessibilité) de variable.

    C'est le fait de faire ta connexion dans une fonction.
    Faut savoir que la fonction mysql_connect() retourne un ID unique de connexion (un link identifiant), c'est $base dans ton code, et ce $base n'a qu'une portée locale uniquement dans cette fonction connectMaBase()

    2 choses une :
    - Soit tu retourne cette valeur (return $base) et il te faut la récupérer + l'exploiter dans toutes les autres fonctions mysql_* réclamant ce paramètre, ce qui aura pour effet de conserver la même connexion.

    - Soit ne pas utiliser de fonction connectMaBase(), mais te contenter de faire cette connexion dans un fichier à part (genre connectMaBase.php) et l'inclure une fois.
    Cependant, si tu fait une requête dans une fonction, il y aura encore un souci de portée, mais elle peut facilement être corrigée, suffit de déclarer $base en globale dans cette (ou ces) fonctions.

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    il faudrait ajouter le nom de la connexion dans le mysql_close()
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Merci pour votre aide. J'ai rencontré encore quelques problèmes et du coup j'ai abandonné la présentation de l'auteur du tuto pour faire de la même manière que j'aurai fait en python, à savoir tout ce que j'ouvre dans une fonction je le ferme dans cette même fonction.

    Ça donne ça

    fonctions.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
    <?php
    function connectMaBase($pseudo, $sexe, $age, $today){
        $base = mysql_connect ('localhost', 'root', '');  
        mysql_select_db ('MaBase', $base) ;
     
    	//On prépare la commande sql d'insertion
        $sql = 'INSERT INTO Utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")'; 
     
        /*on lance la commande (mysql_query) et au cas où, 
        on rédige un petit message d'erreur si la requête ne passe pas (or die) 
        Message qui intègrera les causes d'erreur sql)*/
        mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
        // on ferme la connexion
        mysql_close($base);
    }
    ?>
    form.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
    <?php
    include("fonctions.php");
    ?>
    <html>
        <head><title>Formulaire de saisie utilisateur </title></head>
        <body>
            <h1>Inscrivez-vous !</h1>
            <h2>Entrez les données demandées :</h2>
            <form name="inscription" method="post" action="form.php">
                Entrez votre pseudo : <input type="text" name="pseudo"/> <br/>
                Garçon ou fille ? 	<input type="radio" name="sexe" value="G"/>Garçon<input type="radio" name="sexe" value="F"/>Fille<br/>
                Entrez votre age : <input type="text" name="age"/><br/>
                <input type="submit" name="valider" value="OK"/>
            </form>
            <?php
            if (isset ($_POST['valider'])){
                //On récupère les valeurs entrées par l'utilisateur :
                $pseudo=$_POST['pseudo'];
                $age=$_POST['age'];
                $sexe=$_POST['sexe'];
                //On construit la date d'aujourd'hui
                //strictement comme sql la construit
                $today = date("y-m-d");
                //On se connecte
                connectMaBase($pseudo, $sexe, $age, $today);
            }
            ?>
        </body>
    </html>
    Et là plus de souci.

    Encore merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide SVP : erreur de connection, tns protocol
    Par isidore dans le forum Connexions aux bases de données
    Réponses: 5
    Dernier message: 04/04/2006, 16h16
  2. [Access]: message d erreur: erreur de connection!!!
    Par amine15534 dans le forum Access
    Réponses: 1
    Dernier message: 21/03/2006, 14h45
  3. Erreur de connection avec une ADOTable
    Par Sunchaser dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/03/2006, 18h03
  4. [VB]DataEnvironment et erreurs de connections
    Par VVE dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 31/01/2006, 18h03
  5. [ADO.NET] Erreur de connection à une DB SQL
    Par BilTCD dans le forum ASP
    Réponses: 4
    Dernier message: 10/08/2005, 15h11

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