Da li neko moze da mi objasni zasto najjednostavnija skripta za logovanje u lokalu radi a kada tu istu skriptu prebacim na web nece pa nece. Evo da ne davim pogledajte skript:
HTML kôd:
<form name="loginform" action="login_exec.php" method="post">
<?php
if( isset($_SESSION['ERRMSG_ARR']) &&
is_array($_SESSION['ERRMSG_ARR']) &&
count($_SESSION['ERRMSG_ARR']) >0 )
{
echo'<span class="notification n-filed">
<span><img src="admin/notification-slash.gif"> Грешка:</span>';
foreach($_SESSION['ERRMSG_ARR'] as $msg)
{
echo '<li>',$msg,'</li>';
}
echo '</span>';
unset($_SESSION['ERRMSG_ARR']);
}
?>
<label>Корисничко име:</label>
<input name="username" type="text" />
<label>Лозинка:</label>
<input name="password" type="password" />
<label><input name="submit" type="submit" value="Улаз" /></label>
</form>
Evo login_exec.php fajla:
PHP kôd:
//Startovanje sesije
session_start();
//Ukljucivanje konekcije i fajla sa funkcijama
require_once('connection.php');
include ('functions.php');
//Niz za sakupljanje gresaka
$errmsg_arr = array();
//Flag promenljiva
$errflag = false;
//Dohvatanje kor.imena i lozinke
$username = clean($_POST['username']);
$password = md5(clean($_POST['password']));
//Provjera da li su kor.ime i lozinka uneseni
if($username == '') {
$errmsg_arr[] = 'Нисте унијели корисничко име';
$errflag = true;
}
if($password == '') {
$errmsg_arr[] = 'Нисте унијели лозинку';
$errflag = true;
}
//Ako nije ispunjen neki od uslova redirekcija na pocetak
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
//Trazenje korisnika
$qry="SELECT * FROM administracija WHERE korisnicko_ime='$username' AND lozinka='$password'";
$result= $mysqli->query($qry) or die($mysqli->error.__LINE__);
//Provera da li je korisnik pronadjen
if($result->num_rows > 0) {
//Ako je uspesno logovan
session_regenerate_id();
$member = $result->fetch_assoc();
$_SESSION['SESS_MEMBER_ID'] = $member['ID'];
$_SESSION['SESS_FIRST_NAME'] = $member['korisnicko_ime'];
$_SESSION['SESS_LAST_NAME'] = $member['lozinka'];
session_write_close();
header("location: admin/admin.php");
exit();
}else {
//Neupsesno logovanje
$errmsg_arr[] = 'Корисничко име или лозинка нису пронађени';
$errflag = true;
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
}
Dakle ovo sve radi u lokalu ali na vebu ne. Greska koju mi javi je odmah ova prva na koju nailazimo a to je da nisam uneo korisnicko ime. Naravno korisnik u bazi postoji. Ako pri izvrsenju skripta pokusam da odstampam ove varijable $username i $password ne dobijem nista (kao da se $_POST metoda ne izvrsi). Ako moze neko da baci pogled bio bih mu zahvalan.