Retourner sur la page du formulaire [Résolu]

andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention - 30 avril 2018 à 12:46 - Dernière réponse : andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention
- 30 avril 2018 à 20:06
Bonjour, j'insère des données a travers un formulaire , après l'insertion ca m'envoi vers une page vide qui contient le message données Insérées , moi je veux que le message box s'affiche sur la même page du formulaire . comment faire ?
voici la page du formulaire :
<html>
    <head>
        <!-- importer le fichier de style -->
        <link rel="stylesheet" href="Style/style1.css" media="screen" type="text/css" />
		<title>Ajouter un Scanner </title>
		<body>
        <div id="container">
            <!-- zone de connexion -->
            
            <form   action ="insert.php" method="post">
                <h1>Ajout d'un Scanner</h1>
                
                <label><b>Catégorie</b></label>
                <input type="text" placeholder="Entrer la catégorie du Scanner" name="fcategorie" required>

                <label><b>Ville</b></label>
                <input type="text" placeholder="Entrer la ville" name="fville" required>
				
				<label><b>Longitude</b></label>
                <input type="text" placeholder="Entrer la longitude" name="flong" required>
				
				<label><b>Latitude</b></label>
                <input type="text" placeholder="Entrer la latitude" name="flat" required>
				
				<label><b>Description</b></label>
                <input type="text" placeholder="Description" name="fdesc" required>

                <input type="submit" id='submit' value='Insérer' >

            </form>
        </div>
		 
				
    </body>
    </head>


et voici la page pour insérer:
<html>
<body>
 
 
<?php
$con = @mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
 
mysql_select_db("mapbdd", $con);
$sql="INSERT INTO markers (marker_categorie, marker_ville,marker_longitude,marker_latitude,marker_text,marker_actif)
				VALUES
				('$_POST[fcategorie]','$_POST[fville]','$_POST[flong]','$_POST[flat]','$_POST[fdesc]','Oui')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo '<script type="text/javascript">alert("Données Insérées")</script>' ;
 
mysql_close($con)
?>
</body>
</html>


Merci d'avance
Afficher la suite 

Votre réponse

2 réponses

jordane45 21128 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 mai 2018 Dernière intervention - Modifié par jordane45 le 30/04/2018 à 20:12
+1
Utile
Bonjour,

Avant tout..... l'extension mysql est OBSOLETE.
Il faut désormais utiliser mysqli ou PDO.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Ensuite, concernant ta demande, deux possibilités.
- Soit tu places ton code PHP dans le même fichier que ton formulaire (et dans ce cas, tu laisses l'attribut "action" à vide) afin de rester sur la même page une fois le code php exécuté
- Soit, dans ton second fichier, tu fais simplement une redirection à l'aide de l'instruction
header('location:tapage.php');


Moi je prendrai le choix 1

Au passage... tes balises sont mal fermées/placées dans ton code...
Par exemple... que vient faire la balise </head> APRES le <body> ??
Donc, ton code, en PDO et correctement formaté, reviendrait )à ça:

Fichier de connexion à la bdd à placer dans un fichier à part
pour ne pas avoir à le recopier dans chacune de tes pages
<?php
//fichier : cnxBdd.php

try{
  $bdd =new PDO('mysql:host=localhost;dbname=mapbdd; 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());
} 
?> 

Ton fichier devient ensuite:
<?php
//activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


//on inclus le fichier de connexion à la bdd
require_once 'cnxBdd.php';

//on récupère PROPREMENT les variables AVANT de les utiliser
$fcategorie = !empty($_POST['fcategorie']) ? $_POST['fcategorie'] : NULL;
$fville = !empty($_POST['fville']) ? $_POST['fville'] : NULL;
$flong = !empty($_POST['flong']) ? $_POST['flong'] : NULL;
$flat = !empty($_POST['flat']) ? $_POST['flat'] : NULL;
$fdesc = !empty($_POST['fdesc']) ? $_POST['fdesc'] : NULL;

//on traite les variables du formulaire:
if($fcategorie && $fville && $flong && $flat && $fdesc){
 
  $sql="INSERT INTO markers (
                  marker_categorie
                , marker_ville
                ,marker_longitude
                ,marker_latitude
                ,marker_text
                ,marker_actif
               )
                VALUES (
                 :marker_categorie 
                ,:marker_ville 
                ,:marker_longituden
                ,:marker_latitude
                ,:marker_text
                ,:marker_actif
              )";
   $datas = array(':marker_categorie'=>$fcategorie
                 , ':marker_ville'=>$fville
                 ,':marker_longitude'=>$flong
                 ,':marker_latitude'=>$flat
                 ,':marker_text'=>$fdesc
                 ,':marker_actif'=>'Oui'
                 );
  //Execution de la requete
  try{
    $requete = $bdd -> prepare($sql) ;
    $res = $requete->execute($datas) ;
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
     print_r($datas);
  }
  
  if($res){
    echo '<script type="text/javascript">alert("Données Insérées")</script>'
  }
}

?>
<!DOCTYPE html>
<html>
 <head>
  <!-- importer le fichier de style -->
  <link rel="stylesheet" href="Style/style1.css" media="screen" type="text/css" />
    <title>Ajouter un Scanner </title>
 </head>
 <body>
    <div id="container">
      <!-- zone de connexion -->
   <form   action ="" method="post">
        <h1>Ajout d'un Scanner</h1>
    <label><b>Catégorie</b></label>
        <input type="text" placeholder="Entrer la catégorie du Scanner" name="fcategorie" required>
        <label><b>Ville</b></label>
        <input type="text" placeholder="Entrer la ville" name="fville" required>
        <label><b>Longitude</b></label>
        <input type="text" placeholder="Entrer la longitude" name="flong" required>
        <label><b>Latitude</b></label>
        <input type="text" placeholder="Entrer la latitude" name="flat" required>
    <label><b>Description</b></label>
        <input type="text" placeholder="Description" name="fdesc" required>
        <input type="submit" id='submit' value='Insérer' >
      </form>
    </div>
  </body>
 </html> 
 



Je t'invite, avant de poursuivre ton développement, à lire (et à appliquer) ceci:
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et ça :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Bien entendu, ce que j'ai fait en PDO, tu peux le refaire en mysqli si vraiment tu le souhaites....



Cordialement, 
Jordane                                                                 
andyajram 115 Messages postés vendredi 24 mai 2013Date d'inscription 14 mai 2018 Dernière intervention - 30 avril 2018 à 20:06
D'accord merci beaucoup pour tous tes conseils
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.