PDA

View Full Version : مشكل در لاگين آجاكس با session db



aysha_6586
جمعه 09 تیر 1391, 13:45 عصر
سلام من يه صفحه لاگين دارم كدشو اينجا ميذارم نميدونم چرا درست اجرا نميشه
براي session db از كلاس آقاي شهركي (http://barnamenevis.org/showthread.php?286634-%D8%B0%D8%AE%D9%8A%D8%B1%D9%87-Session-%D8%AF%D8%B1-DB-%D8%A8%D9%87-%D8%AC%D8%A7%D9%8A-%D9%81%D8%A7%D9%8A%D9%84) استفاده كردم
تازه كارم احتمال ميدم قسمت ارتباط با بانك php مشكل داشته باشه
كد صفحه لاگين
فايل login.php


<!-- login form -->
<!-- Form: the action="javascript:login()"call the javascript function "login" into ajax_framework.js -->
<form action="javascript:login()" method="post">
<label >پست اكترونيك</label>
<input name="emailLogin" type="text" id="emailLogin" value=""/>
<br />
<input name="pswLogin" type="password" id="pswLogin" value=""/>
<input type="submit" name="Submit" value="Login"/>
<!-- Show Message for AJAX response -->
<p><?php echo isset($_SESSION['test'])?$_SESSION['test']:'Test session is not defined'; ?></p>
<div id="login_response"></div>
</form>
كد جاوا اسكريپت
فايل ajax_availabilityStatus.js


/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}

var http = createObject();

/* -------------------------- */
/* LOGIN */
/* -------------------------- */
/* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */
var nocache = 0;
function login() {
// Optional: Show a waiting message in the layer with ID ajax_response
document.getElementById('login_response').innerHTM L = "Loading..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var email = encodeURI(document.getElementById('emailLogin').va lue);
var psw = encodeURI(document.getElementById('pswLogin').valu e);
// Set te random number to add to URL request

nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'dbFunction/db_login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
http.onreadystatechange = loginReply;
http.send(null);
}
function loginReply() {
if(http.readyState == 4){
var response = http.responseText;
//document.getElementById('login_response').innerHTM L =http.responseText;
if(response == 'fail'){
// if login fails
document.getElementById('login_response').innerHTM L = 'Login failed! Verify user and password';
// else if login is ok show a message: "Welcome + the user name".
} else {
document.getElementById('login_response').innerHTM L = 'Welcome'+response;
//document.getElementById('login_response').innerHTM L = 'Login failed! Verify user and password';
}
}
}





كد php
فايل db_login.php


<!-- Include Database connections info. -->
<?php
include ('config.php');
require_once('sssh.class.php');
//===================if user exists for login========================//

if(isset($_GET['email']) && isset($_GET['psw']))
{
$email =mysql_real_escape_string($_GET['email']) ;
$psw =mysql_real_escape_string( $_GET['psw']);


$getSalt_sql= 'SELECT salt FROM tb_user WHERE Email="'. $email .'"';
$getSalt=mysql_query($getSalt_sql);
$getSalt_result=mysql_fetch_assoc($getSalt);
$psw=sha1($getSalt_result.$psw) ;

$getUser_sql = 'SELECT * FROM tb_user WHERE Email="'. $email . '" AND Password = "' . $psw . '"';
$getUser = mysql_query($getUser_sql);
$getUser_result = mysql_fetch_assoc($getUser);
$getUser_RecordCount = mysql_num_rows($getUser);

if ($getUser_RecordCount < 1)
{
return 'fail';
}
else
{
$session=new MySessionHandler($db_host,$username,'',$db_name);
session_start();
$_SESSION['user']=$email;
//echo ($email);
return $email;
}

//if($getUser_RecordCount < 1){ echo '0';} else { echo $getUser_result['FirstName'];}
}

plague
جمعه 09 تیر 1391, 18:28 عصر
دو حالت داره یا شما سمت کلاینت مشکل داری یعنی javascript + html یا سمت سرور یعنی php
برای مورد اول
وقتی میخاید از ایجکس و جاوا اسکریپت استفاده کنید حتما حتما فایر باگ رو نصب کنید
در مورد دوم هم پاسخی رو که از سمت سرور براتون ارسال میشه رو یبار آلرت کنید اگه php اررور تولید کرده باشه توی پاسخ براتون ارسال میشه و شما میبینیدش


اگه میخاید ایجکس و جاوا اسکریپت تو کد هاتونو استفاده کنید پیشنهاد میکنم حتما جی کوئری رو یاد بگیرید که کد جاوااسکریپت و ایجککستون رو توی 3-4 خط خلاصه میکنه
این باز نویسی کد جاوا اسکریپته با استفاده از جی کوئری برای استفاده از این کد باید جی کوئری رو توی صفحتون ضمیمه کرده باشید

function login() {
$('#login_response').html('Loading...');
var email = encodeURI($('#emailLogin').val());
var psw = encodeURI($('#pswLogin').val());
$.get('dbFunction/db_login.php?email='+email+'&psw='+psw , function(data){
data = $.trim(data);
if(data == 'fail' )
$('#login_response').html('Login failed! Verify user and password');
else
$('#login_response').html('Welcome'+data);
})
}