Page 1 sur 1

problème connection base de donnée

Posté : 24 nov. 2016, 10:08
par ulquiorra
Bonjour j'essaye d'apprendre le php tout seul. Je suis en train de suivre des tutos sur internet, je suis en train de faire un tp. C'est un remplissage de formulaire qui doit s'enregistrer dans une base de donnée mais j'ai plusieurs erreurs.

Warning: include(fonctions.php): failed to open stream: No such file or directory in C:\wamp\www\php\abonnement.php on line 2
Warning: include(): Failed opening 'fonctions.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\php\abonnement.php on line 2
Ca se sont les deux erreurs que j'ai quand je lance ma page.

Fatal error: Call to undefined function connectMaBase() in C:\wamp\www\php\abonnement.php on line 51
Et ca c'est l'erreur que j'ai quand je clique sur "OK" sur mon formulaire.

Et Voilà le code
<?php
include("fonctions.php");
 
/*ECRAN QUI S AFFICHE SI L ON A CLIQUE OK*/
if (isset ($_POST['valider'])){
    //On récupère les valeurs entrées par l'utilisateur :
    $civ=$_POST['civilite'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $age=$_POST['age'];
    $adresse=$_POST['adresse'];
    $CP=$_POST['CP'];
    $ville=$_POST['ville'];
    $tel=$_POST['tel'];
    $abo=$_POST['abo'];
 
    //On affiche l'écran de rappel
    //gérer le féminin
    $e='';
    if(($civ=='Mme')||($civ=='Mlle')){
        $e='e';
    }
    //gérer le nom complet du magazine
 
    if ($abo=='main'){
        $mag='J\'ai la main verte.';
    }
    elseif ($abo=='pied'){
        $mag='J\'ai le pied marin.';
    }
    elseif ($abo=='oeil'){
        $mag='J\'ai l\'oeil vif.';
    }
    else{
        $mag='J\'ai la rate qui se dilate.';
    }
 
    echo'<h2>VOUS &Ecirc;TES :</h2>';
    echo $civ.' '.$nom.' '.$prenom.', ag&eacute;'.$e.' de '.$age.' ans.<br/><br/>
    <strong>Votre adresse :</strong><br/>'.
    $adresse.'<br/>'.
    $CP.' '.$ville.'<br/><br/>
    <strong>Votre t&eacute;l&eacute;phone : </strong>'.$tel.'<br/><br/>';
    echo'<h2>VOUS AVEZ CHOISI DE VOUS ABONNER &Agrave;</h2>';
    echo'<h3>'.$mag.'</h3><br/>
    <h4>Merci de vous &ecirc;tre abonn&eacute;'.$e.' &agrave; notre magazine !</h4>';
 
    //On alimente la base de données
 
    //On se connecte
    connectMaBase();
 
    //On prépare la commande sql d'insertion
    $sql = 'INSERT INTO Abonnes VALUES("","'.$civ.'","'.$nom.'","'.$prenom.'","'.$age.'","'.$adresse.'","'.$CP.'","'.$ville.'","'.$tel.'","'.$abo.'")'; 
 
    /*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();
}
 
/*ECRAN QUI S AFFICHE SI L ON N A RIEN CLIQUE DONC A L ARRIVEE SUR LA PAGE*/
/*SEULE LA CONDITION ELSE EST DANS DES BALISES PHP PUIS LA PAGE HTML REPREND SON COURS*/
else{
?>
<html>
    <head><title>S'abonner à l'un de nos magazines</title></head>
    <body>
        <h1>POUR VOUS ABONNER :</h1>
 
        <form name="inscription" method="post" action="abonnement.php">
 
            <h2>Veuillez saisir vos donn&eacute;es d'identit&eacute; :</h2>
            <input type="radio" name="civilite" value="M"/>M.
            <input type="radio" name="civilite" value="Mme"/>Mme
            <input type="radio" name="civilite" value="Mlle"/>Mlle <br/>
            Nom : <input type="text" name="nom"/> <br/>
            Pr&eacute;nom :<input type="text" name="prenom"/> <br/>
            &Acirc;ge : <input type="text" name="age"/><br/>
            Adresse : <input type="text" name="adresse"/> <br/>
            Code Postal : <input type="text" name="CP" maxlength="5"/> <br/>
            Ville : <input type="text" name="ville"/> <br/>
            Num&eacute;ro de t&eacute;l&eacute;phone personnel : <input type="text" name="tel" maxlength="10"/> <br/>
 
            <h2>Veuillez cocher le magazine choisi :</h2>
 
            <input type="radio" name="abo" value="main"/>J'ai la main verte. <br/>
            <input type="radio" name="abo" value="pied"/>J'ai le pied marin. <br/>
            <input type="radio" name="abo" value="oeil"/>J'ai l'oeil vif. <br/>
            <input type="radio" name="abo" value="rate"/>J'ai la rate qui se dilate. <br/>
 
            <input type="submit" name="valider" value="OK"/>
 
        </form>
        <?php
       //Bien sûr il faut penser à fermer l'accolade de notre condition d'affichage
        }
        ?>
    </body>
</html>
Et voilà la fonction pour la connection a la db (sur une autre page)
<?php
function connectMaBase(){
    $base = mysql_connect ('mysql wampserver', 'root', '');  
    mysql_select_db ('MaBase', $base) ;
}
?>
Si quelqu'un sait m'aider, merci beaucoup
PS: ne faites pas attention à l'orth^^

Re: problème connection base de donnée

Posté : 24 nov. 2016, 10:21
par @rthur
Bonjour,

L'avantage du PHP c'est qu'il y a des messages d'erreurs très explicites donc il faut toujours s'y intéresser pour comprendre le problème.
Dans tonc as :
include(fonctions.php): failed to open stream: No such file or directory in C:\wamp\www\php\abonnement.php on line 2
:arrow: 1) Le problème se situe dans le fichier abonnement.php à la ligne 2
:arrow: 2) Tu fais appel à la fonction include(fonctions.php) qui permet d'inclure un fichier php dans un autre fichier php
:arrow: 3) PHP te remonte une erreur car "No such file or directory" => le fichier fonctions.php n'existe pas dans le répertoire C:\wamp\www\php\

