Bonjour j'aurais bessoin d'aide depuis que j'ai changez d'hergeur web, impossible que la session s'ouvre correctement voicie le code de connexion php et html, pour les page d'acceuil il y a bien la fonction
Le code:
<div class="login-container">
if ($user -> LoggedIn())
{
<div class="alert alert-success"><h4>Vous êtes déjà connecté, redirection...</h4><span></span><div></div></div>
echo "<meta http-equiv=\"refresh\" content=\"2;url=acceuil\">";
}
if (isset($_POST['loginBtn']))
{
$username = $_POST['username'];
$password = $_POST['passwd'];
$errors = array();
if (!ctype_alnum($username) || strlen($username) < 2 || strlen($username) > 20)
{
$errors[] = 'Pseudo ou email incorrecte.';
}
if (empty($username) || empty($password))
{
$errors[] = 'Merci de verifier les champs.';
}
if (empty($errors))
{
$SQLCheckLogin = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username AND `password` = :password");
$SQLCheckLogin -> execute(array(':username' => $username, ':password' => $password));
$countLogin = $SQLCheckLogin -> fetchColumn(0);
if ($countLogin == 1)
{
$SQLGetInfo = $odb -> prepare("SELECT `username`, 'email', 'phone', `ID`, `status` FROM `users` WHERE `username` = :username AND `password` = :password");
$SQLGetInfo -> execute(array(':username' => $username, ':password' => $password));
$userInfo = $SQLGetInfo -> fetch(PDO::FETCH_ASSOC);
if ($userInfo['status'] == "0")
{
$_SESSION['username'] = $userInfo['username'];
$_SESSION['email'] = $userInfo['email'];
$_SESSION['ID'] = $userInfo['ID'];
$ip = getRealIpAddr();
$SQL = $odb -> prepare('INSERT INTO `loginlogs` VALUES(:username, :ip, :password, UNIX_TIMESTAMP(), "")');
$SQL -> execute(array(':ip' => $ip, ':password' => $password, ':username' => $username ));
<div class="alert alert-success"><h4>Connexion réussie, redirection...</h4><span></span><div></div></div>
echo '<meta http-equiv="refresh" content="2;url=acceuil"';
}
else
{
echo '<div class="alert alert-danger"><h4>Vous êtes bannis!</h4><span></span><div>Raison: '.$userInfo['status'].'</div></div>';
}
}
else
{
echo '<div class="alert alert-danger"><h4>ERREUR:</h4><span></span><div> - Connexion échouée, mot de passe incorrecte</div></div>';
}
}
else
{
echo '<div class="alert alert-danger"><h4>ERREUR:</h4><span></span><div>';
foreach($errors as $error)
{
echo '- '.$error.'<br />';
}
echo '</div></div>';
}
}
<div class="row">
<div class="col-sm-6">
<script type="text/javascript">
jQuery(document).ready(function($)
{
setTimeout(function(){ $(".fade-in-effect").addClass('in'); }, 1);
$("form#login").validate({
rules: {
username: {
required: true
},
passwd: {
required: true
}
},
messages: {
username: {
required: 'Sil vous plait entrer un nom d\'utilisateur.'
},
passwd: {
required: 'Sil vous plait entrer un mot de passe.'
}
},
});
$("form#login .form-group:has(.form-control):first .form-control").focus();
});
</script>
<div class="errors-container">
</div>
<form method="post" role="form" id="login" class="login-form fade-in-effect">
<div class="login-header">
<span>Connexion</span>
<p>Cher utilisateur, connectez-vous pour accéder au site!</p>
</div>
<div class="form-group">
<label class="control-label" for="username">Utilisateur</label>
<input type="text" class="form-control" name="username" id="username" autocomplete="off" />
</div>
<div class="form-group">
<label class="control-label" for="passwd">Mot de passe</label>
<input type="password" class="form-control" name="passwd" id="passwd" autocomplete="off" />
</div>
<div class="form-group">
<button type="submit" name="loginBtn" class="btn btn-white btn-block text-left">
<i class="fa-lock"></i>
Connexion
</button>
</div>
<div class="login-footer">
<a href="#">Mot de passe oubliée?</a>
<div class="info-links">
<a href="inscription">S'inscrire?</a>
</div>
</div>
</form>
<!-- External login -->
<div class="external-login">
<a href="#" class="facebook">
<i class="fa-facebook"></i>
Connexion avec facebook
</a>
<a href="#" class="twitter">
<i class="fa-twitter"></i>
Connexion avec twitter
</a>
<a href="#" class="gplus">
<i class="fa-google-plus"></i>
Connexion avec google plus
</a>
</div>
</div>
</div>
</div>
Merci de votre aide!
Je signal que je suis débutant!
Salut,
Si ton code marché avant je vois pas pourquoi il ne marcherai plus avec un nouvelle hébergeur.
il faut surtout que tu verifie la version de php de ton hebergeur. Notamment pour mettre la version 5.4 ou superieur.
Chez quel hebergeur te trouve tu ?
Bonjour, il faut sans doute que tu actives, voir peut-etre télécharger l'extension "session" ou bien de paramétrer ton php.ini .
J'espère avoir répondu à ta question.
NODsk
Comment sa un htacces a la racine de mon site ? j'en est déja un pour pas que les extention de fichier .php apparése
Alors il faut que tu passes par la 2ème option reparamètre ton fichier php.ini, fait un recherche du mot session dedans. et tu dvrais trouver une anomalie.
NODsk
Aufaite je me suis aventuré et ton code n'est pas sécurisée du tout,
si on fait une injection SQL et toutes tes données seront perdues ! Les fonctions htmlentities ou/et mysql_real_escape_string te resauverons la vie.
$errors = array();
if(isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['username']) && !empty($_POST['username']) ){
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['passwd']);
if (!ctype_alnum($username) || strlen($username) < 2 || strlen($username) > 20) {
$errors[] = 'Pseudo ou email incorrecte.';
}
}else{
$errors[] = 'Merci de verifier les champs.';
}
Au niveau des injections SQL, les requêtes préparées si elles sont bien utilisées sont faites pour éviter l'injection en POO :D
Et pour ce qui concerne ton soucis, ça peut sembler idiot mais, as tu activé les sessions (et ce avant leur utilisation) ?
<?php
session_start();
?>
Si oui, pourrait-on avoir le message d'erreur concernant ton problème afin de peut-être idenfitifer plus facilement le problème.
D'accord, est-ce que tu pourrais nous donner l'erreur retournée pour qu'on puisse t'aider davantage ?
Et pour ce qui est du php.ini utilise ça:
<?php
phpinfo();
?>
Oui pour le php info c'est ce que j'ai fait, je les est contacté il disent de contacté mon webmaster ( moi mais je suis apprenti )
Encore une fois, sans nous donner le message d'erreur il va être très difficile pour nous de t'aider...
Rien ne se produit lorsque tu valide le formulaire ?
PS: j'ai remarqué qu'il y a quelque chose d'étrange dans ta syntax
// Ce genre de syntaxe n'est pas bonne (même si en pratique elle fonctionne, je ne sais pas si avec certaines configurations ça peut-être problématique)
$user -> LoggedIn()
// Il est mieux de supprimer les espaces inutiles
$user->LoggedIn()
// De plus n'hésite pas à afficher les erreurs grâce à la fonction error_reporting (ton hébergeur les désactivent peut-être de base)
error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
Une page vierge comme resultat cest un peu bizarre pour la reception d'un formulaure. Essaye effectivement les messages erreurs ou sinon de scanner tes varizbles de post et objet pour comprendre leur comportement.
Bonjour.
J'ai une question qui pourrait paraître idiote et je m'étonne de ne pas l'avoir vue dans les réponses précédentes.
Comment se fait-il que tu n'ai aucune balise php dans le code que tu nous donne ?
Est-ce le même contenu que l'original ?
Non pas le meme que l'orignal le Markdown me les retire, et j'ai tout esseyez paril pour voir message d'erreur aucun message ! /:
Bonjour,
Regarde au nivaux de CPanel, SESSION ne doit pas être mis en place sur ton serveur :
https://documentation.cpanel.net/display/CKB/How+to+Edit+Your+php.ini+File
NODsk