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

PHP & Base de données Discussion :

Erreur : could not find driver avec PDO sur free


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut Erreur : could not find driver avec PDO sur free
    Bonjour a tous,
    j'essais depuis hier, d'installer un minichat, mais j'ai cette erreur :
    Erreur : could not find driver.


    En local host ca fonctionne, mais pas sur le forum, ca fait des heures que je cherche et je ne trouve pas la solution.

    Si quelqu'un pouvait m' aider ( je debute en PHP), je m'en sort pas, j'ai cherche pendant des heures, la connection ne peut s'etablir. J'ai bien fait des modifications en passant pas mysql plutot que par PDO, ca n'a pas changé.

    Je precise que je suis sur Free.


    Merci d'avance pour l'aide que vous m'apporterez.

    fichier Minichat.php
    Code html :


    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Mini-chat</title>
            <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
        </head>
        <style type="text/css">
        form
        {
            text-align:center;
        }
        </style>
        <body>
     
        <form action="minichat_post.php" method="post">
            <p>
            <label for="pseudo">Pseudo</label> : <input type="text"
    name="pseudo" id="pseudo" /><br />
            <label for="message">Message</label> :  <input type="text"
    name="message" id="message" /><br />
            <input type="submit" value="Envoyer" />
     </p>
        </form>
     
     
    //code php inclus 
     
    <?php
    // Connexion à la base de données
    try
    {
     $bdd = new PDO('mysql:host=xxxxx;dbname=mb;charset=utf8', 'minichat', ' mdp');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    // Récupération des 10 derniers messages
    $reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 10');
     
    // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
    while ($donnees = $reponse->fetch())
    {
     echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
     
     }
    $reponse->closeCursor();
    ?>
     
    </body>
    </html>


    Page minichat_post.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
    // Connexion à la base de données
    try
    {
     $bdd = new PDO('mysql:host=xxxx;dbname=mb;charset=utf8', 'minichat', ' mdp');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    // Insertion du message à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO minichat (pseudo, message) VALUES(?, ?)');
    $req->execute(array($_POST['pseudo'], $_POST['message']));
     
    // Redirection du visiteur vers la page du minichat
    header('Location: minichat.php');
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas Mysql PDO sur free.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour et merci Sabotage de m'aider.

    J'ai recuperé des codes, basé sur la connection en Mysql ( il me semble que mysqly etait preféré a mysql, mais je ne sais plus ou je l'ai vu)


    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Mini-chat</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form {text-align:center;}
    </style>
    <body>
     
    <p>
    <form action="minichat.php" method="post">
    <strong>Votre Pseudo :</strong><br />
    <input type="pseudo" name="pseudo"><br />
    <br /><strong>Votre Message :</strong><br />
    <input type="textearea" name="message"><br />
    <br />
    <input type="submit" value="Envoyer">
    </form>
    </p>
     
     
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    {
     
    mysql_connect("localhost", "ma base", "mot de passe");
    mysql_select_db("tpgames");
     
    $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
     
    mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
    mysql_close();
    }
    }
    ?>

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    C'est vrai qu'il est préférable d'utiliser mysqli à mysql désormais.

    As-tu toujours des erreurs?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Patr77
    il me semble que mysqly etait preféré a mysql, mais je ne sais plus ou je l'ai vu
    Affiche les warnings dans ta page et tu t'en souviendras rapidement !

    Ceci dit, ce n'est pas uniquement que mysqli est préféré à mysql, c'est surtout que mysql est déprécié et plus maintenu (sauf failles de sécurité) depuis de nombreuses années, il ne faut plus l'utiliser quelle qu'en soit la raison.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Merci a vous autres aussi de s'interesser a mon probleme.


    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Mini-chat</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">
    form {text-align:center;}
    </style>
    <body>
     
     
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    {
     
      mysql_connect("localhost", "mabase", "mdp");// Local host a la place de sql.free.fr
      mysql_select_db("tpgames");
     
    $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
     
      mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
      mysql_close();
    }
    echo $pseudo, $message. '<br />';
    }
    ?>
     
     
    <p><a href="http://tpgames.free.fr/FoSFr/code_pour_campagne_essais/Positionoriginetexte.html">Pour revenir a la page precedente cliquez sur ce lien</a></p>
     
    </body>
    </html>


    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
    <?php
    mysql_connect("localhost", "mabase", "mdp");
    mysql_select_db("tpgames");
    $reponse = mysql_query("SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10") or die(mysql_error());
    mysql_close();
     
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <p><strong><?php echo $donnees['pseudo'];?></strong> : <?php echo $donnees['message'];?>
    <br />
    <?php
    }
     
    // Redirection du visiteur vers la page du minichat
     
    header('Location: minichat.php');// J'ai laissé il semble que sans cela je ne peux revenir a la page.
    ?>

    J'ai honteusement copié ce code sur internet, apres bien des essais j'ai pris celui ci.
    Mais je n'ai plus de code d'erreur,
    par contre je ne peux avoir qu'un seul message a la fois, si j'en fait un autre le premier est effacé , il ne reste pas pendant les 10 messages, pourtant order by a une limite a 10 messages.


    Voici la page ( en bas ):
    http://tpgames.free.fr/FoSFr/code_po...ginetexte.html

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bon j'ai reutilisé le code avec mysqli au lieu de mysql.


    Je ne connais pas ce type de code et donc la plupart des fonction qu'il faudrait utiliser, j'etais parti sur du PDO.

    Je vous passe le doctype.

    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
     
    <p>
    <form action="minichat.php" method="post">
    <strong>Votre Pseudo :</strong><br />
    <input type="pseudo" name="pseudo"><br />
    <br /><strong>Votre Message :</strong><br />
    <input type="textearea" name="message" id="message"rows="10" cols="50"<br />
    <br />
    <input type="submit" value="Envoyer">
    <input type="reset"  value="Annuler"> 
    </form>
    </p>
     
    <?php
    require'BDD.php'
    ?>
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    {
     
      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
      $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
     
      mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
      mysql_close();
    }
     
    }
    ?>


    fichier suivant minichat.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
    <?php
    require'BDD.php'
    ?>
     
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))//On recupere le pseudo et le message
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)//On verifie qu'il n'est pas vide
    {
     
    mysql_select_db("tpgames");//Pas de PDO pour Free,  ni de requete preparé et execute
     
    $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));//On retire l'effet des quote pour eviter les scripts
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //On retire l'effet des quote pour eviter les scripts
     
    mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");//On envoi le message
    mysql_close();//On ferme mysql pour eviter qu'il soit toujours ouvert
    }
    echo $pseudo, $message. '<br />';//On lit le message
    }
    ?>
    Et le fichier BDD.php avec lequel il vont se connecter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $link = mysqli_connect("localhost", "mabase", "mdp");//localhost a la place de sql.free.fr
     
    /* Vérification de la connexion */
    if (mysqli_connect_errno()) 
    {
        printf("Échec de la connexion : %s\n", mysqli_connect_error());
        exit();
    }
    ?>
    la variable $link n'est pas repris ailleurs, et je ne sais pas comment faire ce code.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as mis (( ligne 2.

    Sinon tu as mélangé mysql et mysqli, ça ne va pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Je suis en train de chercher les nouvelles fonction mysqli.

    En attendant j'ai ce nouveau message :

    Fatal error: Call to undefined function mysqli_connect() in /mnt/153/sdb/b/7/tpgames/FoSFr/code_pour_campagne_essais/BDD.php on line 2


    probablement a cause du $link qu'il ne trouve pas ailleurs ???

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a peut être pas non plus mysqli sur free.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    J'ai vu les nouvelles fonctions mais je ne connais la syntaxe.



    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
    	<p>
    <form action="minichat.php" method="post">
    <strong>Votre Pseudo :</strong><br />
    <input type="pseudo" name="pseudo"><br />
    <br /><strong>Votre Message :</strong><br />
    <input type="textearea" name="message" id="message"rows="10" cols="50"<br />
    <br />
    <input type="submit" value="Envoyer">
    <input type="reset"  value="Annuler"> 
    </form>
    </p>
     
    <?php
    require'BDD.php'
    ?>
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    {
     
     
    $message = mysqli_real_escape_string($link, htmlspecialchars($_POST['message']));
    $pseudo = mysqli_real_escape_string($link, htmlspecialchars($_POST['pseudo']));
     
    mysqli_query($link, "INSERT INTO minichat VALUES('', '$pseudo', '$message')");
     
    mysql_close();
    }
     
    }
    ?>
     
    	<p><strong><?php echo $donnees['pseudo'];?></strong> <?php echo $donnees['message'];?>
    <br />


    fichier minichat

    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
     
     
     <?php
    require'BDD.php'
    ?>
     
    <?php
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))//On recupere le pseudo et le message
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)//On verifie qu'il n'est pas vide
    {
    if (!empty($_POST['pseudo'] != NULL AND $_POST['message'] !=NULL)
     
     
    $message = mysqli_real_escape_string(htmlspecialchars($_POST['message']));//On retire l'effet des quote pour eviter les scripts
    $pseudo = mysqli_real_escape_string(htmlspecialchars($_POST['pseudo'])); //On retire l'effet des quote pour eviter les scripts
     
    mysqli_query($link, "SELECT INTO minichat VALUES('', '$pseudo', '$message')");//On envoi le message
     
    mysqli_close($link);//On ferme mysql pour eviter qu'il soit toujours ouvert
    }
    }
    while ($donnees = mysqli_fetch_array($reponse))
     
    echo $pseudo, $message. '<br />';//On lit le message
     
    ?>
     
    <p><strong><?php echo $donnees['pseudo'];?></strong> : <?php echo $donnees['message'];?>
    <br />

    fichier BDD.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $link = mysqli_connect("localhost", "mabase", "mdp"); //localhost a la place de sql.free.fr
     
    /* Vérification de la connexion */
    if (mysqli_connect_errno()) 
    {
        printf("Échec de la connexion ", mysqli_connect_error());
        exit();
    }
    ?>
    Fatal error: Call to undefined function mysqli_connect() in /mnt/153/sdb/b/7/tpgames/FoSFr/code_pour_campagne_essais/BDD.php on line 2


    La fonction mysqli_connect a un probleme, ( et je ne connais pas l'anglais).


    Je ne sais pas ce que vaut la syntaxe, on est loin du PDO.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca ne sert à rien de nous rebalancer tout ton code.
    Verifie dans ton phpinfo() quelle version de PHP est installée et si tu as l'extension mysqli.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Version php 5.3.13

    Mysqli coché dans wamp.



    Verifie dans ton phpinfo() ???
    dans quel fichier le mettre et quelle syntaxe ?

    J'ai bien ceci mais je ne connais pas la syntaxe ( je suis debutant en php).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    // Affiche toutes les informations, comme le ferait INFO_ALL
    phpinfo();
     
     
    ?>
    Cela dit je vous remercie pour votre patience.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as ton problème sur l'hebergement free ou en local avec wamp ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    free, et wamp apres avoir passé du myslq au mysqli
    mais les message ne sont pas les memes.

    avec wamp
    ( lorsque je retire le headerlocation qui me fait aller sur la page d'envoi du message):
    Parse error: syntax error, unexpected $end in C:\wamp\www\code_pour_campagne_essais\minichat.php on line 59 <= qui n'existe pas

    j'ai rectifie la ligne pour le wamp.

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le fichier minichat.php que tu nous montres n'a pas de problème de Parse, vérifie que le fichier que tu as réellement.

    Au passage quand même, simplifie tes conditions en utilisant empty() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    { 
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
    {
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_POST['pseudo']) && !empty($_POST['message']))
    Sinon tu as toujours des fonctions mysql qui se balladent.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Voici ce que met free dans ses pages:


    Activer sa base de données MySQL
    Avant de pouvoir utiliser ces fonctionnalités, vous devez activer votre base de données. Cette opération va permettre de
    créer et de réserver de la place pour stocker votre base de données.
    Les bases de données sont crées automatiquement toutes les nuits.
    Il faudra utiliser votre login et votre mot de passe habituel pour y accéder.

    Activer ma base de données MySQL pour PHP3
    Accéder à la base de données avec PHP

    Les fonctions habituelles de PHP3 ou PHP4 pour utiliser MySQL sont disponibles. Votre base de données porte le
    nom de votre login.
    Pour y accéder, vous devez utiliser votre login/mot de passe habituel et vous connecter sur le
    serveur sql.free.fr Exemple de connexion :

    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 
    //ici les parametres pour la connexion
       $host="sql.free.fr"; 
       $base="Votre login"; 
       $passe="Votre mot de passe"; 
    //on effectue la connexion
           @mysql_connect("$host","$base","$passe");
     
    //Selection de la base de données qui porte le meme nom que votre login
              $select_base=@mysql_select_db("$base"); 
    //Si la connexion echoue
     
     if (!$select_base) 
    //Afficher la ligne suivante
        echo "<font color=\"#CC0000\"><b>Mauvaise configuration!!! </b></font><br>  
    Vérifiez que votre login et mot de passe sont bien saisi pour la connexion 
    à la base <b>$base</b>"; 
    //Sinon afficher celle-ci
     else echo "<b>Félicitations!!!</b> <br>Vous avez réussi à vous connecter correctement à 
    votre base de données <b>$base</b>"; 
    ?>
    Exemple
    Attention : Il n'est pas possible de créer de nouvelle base de données. Vous devez vous contenter d'utiliser celle qui est
    créée pour vous et qui porte le nom de votre login
    Plus d'informations sur l'utilisation de MySQL avec PHP

    N'hésitez pas à consulter les différentes documentations sur la question :
    • Nombreux PHPScripts pout agrémenter votre site ou tout simplement vous servir d'exemple:
    • A brief PHP3 Tutorial (en français)
    • Informations sur php et MySQL (francais)
    • Le site officiel de PHP3 (Anglais)

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Voici une page de ce forum sur free :
    http://www.developpez.net/forums/d14...r/mysqli-free/
    Il faudrait mettre ce message sur ce forum de façon beaucoup plus visible.

    Avec mysql pas de probleme, sauf avec PDO et mysqli.
    La messe est dite, je reviens sur mysql.

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Je reviens sur le code mysql que voici, il fonctionne mais ne garde qu'un message :


    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
     
    	<p>
    <form action="minichat.php" method="post">
    <strong>Votre Pseudo :</strong><br />
    <input type="pseudo" name="pseudo"><br />
    <br /><strong>Votre Message :</strong><br />
    <input type="textearea" name="message" id="message"rows="10" cols="40"<br />
    <br />
    <input type="submit" value="Envoyer">
    <input type="reset"  value="Annuler"> 
    </form>
    </p>
     
     <?php
    require'BDD.php'
    ?>
     
    <?php
     
     
     if (isset($_POST['pseudo']) and isset($_POST['message']) //Si les messages existent
     if (!empty($_POST['pseudo']) && !empty($_POST['message'])) //Si on a quelque chose à enregistrer
     
    // On utilise la fonction PHP htmlspecialchars pour éviter d'enregistrer du code HTML dans la 
    table
    {
      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));//On retire l'effet des quote pour eviter les scripts
      $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //On retire l'effet des quote pour eviter les scripts
     
         //On enregistre dans la table minichat
    mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
    }
    mysql_close();
    }
    }
     
    ?>

    Fichier minichat.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
     
     <?php
    require'BDD.php'
    ?>
     
    <?php //on doit récupérer les 10 dernières entrées de la table
    mysql_select_db("minichat"); 
    if (isset($_POST['pseudo']) && isset($_POST['message']))  
    { 
        if (!empty($_POST['pseudo']) && !empty($_POST['message']))  
        { 
            $message = mysql_real_escape_string(utf8_decode($_POST['message'])); 
            $pseudo = mysql_real_escape_string(utf8_decode($_POST['pseudo']));
     
    		// On utilise la requête suivante pour récupérer les 15 derniers messages :
            $reponse = mysql_query("INSERT INTO minichat(pseudo,message,timestamp) VALUES('$pseudo', '$message', '".time()."')"); 
        } 
    } 
    // Puis on fait une boucle pour afficher tous les résultats :
    $reponse = mysql_query("SELECT * FROM minichat "); 
    while($val = mysql_fetch_array($reponse)) 
    { 
      echo '<p><strong>'.htmlentities(stripslashes($val['pseudo'])).'</strong>  
      à '.date('H\:i\:s',$val['timestamp']).' : '. htmlentities(stripslashes($val['message'])) .'</p>'; 
    } 
    ?>
    Le code fonctionne mais je n'ai qu'un message qui s'affiche, pas 10 messages.

    Code modifiés, ca fonctionne maintenant.

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A quel endroit est la requête qui lit la table pour récupérer les messages enregistrées ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/04/2014, 15h05
  2. [PDO] Connexion avec PDO [Erreur : could not find driver]
    Par Berlo56 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/04/2014, 10h41
  3. [PDO] Erreur de connexion : could not find driver
    Par Schnuffel dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/08/2009, 13h23
  4. [Hibernate] : Erreur Could not find datasource
    Par tipaquo dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/10/2005, 10h43
  5. Réponses: 3
    Dernier message: 30/03/2005, 23h15

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