Re: problème connection base de donnée

Posté : 24 nov. 2016, 11:10
par ulquiorra
Merci pour ta réponse rapide.

J'avoue que c'est une erreur à la con. (mon fichier fonction.php était bien là mais dans mon include j'avais mis fonctions.php).

Maintenant quand je clique sur ok dans mon formulaire les données vont bien dans ma base de donnée mais une erreur s'affiche quand-même.
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\php\fonction.php on line 3
Call Stack
# Time Memory Function Location
1 0.0000 258032 {main}( ) ..\abonnement.php:0
2 0.0010 261984 connectMaBase( ) ..\abonnement.php:51
3 0.0010 262272 mysql_connect ( ) ..\fonction.php:3

PS : J'ai remis "localhost" dans ma function connectMaBase()

Re: problème connection base de donnée

Posté : 24 nov. 2016, 11:26
par kevin254kl
utilise pdo ou mysqli, mysql est déprécié.

Code : Tout sélectionner

$user = ""; $pass =""; ... try { $bdd = new PDO('mysql:host=$host;dbname=dbname, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); } catch (PDOException $e) { print "Erreur !: " . $e->getMessage() . "<br/>"; die(); }
après change tes requêtes en requête préparé.

Re: problème connection base de donnée

Posté : 25 nov. 2016, 17:46
par two3d
http://php.net/manual/fr/mysqli.constru ... t-examples

Je préfère le style procédural, moins de "param" à renseigner je trouve

Re: problème connection base de donnée

Posté : 09 déc. 2016, 10:19
par Robervale
http://php.net/manual/fr/mysqli.constru ... t-examples

Je préfère le style procédural, moins de "param" à renseigner je trouve
Mais ce style que t'apelle procédural est dépassé et sera obselète c'est pour cela on te demande de changer... et t'inquiète pour mois aussi sa parraissait compliquer mais ce n'est qu'une question d'habitude et de logique

Re: problème connection base de donnée

Posté : 09 déc. 2016, 16:33
par two3d
Obsolète bientôt ? non tu déconne ??

Re: problème connection base de donnée

Posté : 09 déc. 2016, 17:02
par @rthur
Obsolète bientôt ? non tu déconne ??
Je te rassure, il n'est absolument pas prévu que PHP arrête le style procédural.

Re: problème connection base de donnée

Posté : 11 déc. 2016, 12:44
par two3d
Tu me rassure arthur!

Bon we!