Problème insertion dans la base de donnée

Résolu
bonjour svp help je suis débutante en programmation et j'ai pas pu inséré dans un table et j'ai pas trouvé ou est le problème.au début j'ai crié une req pdo pour la connexion a la base et ça marche pas.voila mon code(le formulaire contient des mots en arabe)
le problème est la page config.php s'affiche correctement mais les données ne s'ajoutent pas dans la base.aidez moi svp
<?php
include'../travail/Config.php';
?>
<!Doctype html>
<html>


<head>
<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

 </head>
    
 <script type="text/javascript">


function verif_formulaire()
{
 if(document.f1.login.value == "") {
   alert("الرجاء ادخال رمز الدخول!");
   document.f1.login.focus();
   return false;
  }
  if(document.f1.mot_de_passe.value == "") {
   alert("الرجاء ادخال كلمة السر!");
   document.f1.mot_de_passe.focus();
   return false;
  }
  
}
//--></script>


<body>
<?php
if(isset($_POST['submit']))
{ 

if($_POST['login']==$_POST['login']){

        $login="";
        if (isset($_POST['login'])){
                $login = $_POST['login'];
   
        }
  
        $mot_de_passe="";
        if (isset($_POST['mot_de_passe'])){
                $mot_de_passe = $_POST['mot_de_passe'];
   
        }        
          

 
?> 
 
                        <form name="f1" role="form" method="post" action="config.php" onSubmit="return verif_formulaire()">

<br><br><br><br>
<font size="3" face="Times new roman"> <b><div align="center">مرحبا بكم في الصفحة الرئيسية<br> </font>

<p> 
<br><br><br><br><br><br>
<div align="right"><input type="login" name="login" />   رمز الدخول<br> <br> <br> </div>
<div align="right">  <input type="password" name="mot_de_passe" />     كلمة السر<br> <br> <br> </div>
<br> <br> <br> 
<div align="center"><input type="submit" value="الدخول"  /> </div>
</p> 
</form> 
<p></p> 
 <p><b><center>  التسجيل<a href="inscription.html">هنا
</a></center> 
                           
                               
                        </form>
                  

    <!-- jQuery -->
    <script src="../bower_components/jquery/dist/jquery.min.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="../dist/js/sb-admin-2.js"></script>

</body>
</html>
 

et voila la page config.php

<?php

$conn=mysql_connect("localhost","root","");
mysql_select_db("amie",$conn);

//recuperation donnees


$n=$_POST['login'];
$p=$_POST['mot_de_passe'];



//$req ="insert into admin values('','$n','$p' )";
mysql_query($req);
echo($req);
mysql_close();


?>

<!doctype html>
<html>
<head>
<meta charest="UTF-8">
<meta name="viewport"  content="width-device-width,user-scalable=no,intial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0>
<meta http-equiv="X-UA-compatible" content="ie-edge">
<title>document</title>
</head>
<body>
<h1> insertion des admins</h1>
<p><?php echo $message;    ?></p>
</body>
</html>


EDIT : Ajout des balises de code (la coloration syntaxique).

Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Jordane45

5 réponses

Résumé de la discussion

Une débutante en programmation rencontre un problème d'insertion des données du formulaire dans la base MySQL : la page config.php s'affiche correctement mais aucune donnée n'est enregistrée. Le code utilise l'ancienne extension mysql et une tentative de connexion PDO, tandis que le formulaire en arabe n'est pas correctement pris en compte, et le script d'insertion ne s'exécute pas. Des réponses suggèrent des causes possibles : clé primaire du champ login, vérification JavaScript mal ciblée, choix entre PDO et mysqli, et des questions sur l'emplacement local ou l'URL d'accès. D'autres échanges soulignent aussi l'importance d'utiliser mysqli ou PDO correctement et d'afficher les messages d'erreur pour diagnostiquer le problème.

Bobot (l’IA à votre service)
  1. Modérateur
    Bonjour,

    Tu parles de PDO ... mais tu utilises mysql_connect

    Bref...
    Commence par appliquer TOUT ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    Puis là : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    1. Modérateur
      Et puis... ta requête d'insertion... elle est en commentaire visiblement
      //$req ="insert into admin values('','$n','$p' )";
      

      donc normal que ça ne fonctionne pas !
    2. merci jordane45 pour le pdo je l'ai utilisé au début mais ça marche pas donc j'ai changé et j'ai utilisé mysql_connect et pour la req en comnt j'ai essaié plusieurs req insert into et le problm est tjrs le mm
    3. Modérateur
      Si pdo ne fonctionne pas... Passe a mysqli
  2. Modérateur
    Tu peux essayer ça :

    <?php
    //Activation des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    require_once'../travail/Config.php';
    
    if(isset($_POST['submit'])){ 
      $login = !empty($_POST['login']) ? $_POST['login'] : '';
      $mot_de_passe = !empty($_POST['mot_de_passe']) ? $_POST['mot_de_passe'] : '';   
      
      //préparation de la requête et des variables
      $sql = "INSERT INTO admin (login,mot_de_passe)   VALUES (:login,:mot_de_passe)";
    
      $datas = array(':login'=>$login, ':mot_de_passe'=>$mot_de_passe);
    
      //Execution de la requete
      try{
        $requete = $bdd -> prepare($sql) ;
        $requete->execute($datas) ;
      }catch(Exception $e){
        // en cas d'erreur :
         echo " Erreur ! ".$e->getMessage();
         echo " Les datas : " ;
        print_r($datas);
      }
    }
    ?>
    <!Doctype html>
    <html>
    <head>
    <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
     </head>  
     <body>
      <form name="f1" role="form" method="post" action="" onSubmit="return verif_formulaire()">
         <br><br><br><br>
         <font size="3" face="Times new roman"> <b><div align="center">????? ??? ?? ?????? ????????<br> </font>
         <p> 
         <br><br><br><br><br><br>
         <div align="right"><input type="login" name="login" />   ??? ??????<br> <br> <br> </div>
         <div align="right">  <input type="password" name="mot_de_passe" />     ???? ????<br> <br> <br> </div>
         <br> <br> <br> 
         <div align="center"><input type="submit" name="submit" value="??????"  /> </div>
         </p> 
      </form> 
      <p></p> 
       <p><b><center>  ???????<a href="inscription.html">???
      </a></center> 
       
        <!-- jQuery -->
        <script src="../bower_components/jquery/dist/jquery.min.js"></script>
    
        <!-- Bootstrap Core JavaScript -->
        <script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
    
        <!-- Metis Menu Plugin JavaScript -->
        <script src="../bower_components/metisMenu/dist/metisMenu.min.js"></script>
    
        <!-- Custom Theme JavaScript -->
        <script src="../dist/js/sb-admin-2.js"></script>
        
        <script type="text/javascript">
        function verif_formulaire(event)
        {
         event.preventDefault();
         if(document.f1.login.value == "") {
           alert("?????? ????? ??? ??????!");
           document.f1.login.focus();
           return false;
          }
          if(document.f1.mot_de_passe.value == "") {
           alert("?????? ????? ???? ????!");
           document.f1.mot_de_passe.focus();
           return false;
          }
          
        }
      </script>
    
    </body>
    </html>
    


    Et ton fichier de config :
    <?php
    //connexion à la bdd
    try{
    $bdd =new PDO('mysql:host=localhost; dbname=amie; charset=utf8', 'root', '');
    // Activation des erreurs PDO
     $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
     $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
    ?>
    


    1. jordane merci pour ton aide mais ca marche pas voici le resultat
      1. Modérateur
        Dis voir... Tu es en local sur ton ordi ou sur un serveur ???
        Tu as quoi comme url ?!

        Si tu es en local sur ton ordi... Passes tu bien par le localhost ??
    2. jordane je suis en local sur mon ordinateur et le localhost fonctionne normalement

      1. Modérateur
        Et tu ouvres ton fichier avec quelle url ?
      2. je met localhost / puis nom de fichier
      3. Modérateur
        ......
        Tu ne pourrais pas me COLLER l'url qui se trouve dans ton navigateur lorsque tu ouvres ton fichier ???
        Je veux voir EXACTEMENT ce qui y est écrit .... dont le NOM DU FICHIER lui même (avec son extension...)
        Pourrais tu également nous recoller l'intégralité du code de ce fichier qu'on s'assure que tu n'aies rien oublié.

        NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
        Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
      4. jordane voici l'url : http://localhost/travail/inscription.php le fichier inscription.php est mit dans un dossier appelé travail
      5. Modérateur
        @mimouta88Et le code.... que je t'ai demandé ??
    3. Modérateur
      Tu es en quelle version de php ?
      Quelle version de WAMP as tu installé ? Tu as bien pris la dernière version ??

      Si tu ne sais pas... créé un fichier info.php dans lequel tu places le code suivant
      <?php
      phpinfo();
      

      </code>
      Puis tu ouvres ce fichier depuis ton navigateur et tu pourras y trouver :
      la version de php (dans l'en-tête du tableau)
      Puis des infos concernant les drivers installés ( tu devrais les voir au niveau du tableau : API Extensions )
      Puis encore plus bas dans le tableau...

      1. jordane c'est bizare j'ai crée un fichier info.php et quand je l'ouvre dans le navigateur une page blanche s'affiche!!!
        voila les données affichés sur le wamp

        Version Apache :
        2.4.27 - Documentation
        Version de PHP :
        5.6.31 - Documentation
        Server Software :
        Apache/2.4.27 (Win32) PHP/5.6.31 - Port défini pour Apache : 80
        Version de MySQL :
        5.7.19 - Port défini pour MySQL : 3306 - Documentation
        Version de MariaDB :
        10.2.8 - Port défini pour MariaDB : 3307 - Documentation
      2. jordane je te remercie infinement une partie de probleme est resolu maintenant les requete ne sont plus affiché en haut de page
      3. mais tjrs il ya pas connexion a la base les données ne s'ajoute pas
      4. mais tjrs il ya pas connexion a la base les données ne s'ajoute pas