Bonjour à tous, actuellement étudiant en ingénierie informatique, on commence tout doucement le PHP, mais notre prof nous laisse vraiment essayer jusqu'au bout avant de nous expliquer (pas plus mal).
Là je dois rendre un TP, mais je pense ne pas très bien avoir cerné le concept de variable de sessions, car j'obtiens cette erreur, lors de l'ajout d'un nouvel utilisateur. (Le site est censé offrir la possibilité à un enseignant de se connecter, d'accéder à son espace admin, et ensuite de pouvoir ajouter, modifier ou supprimer un élève).
Voici mon code:
<?php
if(isset($_GET['func'])){
$_GET['func']();
}
function connectDB(){
try{
$conn = new PDO("mysql:host=localhost; dbname=test", "testUser","testPassword");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Database Connexion Success<br>";
}
catch(PDOException $e){
echo "Nope, pas marché..." .$e->getMessage();
$conn =null;
}
return $conn;
}
function reloadPage($link){
header("Location: $link");
}
function addUser(){
$insert = connectDB()->prepare('INSERT INTO usuarios(login,password,mail,nom,prenom) VALUES(:login,:password,:mail,:nom,:prenom)');
if ($_POST['user_password'] === $_POST['confirm_password']) {
$insert->execute(array(':login' => $_POST['user_login'], ':password' => password_hash($_POST['user_password'], PASSWORD_DEFAULT), ':mail' => $_POST['user_mail'], ':nom' => $_POST['user_firstname'], ':prenom' => $_POST['user_name']));
reloadPage("index.php");
}
else {
reloadPage("view-newuser.php?pass=error");
}
$insert = null;
$conn = null;
}
function getUserData(){
$login = $_POST['user_login'];
$insert = connectDB()->prepare( "SELECT login,password FROM usuarios WHERE login='$login'");
$insert->execute();
$userdata = $insert-> fetch();
return $userdata;
}
function loginUser(){
$userdata=getUserData(); // Récupère les données de l'utilisateur qui nous intéresse
if(password_verify($_POST['user_password'],$userdata['password'])){
echo "Connexion réussie";
session_start();
$_SESSION['login'] = $_POST['user_login'];
$_SESSION['pwd'] = $_POST['user_password'];
$_SESSION['id'] = $userdata['id'];
reloadPage("view-admin.php?connexion=ok");
}
else{
echo "Connexion échouée";
}
}
function addStudent(){
session_start();
$insert = connectDB()->prepare('INSERT INTO etudiants(usuario_id,nom,prenom,note) VALUES(:usuario_id,:nom,:prenom,:note)');
if($insert->execute(array(':usuario_id' => $_SESSION['id'], ':nom' => $_POST['user_firstname'], ':prenom' => $_POST['user_name'], ':note' => $_POST['user_mark']))){
reloadPage("view-admin.php");
}
else {
reloadPage("view-newetudiant.php?addstudent=error");
}
$insert = null;
$conn = null;
}
function deleteStudent(){
$delete = connectDB()->prepare('DELETE from etudiants WHERE nom=""');
}
et voici le résultat lorsque je clique sur ajouter un étudiant:
Incompréhension au niveau des variable de sessions
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Freelance développeur Symfony