Bonjour à tous et à toutes,
j'ai suivi le tuto de http://www.nicwalle.com/index.php?page=watch&list=creer-un-blog-20 pour créer un site. J'ai fini de coder la première version que je vais mettre en ligne. Cependant lorsque je mets le site en ligne, je rencontre un problème que je n'ai pas en local c'est à dire que lorsqu'on fait http://developpement.irobotechart.com/admin/ on est tout de suite connecté. Mais on ne possède pas d'adresse mail, elle est nul car lorsqu'on est connecté cela affiche Vous êtes connecté [adresse_mail] ! Du coup une session est créé sans adresse mail. Lorsqu'on se login avec un compte cela fonctionne.
Pour résumé, une session est automatiquement créée, je vous mets différentes pages de l'admin, mais s'il vous manque du code pour m'aider, n'hésitez pas à me le dire car je n'ai aucune idée de ce que je dois vous donner.
index.php
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 | <?php include '../functions/main-functions.php'; $pages = scandir('pages/'); if(isset($_GET['page']) && !empty($_GET['page'])){ if(in_array($_GET['page'].'.php',$pages)){ $page = $_GET['page']; }else{ $page = "error"; } }else{ $page = "dashboard"; unset($_SESSION['admin']); } $pages_functions = scandir('functions/'); if(in_array($page.'.func.php',$pages_functions)){ include 'functions/'.$page.'.func.php'; } ?> <!DOCTYPE html> <html> <head> <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link type="text/css" rel="stylesheet" href="../css/materialize.css" media="screen,projection"/> <link rel="stylesheet" type="text/css" href="markitup/skins/markitup/style.css" /> <link rel="stylesheet" type="text/css" href="markitup/sets/markdown/style.css" /> <title>iRoboTechArt | Administration</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> </head> <body> <?php if($page != 'login' && $page != 'new' && !isset($_SESSION['admin'])){ header("Location:index.php?page=login"); } include "body/topbar.php"; ?> <div class="container"> <?php include 'pages/'.$page.'.php'; ?> </div> <!--Import jQuery before materialize.js--> <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script type="text/javascript" src="../js/materialize.js"></script> <script type="text/javascript" src="../js/script.js"></script> <?php $pages_js = scandir('js/'); if(in_array($page.'.func.js',$pages_js)){ ?> <script type="text/javascript" src="js/<?= $page ?>.func.js"></script> <?php } ?> <script type="text/javascript" src="markitup/jquery.markitup.js"></script> <script type="text/javascript" src="markitup/sets/markdown/set.js"></script> <script type="text/javascript" > $(document).ready(function() { mySettings.previewParserPath = 'parser.php'; $(".markItUp").markItUp(mySettings); }); </script> </body> </html> |
login.php
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 | <?php if(isset($_SESSION['admin'])){ header("Location:index.php?page=dashboard"); } ?> <div class="row"> <div class="col l4 m6 s12 offset-l4 offset-m3"> <div class="card-panel"> <div class="row"> <div class="col s6 offset-s3"> <img src="../img/admin.png" alt="Administrateur" width="100%"/> </div> </div> <h4 class="center-align">Se connecter</h4> <?php if(isset($_POST['submit'])){ $email = htmlspecialchars(trim($_POST['email'])); $password = htmlspecialchars(trim($_POST['password'])); $errors = []; if(empty($email) || empty($password)){ $errors['empty'] = "Tous les champs n'ont pas été remplis!"; }else if(is_admin($email,$password) == 0){ $errors['exist'] = "Cet administrateur n'existe pas"; } if(!empty($errors)){ ?> <div class="card red"> <div class="card-content white-text"> <?php foreach($errors as $error){ echo $error."<br/>"; } ?> </div> </div> <?php }else{ $_SESSION['admin'] = $email; header("Location:index.php?page=dashboard"); } } ?> <form method="post"> <div class="row"> <div class="input-field col s12"> <input type="email" id="email" name="email"/> <label for="email">Adresse email</label> </div> <div class="input-field col s12"> <input type="password" id="password" name="password"/> <label for="password">Mot de passe</label> </div> </div> <center> <button type="submit" name="submit" class="waves-effect waves-light btn light-blue"> <i class="material-icons left">perm_identity</i> Se connecter </button> <br/><br/> <a href="index.php?page=new">Nouveau modérateur</a> </center> </form> </div> </div> </div> |
main-function.php
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 | <?php //A modifier en fonction de vos indentifiants de base de donnée $dbhost = 'rempli'; $dbname = 'rempli';//Ne doit pas être modifié si vous avez appelé votre bdd "blog" $dbuser = 'rempli'; $dbpswd = 'rempli'; //A partir d'ici, vous ne devez plus rien modifier try{ $db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dbuser,$dbpswd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); }catch(PDOexception $e){ die("Une erreur est survenue lors de la connexion à la base de données"); } // Définition des rôles function admin(){ if(isset($_SESSION['admin'])){ global $db; $a = [ 'email' => $_SESSION['admin'], 'role' => 'admin' ]; $sql = "SELECT * FROM admins WHERE email=:email AND role=:role"; $req = $db->prepare($sql); $req->execute($a); $exist = $req->rowCount($sql); return $exist; }else{ return 0; } } function hasnt_password(){ global $db; $sql = "SELECT * FROM admins WHERE email = '{$_SESSION['admin']}' AND password = ''"; $req = $db->prepare($sql); $req->execute(); $exist = $req->rowCount($sql); return $exist; } |
dashboard.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php if(hasnt_password() == 1){ header("Location:index.php?page=password"); } if(director()==1){ header("Location:index.php?page=video"); } ?> <h2>Tableau de bord</h2> <div class="row"> <pre> <?php echo "Vous êtes connecté ".$_SESSION['admin'] ." !"; ?> </pre> |
Merci d'avance pour votre aide et si j'ai mal formulé ou vous avez besoin de plus d'infos, demandez moi