siemka
mam problem ze sesjami. plik index.php jest ze switchem (index.php?page=strona) i ładuje plik z treścią (news.php itp), mam też w logo wkomponowane logowanie. za całe logo odpowiada u mnie logo.php gdzie mam formularz:
<?php
(...)
echo("<div id=\"logPanel\">"); if(isset($_SESSION['logged'])) { echo("zalogowany <br /><br /> <a href=\"index.php?page=login&out=1\">Wyloguj</a>");
} else {
echo("<form method=\"POST\" id=\"form\"> <div class=\"logInput\"><input name=\"nick\" id=\"nick\" type=\"text\" value=\"Nick...\" onClick=\"this.value=''\" /></div>
<div class=\"logInput\"><input name=\"pass\" id=\"pass\" type=\"password\" value=\"Pass...\" onClick=\"this.value=''\" /></div>
<div id=\"logSubmit\"><input id=\"send\" type=\"submit\" value=\"\" /></div>
</form>
<div id=\"logRecover\">
<a href=\"index.php?page=login&mode=recover\">Odzyskaj ?</a> | <a href=\"index.php?page=rejestruj\">Nowe Konto ?</a>
</div>
</div>");
(...)
?>
po kliknięci submitu formluarz przejmuje plik js:
?
$(document).ready(function(){
//global vars
var inputUser = $("#nick");
var inputPass = $("#pass");
var loading = $("#loading");
var panel = $("#logPanel");
function checkForm(){
if(inputUser.attr("value") && inputPass.attr("value"))
return true;
else
return false;
}
$("#form").submit(function(){
if(checkForm()){
var nick = inputUser.attr("value");
var pass = inputPass.attr("value");
$("#send").attr({ disabled:true });
$.ajax({
type: "POST", url: "../login.php", cache: false, data: "mode=login&nick=" + nick + "&pass=" + pass,
complete: function(data){
panel.hide();
panel.html(data.responseText);
panel.fadeIn(1000);
$("#send").attr({ disabled:false });
}
});
}
else alert("Wypelnij wszystkie pola!");
return false;
});
});[
oraz plik login.php odpowiadajacy za logowanie:
<?php
require_once('engine.php');
if(isset($_POST['mode'])) { switch($_POST['mode']) {
case "login":
if(isset($_POST['nick'])) {
$user = dbquery("SELECT id, nick, pass, ranga FROM cs_user WHERE nick = '".$nick."' LIMIT 1");
if(dbrows($user)) {
$userDane = dbarray($user);
if(md5($pass) == $userDane['pass']) { $_SESSION['logged'] = 1;
$_SESSION['id'] = $userDane['id'];
$_SESSION['nick'] = $nick;
$_SESSION['ranga'] = $userDane['ranga'];
e
echo($_SESSION['nick']." ".$_SESSION['logged']); } else {
}
} else {
echo("Nie ma takiego użytkownika"); }
}
break;
}
}
if(isset($out) && $out == 1
) { }
?>
problem w tym ze po wysłaniu formularza, zamiast inputów pojawia sie nazwa użytkowniak i id wczytywane z sesji, jednak po przejściu na inną strone znowu pojawia się panel logowania. próbowałem zamiast login.php dać index.php?page=login tylko wtedy ładuje się cała strona drugi raz ;D
Ten post edytował palonek 24.01.2010, 19:11:16