Multiples problèmes sur un formulaire
Bonjour,
Voilà pas mal de temps que je m'échine sur un formulaire très simple. Pourtant j'arrive à faire un qformulaire utilisateur, récupérer les données et envoyer ce dernier vers un autre formulaire de login.
Bref, ici j'ai de multiples soucis, je n'arrive pas à faire entrer les données dans la base de donnée.
En outre je voudrais qu'une fois les données entrées et validées celà me retourne le même formulaire avec un écho de réussite et que s'affiche sous ce formulaire le tableau de tous les exercices.
D'ailleurs à ce niveau j'ai deux autres soucis, mettre deux colonnes sur la dernière ligne nommée Actions et donner des couleurs différentes entre le "menu" et les colonnes.
Je vous pose les fichiers en espèrant avoir un tout petit peu d'aide car là je m'arrache les cheveux pour des choses certainements très simples :?
Formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
<!doctype>
<html lang="fr">
<head>
<link href="contact.css" type="text/css" rel="stylesheet"/>
<meta charset="UTF-8" />
<head>
<title>Formulaire03</title>
</head>
<body>
<!-- <form name="form1" action="submit.php" method="onsubit=return check();"> -->
<fieldset>
<legend>
<p>Ajouter un exercice</p>
</legend>
<table>
<tr>
<td>Titre de l'exercice</td>
<td>
<input type="text" name="titre" placeholder="" required />
</td>
</tr>
<tr>
<td>Auteur de l'exercice</td>
<td>
<input type="text" name="Auteur" placeholder="" required/>
</td>
</tr>
<tr>
<td>Date de création</td>
<td>
<input type="date" name="date" placeholder="" required/>
</td>
</tr>
<tr><td> <input type="submit" value="Envoyer" name="submit"/></td></tr>
</table>
</fieldset>
</form>
</body>
</html>
<?php
// PREMIERE SOLUTION
/*if(isset($_POST['submit'])){
if (!empty($_POST['titre']) AND !empty($_POST['auteur']) AND !empty($_POST['date'])){
// if ((isset($_POST['titre']) && !empty($_POST['titre']))
// && (isset($_POST['auteur']) && !empty($_POST['auteur']))
// && (isset($_POST['date']) && !empty($_POST['date']))){
extract($_POST);
try{
$bdd=new PDO ('mysql:host=localhost;dbname=exo','root','');
$req=$bdd->prepare("select * from exercice where titre =:titre");
$req->execute(array('titre'=>$titre));
if($req->rowCount() !=0 ){
return false;
echo"<div class='couleur'> l'exercice existe dans la base </div>";
// echo "l'exercice existe dans la base";
}else {
$reponse = $bdd->prepare("INSERT INTO exercice VALUES(DEFAULT,?,?,?)");
$reponse->execute(array($titre,$auteur,$date));
echo"<div class='couleur'> Exercice enregistré avec succès </div>";
// echo " Exercice enregistré avec succès";
$reponse->closeCursor();
header('Location:getall.php');
}
}catch (PDOException $e){
die ('Erreur' .$e->getMessage());
}
}
}else echo "Il faut remplir tous les champs";
*/
// DEUXIEME SOLIUTION, CELLE QUE JE VOUDRAIS UTILISER
if(isset($_POST['submit'])){
extract($_POST);
$rep= new Connection('localhost', 'exo', 'utf8', 'root', '');
$answer=$rep->dbconnect();
$user = new Bmanager ($answer);
$retour= $user->addUser ($titre, $auteur, $date);
echo $retour;
if($retour){
header('Location:getall.php');
}
}
?> |
Fichier de connection à la base :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<?php
class Connection{
private $hote;
private $bd;
private $charset;
private $user;
private $password;
public function __construct($hote, $bd, $charset, $user, $password){
$this->hote=$hote;
$this->bd= $bd;
$this->charset=$charset;
$this->user=$user;
$this->password=$password;
}
public function dbconnect(){
try{
return new PDO('mysql:host='.$this->hote.';dbname='.$this->bd.';charset='.$this->charset, $this->user, $this->password);
} catch(Exception $e){
print_r($e);
}
}
}
?> |
Fichier Bmanager qui regroupe mes fonctions :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<?php
session_start();
include_once 'connection.php';
Class Bmanager{
private $db;
public function __construct($db){
$this->db=$db;
}
public function addUser($titre, $auteur, $date) {
try {
if (!empty($_POST['titre']) AND !empty($_POST['auteur']) AND !empty($_POST['date'])){
// if ((isset($_POST['titre']) && !empty($_POST['titre']))
// && (isset($_POST['auteur']) && !empty($_POST['auteur']))
// && (isset($_POST['date']) && !empty($_POST['date']))){
$req=$this->db->prepare("select * from exercice where titre=? ");
$req->execute(array('titre'=>$titre));
if($req->rowCount() !=0){
return false;
}else {
$reponse = $this->db->prepare("INSERT INTO exercice VALUES (Default,?,?,?)");
$reponse->execute(array($titre, $auteur, $date));
echo"<div class='couleur'> Exercice enregistré avec succès </div>";
return true;
}
}
}catch (PDOException $e){
echo $e->getMessage();
}
}
public function getAll(){
try{
$alluser = $this->db->prepare("SELECT * FROM exercice");
$alluser->execute();
return $alluser;
}
catch(Exception $e){
}
}
public function update($id, $titre, $auteur, $date) {
try{
if(!empty($titre) && !empty($auteur) && !empty($date)){
$modif = $this->db->prepare("update exercice set titre=? where id =?");
$modif->execute(array($titre,$id));
$modif = $this->db->prepare("update exercice set auteur=? where id =?");
$modif->execute(array($auteur,$id));
$modif = $this->db->prepare("update exercice set date=? where id =?");
$modif->execute(array($date,$id));
echo"<div class='couleur'> Modification enregistrée avec succès </div>";
}
}
catch(Exception $e){
$e->getMessage();
}
}
public function delete($id){
$st=$this->db->prepare("DELETE FROM exercice");
$st->execute(array($id));
echo "Exercice supprimé avec Succés";
}
}
?> |
Fichier concernant le tableau du contenu de la base :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<?php
include_once 'Bmanager.php';
$rep= new Connection('localhost', 'exo', 'utf8', 'root', '');
$answer=$rep->dbconnect();
$user= new Bmanager($answer);
$sql = $user->getAll();
echo "<table border=\"1\">";
echo "<tr> <th> Id </th><th> Titre </th><th> Auteur </th><th> Date </th><th> Action </th> </tr> ";
while ($lignes = $sql -> fetch(PDO::FETCH_OBJ))
{
echo "<tr><td>".$lignes->id."</td><td>".$lignes->titre."</td><td>".$lignes->auteur."</td><td>".$lignes->date."</td><td><a href='modifierUser.php?>Modifier</a></td><td><a href='delete.php?>Modifier</a></td></tr>";
}
echo "</table>";
header('Location:formulaire03.php');
?> |
Petit fichier css en extra :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
@CHARSET "ISO-8859-1";
.couleur
{
color = red;
}
fieldset{
margin:10px;
width :400px;
height :110px;
background-color : white;
}
table{
/*border: 1px solid black;*/
border-collapse: collapse; |
oilà, je sais que ça fait beaucoup de code mais si vous avez 5 non plutôt 30 mn pour regarder tout ça je vous en serai très reconnaissant.