Bonjour,
Je travaille actuellement sur un projet d'intranet pour notre formation de titre pro et mon équipe est en charge de la "pointeuse",
cad que les apprenants (les étudiants chez nous s'apellent comme ça) devront appuyer sur un bouton pour justifier de leur présence.
<!DOCTYPE html>
<html>
<head>
<title>TP1</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link href="assets/css/style.css" rel="stylesheet" type="text/css"/>
<meta charset="utf-8"/>
</head>
<body>
<?php include_once 'model/planner.php'; ?>
<?php include_once 'controllers/plannerAdd.php';
include_once 'controllers/userAdd.php'; ?>
<h1><u>Pointage</u></h1>
<form action="ajout.php" method="get" class="form-horizontal" role="form">
<div class="form-group">
<label class="control-label col-sm-2" for="id">id:</label>
<div class="col-lg-5">
<input type="number" class="form-control" name="id" placeholder="Entrer votre id">
<input type="number" class="form-control" name="ip" placeholder="Entrez votre ip">
<input type="number" class="form-control" name="usersId" placeholder="Entrez un user Id">
<input type="number" class="form-control" name="plannerTypeId" placeholder="Entrez un plannerTypeId">
<input type="date" class="form-control" name="date" placeholder="Entrez une date">
<button type="submit" class="btn btn-primary">Envoyer</button>
</div>
</div>
<div class="form-group">
<h2>Entrez le motif de votre retard</h2>
<textarea rows="4" cols="50" name="comment" form="usrform">
</textarea>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<a class="btn btn-success" href="index.php">Retour</a>
</div>
</div>
</form>
</body>
</html>
En gros, ce que je cherche à faire c'est d'insérer les informations dans ma table planner.
Je les envoie en GET pour l'instant pour pouvoir les voir, je changerai ça plus tard pour des raisons de sécurité.
Egalement, quand je fais un echo de ma date, il m'affiche 1, j'ai essayé de creuser mais là je sèche.
<?php
include_once 'ajout.php';
/**Déclaration de la classe*/
$newplanner = new planner();
class planner {
public $id;
public $date;
public $ip;
public $usersId;
public $plannerTypeId;
private function connectDB() {
try {
$this->pdo = new PDO('mysql:host=localhost;dbname=E2N', 'bajdek', 'sgbd12345');
} catch (PDOException $e) {
die($e->getMessage());
}
}
/**Constructeur*/
public function __construct($id = "", $date = "1900-01-01", $ip = "", $usersId = "", $plannerTypeId = "") {
$this->id = $id;
$this->date = $date;
$this->ip = $ip;
$this->usersId = $usersId;
$this->plannerTypeId = $plannerTypeId;
}
/** Méthode qui permet à l'apprenant de pointer sa présence * */
public function plannerAdd() {
$this->connectDB();
$insert = 'INSERT INTO `E2N_planner`(`id`, `date`, `ip`, `usersId`, `plannerTypeId`) VALUES (:id, :date, :ip, :usersId, :plannerTypeId)';
$queryResult = $this->pdo->prepare($insert);
$queryResult->bindValue(':id', $this->id, PDO::PARAM_INT);
$queryResult->bindValue(':date', $this->date, PDO::PARAM_STR);
$queryResult->bindValue(':ip', $this->ip, PDO::PARAM_STR);
$queryResult->bindValue(':usersId', $this->usersId, PDO::PARAM_STR);
$queryResult->bindValue(':plannerTypeId', $this->plannerTypeId, PDO::PARAM_STR);
return $queryResult->execute();
}
/** obtention de l'IP non utilisable dans le model
* $ip = $_SERVER['REMOTE_ADDR'];* */
}
$id = isset($_GET['id']);
$date = isset($_GET['date']);
$ip = isset($_GET['ip']);
$usersId = isset($_GET['usersId']);
$plannerTypeId = isset($_GET['plannerTypeId']);
echo $date;
?>
Merci d'avance, bonne journée dans l'espoir d'une réponse.
Le problème a été résolu, c'était une histoire de type de variable, il était en string au lieu de Int.
Merci
Tu fais appel à $this->pdo mais on ne voit pas de déclaration cette variable membre pdo.
Essaye d'écrire ta classe planner dans un fichier qui lui est propre, sans rien d'autre.
Dans le html tu ne dois pas inclure le controller et encore moins ajout.php, d'ailleur on ne sait pas ce que contient ajout.php
Le input de type "date" est mal supporté par les navigateurs (voir caniuse) il faut prévoir un datepicker.
D'accord, pour la classe planner, elle est bien définie dans mon model/planner, le fichier lui est propre, les $_GET sont juste là pour des test, le fichier ajout.php est celui que j'ai mis.
Je vais enlever le include, et changer le date pour un datepicker.
Je te remercie, je teste ça cet après midi car là je fais du C#.
Je te dis ça dés que j'ai modifié.