impossible de me connecter a ma base de donnée

sarahvillage
Invité n'ayant pas de compte PHPfrance

21 déc. 2020, 21:35

Bonjour à tous,

je m'appelle sarah et j'ai 21 ans. Il y a peu j'ai décidé de faire mon site internet moi meme pour ma petite boutique, pour l'instant tout se déroulait plutôt bien jusqu'au moment de connecter ma base de données.

Je suis novice pour ce qui est du codage mais je suis les tutoriels à la lettre (mais également novice du forum).

je vais donc essayé de vous donner un maximum d'information ! (Si jamais vous sauriez m'aider j'ai un discord si cela est plus pratique : sarahvillage#0468.

mes infos :

- Mac OS, - j'utilise MAMP, - PHPMYADMIN, - je suis en local.

Les infos sur MAMP : host : localhost, port : 3306, username : root, password : root. Ma base de donnée s'appelle : MaBase

je suis en apache, php version : 7.4.12, apache port : 80, nginx port : 80, Mysql port : 3306.

mysql version : 5.7.32, document root : Applications ▹ MAMP ▹ htdocs

Voici mon code (mon fichier pour le formulaire : form.php, celui pour connecter ma base : fonctions.php) :
<?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>
<?php
function connectMaBase(){
    $base = mysql_connect ('localhost:3306', 'root', 'root');
    mysql_select_db ('MaBase', $base) ;
}
?>
le formulaire a l'air de fonctionner mais rien ne s'envoie à ma base de donnée...

voila j'ai cherché une solution sur des dizaines de page de forum mais rien ne marche, et certain terme technique que je ne comprends pas me bloque.

Merci beaucoup à vous si vous tentez de m'aider !

Bonne journée !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 déc. 2020, 00:12

Les fonctions mysql_* n'existe plus, elles ont été remplacées par mysqli_ ou PDO.
Attention quand tu suis des tutos à prendre des tutos récents.
Par ailleurs, tu dois forcément avoir dans les logs de ton serveur un message d'erreur qui t'indique celà de façone xplicite donc il est important, surtout quand on est débutant d'aller voir dans les logs les messages d'erreur pour pouvoir apprendre à débuguer son code.

De mémoire, avec MAMP, il faut que tu ouvres un terminal et que tu fasses :

Code : Tout sélectionner

tail -f /Applications/MAMP/logs/php_error.log
ou si ça ne marche pas :

Code : Tout sélectionner

tail -f /Applications/MAMP/logs/phperror.log
Sinon tu peux aussi mettre au début de ta page :
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
Quand tout le reste a échoué, lisez le mode d'emploi...