PHP inloggningsruta
Tjena!
Börjat lite med PHP och följde denna video tutorial och implementerade hans lösning på min lokala testsida. Allting fungerade utmärkt och jag la till session timeout också!
Min lokala server kör senaste XAMPP-versionen med PHP Version 5.3.8 och MySQL Server version: 5.5.16.
När jag sedan laddade upp all kod på riktiga servern så ger inloggningen mig "fel användarnamn eller lösenord", inga PHP eller MySQL meddelanden. databser och namn har jag dubbel och trippel kollat men min PHP-skills sträcker sig inte så långt att jag kan få upp en ordentlig log över vad som händer.
Allt jag vet är att användarnamn och lösenord kommer fram korrekt till query'n och sedan inte av någon anledning kan hittas i riktiga databasen.
Jag har inte hashat lösenordet i databasen!
Le code:
membership.php
<?php
require 'mysql.php';
class Membership {
function validate_user($username, $pw){
$mysql=new Mysql();
echo $username . $pw;
$ensure_credentials = $mysql->verify_Username_and_Pw($username, $pw);
if($ensure_credentials){
$_SESSION['status']='authorized';
header("location: admin.php");
} else return "Felaktigt användarnamn eller lösenord, försök igen.";
}
function log_User_Out(){
if(isset($_SESSION['status'])){
unset($_SESSION['status']);
if(isset($_COOKIE[session_name()])){
setcookie(session_name(), '', time() - 10000);
}
session_destroy();
}
}
function confirm_Member(){
session_start();
if($_SESSION['status'] != 'authorized'){
header("location: inloggning.php");
}
}
function time_Out(){
// set timeout period in seconds
$inactive = 600;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive){
session_destroy(); header("Location: inloggning.php");
}
}
$_SESSION['timeout'] = time();
}
}
mysql.php Felet i verify_Username_and_Pw antar jag..
<?php
require_once 'includes/constants.php';
class Mysql{
private $conn;
function __construct(){
$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or
die("Det var ett problem med uppkopplingen till databasen, försök igen! Om problemet kvarstår kontakta administratör.");
}
function verify_Username_and_Pw($username, $pw){
$query= "SELECT *
FROM users
WHERE username= ? AND password= ?
LIMIT 1";
if($statement =$this->conn->prepare($query)) {
$statement->bind_param('ss', $username, $pw);
$statement->execute();
if($statement->fetch()){
$statement->close();
return true;
}
}
}
}
Är i stort sett exakt som länken ovan där man kan ladda ner källkoden. Allt annat databasrelaterat fungerar och hämtas korrekt.
Inte så mkt att gå på men om någon kan visa hur man kan få tydligare översikt över vad som händer skulle jag vara tacksam
Neon
Citera mig om du vill ha svar!