Menu

Problème insertion dans la base de donnée [Résolu]

mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 15 févr. 2018 à 09:46 - Dernière réponse : mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention
- 16 févr. 2018 à 23:05
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
Afficher la suite 

Votre réponse

36 réponses

jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 15 févr. 2018 à 16:13
0
Merci
Bonjour,

Tu parles de PDO ... mais tu utilises mysql_connect

Bref...
Commence par appliquer TOUT ce qui est indiqué ici : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Puis là : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs


jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 15 févr. 2018 à 16:18
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 !
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 15 févr. 2018 à 17:24
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
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 15 févr. 2018 à 17:44
Si pdo ne fonctionne pas... Passe a mysqli
Commenter la réponse de jordane45
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - Modifié par jordane45 le 16/02/2018 à 20:11
0
Merci
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());
}

?>


Cordialement, 
Jordane                                                                 
Commenter la réponse de jordane45
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 15 févr. 2018 à 22:03
0
Merci
jordane merci pour ton aide mais ca marche pas voici le resultat
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 15 févr. 2018 à 22:23
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 ??
Commenter la réponse de mimouta88
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 07:07
0
Merci
jordane je suis en local sur mon ordinateur et le localhost fonctionne normalement

mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 19:33
ok jordane je vais lire ce que vous m'aexpliqué a propos la coloration des balises et merci
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 16 févr. 2018 à 19:51
Mais il est passé où le codr que je t'ai demandé d'essayer ??
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 19:55
votre code ca marche pas jordane j'ai vous est dis deja que le pdo ne fonctionne pas donc j'ai essayé avec mysql(je connais pas le mysqli je suis debutante)
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 16 févr. 2018 à 20:13
Mon code ne marche pas... et qu'est ce qu'il t'affiche ??
Un message d'erreur peut être ? Lequel ??

Le pdo ne fonctionne pas dis tu.... comment le sais tu ? Un message d'erreur ?
Je refuse de bosser avec la vieille extension mysql ...
Donc avant d'essayer de t'aider avec mysqli ... j'aimerai déjà voir pourquoi ( tu crois...) que le PDO ne fonctionne pas.
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 20:18
non jordane il y'a pas un msg d'erreur le probleme est que a chaque fois quand j'utlise le pdo la requete s'affiche en haut de page c'est pour cela que j'ai dis que le pdo ne foctionne pas en plus la connexion a la base ne s'etablie pas
Commenter la réponse de mimouta88
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 16 févr. 2018 à 20:25
0
Merci
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...

mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 22:06
enfiiiiiiiiiiiin ca marche jordane merci beaucoup pour votre aide et pour votre patience mais je veux qu' apres avoir enregistrer dans la base la page acceuil s'affiche comment je peut faire ca svp
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 22:13
jordane c'est quoi cette erreur qui s'affiche en haut de page?? et le test sur les champs ne fonctionne pas c'est a dire mm si j'ecris rien dans les champs une ligne vide j'ajoute a a bdd


jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 16 févr. 2018 à 22:40
Tu as certainement défini le champ "login" en tant que clé primaire
de ce fait .. tu ne peux pas en avoir deux identiques....
Peux tu nous montrer la structure de ta table
par exemple en faisant un
 show create table admin

depuis le phpmyadmin ?
jordane45 21173 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 16 févr. 2018 à 22:43
pour la vérif.. c'est normal que ça ne fonctionne pas...
Ton javascript est faux ... tu cible f1 et f2 .. sauf que tes champs ne se nomment pas comme ça.

Et pour finir .. pour faire ta redirection.. il faut que tu regardes l'instruction
header('location:tapage.php');
mimouta88 28 Messages postés jeudi 15 février 2018Date d'inscription 18 février 2018 Dernière intervention - 16 févr. 2018 à 23:05
1000000000000000 merci jordane merci beaucoup beaucoup beaucoup et a la prochaine :D
Commenter la réponse de jordane45