2

jQuerymobileとphpでログインスクリプトを作成しました。phpファイルは、セッションを作成し、$ _SESSION['myusername']を設定します。login.htmlページのセッション変数からユーザー名を取得できますか、それとも'var myusername = data.username;'を実行する必要がありますか?ログインページで、この変数をloggedin.htmlページに渡します。

<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');

$host="localhost"; // Host name 
$dbusername="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="testDB"; // Database name 

// Connect to server and select databse.
mysql_connect("$host", "$dbusername", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['username']; 
$mypassword=$_POST['password']; 

$sql="SELECT * FROM members WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
    while($row = mysql_fetch_array($sql)){

// Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("session_username");
    session_register("session_password"); 

    $id = $row["id"];   
    session_register('id'); 
    $_SESSION['id'] = $id;

    session_register('username'); 
    $_SESSION['username'] = $myusername;

    mysql_query("UPDATE members SET last_log_date=now() WHERE id='$id' LIMIT 1");
    }
$json = array('boolean' => true, 'jsonUser' => $_SESSION['username']);
echo json_encode($json);
}
else {
echo "Wrong Username or Password";
}
?>

編集:

var user="<?php echo $myusername; ?>";
$(document).ready(function(e) {

$('#usernamediv').html(user);

});

4

2 に答える 2

2

あなたはちょうどこのように行くことができます:

<script language="javascript">
var username="<?php echo $_SESSION['username']; ?>";
</script>

エコーPHP変数をJavascript内に配置できない理由はありません!

于 2012-07-26T23:42:39.587 に答える
0

良い一日!ご覧のとおり、PHPフレームワークは使用していません。Codeigniterなどのいずれかを使用してみてください。そうすれば、すべての$_SESSIONを通常の変数内に表示できます。したがって、@session_startステートメントは必要ありません。

于 2012-07-27T03:44:59.043 に答える