A voir également:
- Plugin '0' is not loaded
- What is my movie français - Télécharger - Divers TV & Vidéo
- The system has detected that a cooling fan is not operating correctly - Forum Matériel & Système
- Comment faire un 0 barré sur telephone ✓ - Forum Windows
- Numéro de téléphone excel 0 - Guide
- The media could not be loaded, either because the server or network failed or because the format is not supported. ✓ - Forum Mozilla Firefox
5 réponses
yg_be
Messages postés
23338
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 novembre 2024
Ambassadeur
1 551
2 juil. 2020 à 20:11
2 juil. 2020 à 20:11
bonjour, peut-être pourrais-tu nous montrer ton code, sans oublier d'utiliser ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
jordane45
Messages postés
38296
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2024
4 704
3 juil. 2020 à 00:06
3 juil. 2020 à 00:06
Bonjour
What ??
Si tu utilises Mysqli... Ta connexion doit être en mysqli !!
ma connexion utilise PDO mais j'utilise toujours Mysqli
What ??
Si tu utilises Mysqli... Ta connexion doit être en mysqli !!
Bonjour et merci de votre aide @Jordan 45 et yg_be,
J'ai mélangé du code Mysqli avec du Code PDO sur mon app qui fonctionnait bien en locale mais c'est sur le serveur de production que j'ai eu tout les problèmes du monde. Tantôt ça fonctionne bien, tantôt des bugs sans explication.
Vos remarquent sont les bienvenues
le code source de ma page de login est:
Ci dessous maintenant le code de la page privé qui se trouve après un login correcte
Toute vos remarques sont les bienvenus.
J'ai mélangé du code Mysqli avec du Code PDO sur mon app qui fonctionnait bien en locale mais c'est sur le serveur de production que j'ai eu tout les problèmes du monde. Tantôt ça fonctionne bien, tantôt des bugs sans explication.
Vos remarquent sont les bienvenues
le code source de ma page de login est:
<?php
ob_start();
session_start();
//session_destroy();
if(!empty($_POST)){
$maVariable = $_POST;
$_SESSION['agentNomUtilisateur'] = $_POST['agentNomUtilisateur'];
//Connexion à la Base de données
require_once('inc/db.php');
$usernameVerification = "SELECT * FROM agent WHERE agentNomUtilisateur = '".$maVariable['agentNomUtilisateur']."' ";
$requete = mysqli_query($mysqli, $usernameVerification);
if (mysqli_num_rows($requete) >=1){
while($row = mysqli_fetch_assoc($requete)){
//Décryptage des mots de passe issu de la base de données
if(password_verify($maVariable['agentMotDePasse'], $row['agentMotDePasse'])){
if($row['agentStatus'] == 0){
session_destroy();
die("<br><br><br><br><br>
<center><img class='mb-4' src='img/logo.png'>
<br><br><br>
<h2>Désolé!<br>Votre compte est désactivé par l'administration.<br>
Si vous penser qu'il s'agit d'une erreur, veuiller contactez un administrateur(trice).</h2>
<a href='index.php'>Retour à la page de connexion</center></a>");
}
$_SESSION['utilisateur'] = '';
$_SESSION['roleuser']= $row['roleId'];
header('Location:app/index.php');
}else{
$error_login = "Mot de passe incorrecte";
}
}
} else {
$error_login = "Nom d'utilisateur incorrecte";
}
mysqli_close($mysqli);
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex,nofollow" />
<link rel="icon" href="img/favicon.png">
<title>My App</title>
<meta http-equiv="refresh" content="600;URL=http://mywebapp.com">
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/signin.css" rel="stylesheet">
</head>
<body class="text-center">
<form class="form-signin" action="" method="post" name="connect_form">
<img class="mb-4" src="img/logo.png" alt="" >
<?php
if (isset($error_login)){
echo "<p style='color:red'>$error_login</p>";
} ?>
<label for="inputEmail" class="sr-only">Utilisateur</label>
<input type="text" id="agentNomUtilisateur" class="form-control" placeholder="Nom d'Utilisateur" name="agentNomUtilisateur" required autofocus>
<label for="inputPassword" class="sr-only">Mot de passe</label>
<input type="password" id="agentMotDePasse" class="form-control" placeholder="Mot de passe" name="agentMotDePasse" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Connexion</button>
<p class="mt-5 mb-3 text-muted">© 2017-2020 La Poste Centrafricaine</p>
</form>
</body>
</html>
Ci dessous maintenant le code de la page privé qui se trouve après un login correcte
Toute vos remarques sont les bienvenus.
<?php
ob_start();
session_start();
if(!isset($_SESSION['agentNomUtilisateur']))
{
header("location:../disconnected.php"); // redirection
exit; // arrêt du script
}
//La session est ouverte on peut afficher la page
require_once('../inc/db.php');//Connexion à la base de données
//Requête affichage du nom de l'Utilisateur
$agentNomUtilisateur = $_SESSION['agentNomUtilisateur'];
$ps = $pdo -> prepare("SELECT * FROM agent WHERE agentNomUtilisateur = ?");
$params=array($agentNomUtilisateur);
$ps -> execute($params);
$agent=$ps->fetch();
//Redirect to admin MENU
if($agent['agentNiveauAcces']==1){
header("location:../app/admin.php"); // redirection
exit; // arrêt du script
}
?>
<!doctype html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex,nofollow" />
<link rel="icon" href="../img/favicon.png">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="../css/bootstrap.css">
<link rel="stylesheet" href="../css/custom.css">
<title>My App</title>
<?php header("refresh:600;url=../app/d.php"); ?>
</head>
<body>
<?php
//Importations du menu
require_once('../inc/menu.php');
?>
jordane45
Messages postés
38296
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2024
4 704
3 juil. 2020 à 19:50
3 juil. 2020 à 19:50
Et que contient ta page db.php ?
<?php
//Connection à la base de données par PDO
try{
$strConnection = 'mysql:host=localhost;dbname=MonDatabaseName';
$pdo = new PDO ($strConnection, 'MonDatabaseUsername', 'MonDatabasePassword');
// 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){
$msg = 'ERREUR PDO dans ' . $e->getMessage();
die ($msg);
}
?>
Voilà, c'est typiquement le code.
jordane45
Messages postés
38296
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 novembre 2024
4 704
3 juil. 2020 à 20:39
3 juil. 2020 à 20:39
Le problème est donc, comme je te le disais, de ne pas mélanger PDO et Mysqli.
Dans ton premier script, tu utilises mysqli .... alors que tu charges le fighcier db.php qui fait, lui, la connexion en PDO.
Il faudrait déjà testé si le module PDO est présent ( et activé ) sur ton serveur.
Pour ça, tu peux créer un fichier php à la racine de ton site ( nommé par exemple checkPdo.php )
dedans
Puis tu le lances.
Dans ton premier script, tu utilises mysqli .... alors que tu charges le fighcier db.php qui fait, lui, la connexion en PDO.
Il faudrait déjà testé si le module PDO est présent ( et activé ) sur ton serveur.
Pour ça, tu peux créer un fichier php à la racine de ton site ( nommé par exemple checkPdo.php )
dedans
<?php if ( extension_loaded('pdo') ) { echo " PDO est là !"; echo " Tu peux remplacer tes codes mysqli par du PDO"; } else { echo "Pas de PDO ... utilise uniquement mysqli "; }
Puis tu le lances.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question