|
|
|
มีปัญหากับการใช้งาน session regiter ครับ มันไม่แสดงผลเมื่ออัพขึ้น server |
|
|
|
|
|
|
|
จากรูปด้านบน เมื่อทำงานอยู่บน appserv ทำงาน แสดงผลได้ตามที่ต้องการ (แจ้งเตือนผลการ login) แต่เมื่ออัพขึ้น server ส่วนที่แสดงข้อความเตือนนี้ไม่มีการแสดงผลใด ๆ
หน้า index.php (login)
Code (PHP)
<?
session_start();
session_unregister("code_error");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="fancybox2/scripts/jquery-1.4.3.min.js"></script>
<script type="text/javascript" src="fancybox2/fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
<script type="text/javascript" src="fancybox2/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<!-- เรียกใช้งานไฟล์ CSS -->
<link rel="stylesheet" type="text/css" href="css/loginform.css" />
<link rel="stylesheet" type="text/css" href="fancybox2/fancybox/jquery.fancybox-1.3.4.css" media="screen" />
<link rel="stylesheet" href="fancybox2/style/style.css" />
<title>: : โปรแกรมฝ่ายปกครอง : :</title>
<script type="text/javascript">
$(document).ready(function() {
$('a[id^="REGIS"]').fancybox({
'width' : '50%',
'height' : '80%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe',
onClosed : function() {
// parent.location.reload(true);
}
});
$('a[id^="delete"]').fancybox({
'width' : '20%',
'height' : '20%',
onStart : function() {
return window.confirm('Do you want to delete?');
},
onClosed : function() {
parent.location.reload(true);
}
});
});
//ทำให้ค่าใน textbox ที่แสดงอยู่หายไป
function clearValue(obj,text) {
if ( obj.value == text ) obj.value = '';
}
function checkValue(obj,text) {
if ( obj.value == '' ) obj.value = text;
}
</script>
</head>
<body>
<div class="table">
<table width="1024" align="center">
<tr>
<td class="header"><p>
<label>
<input name="button" type="button" class="logo" id="button" />
</label>
<p>: : โปรแกรมฝ่ายปกครอง : :</p></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">
<div class="loginform">
<form id="form1" name="form1" method="post" action="../system/config/chklogin.php">
<span>
<label>
<input type="text" name="user_login" id="user_login" autocomplete="off" class="inputs" onBlur="checkValue(this,this.defaultValue)" onFocus="clearValue(this,this.defaultValue)" value="Username"/>
</label>
</span>
<p><span>
<label>
<input type="password" name="pass_login" id="pass_login" autocomplete="off" class="inputs" onBlur="checkValue(this,this.defaultValue)" onFocus="clearValue(this,this.defaultValue)" value="Password"/>
</label>
</span></p>
<p><span>
<input type="submit" name="login" id="login" value="เข้าสู่ระบบ" class="Button2">
</span></p>
<p><span><span><strong><? echo "<br>"; print"$code_error"; ?></strong></span></span></p>
</form>
</div> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="center"> [ <a id="REGIS" href="../regis/regis.php" class="fancybox">ลงทะเบียนนักเรียนใหม่</a> ]</td>
</tr>
</table>
</div>
</body>
</html>
</div>
ไฟล์ chklogin.php
Code (PHP)
<?
session_start();
include("connect.php");
$strSQL = "SELECT * FROM member WHERE Username = '".trim($_POST['user_login'])."' and Password = '".md5(trim($_POST['pass_login']))."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
mysql_query("SET character_set_results=UTF8");
mysql_query("SET character_set_client=UTF8");
mysql_query("SET character_set_connection=UTF8");
if(!$objResult)
{
$code_error="<font size='2' face='MS Sans Serif' color='#FF0000'><b>Username หรือ Password ไม่ถูกต้อง กรุณา Login ใหม่</b></font>";
session_register("code_error");
header("location:../../login/index.php");
}
else
{
if($objResult['status'] !=1)
{
$code_error="<font size='2' face='MS Sans Serif' color='#FF0000'><b>ชื่อผู้ใช้งานนี้ยังไม่ได้รับการอนุญาตให้ใช้งาน กรุณาติดต่อผู้ดูแลระบบ</b></font>";
session_register("code_error");
header("location:../../login/index.php");
}
else
{
if($objResult['rang'] =='ADMIN')
{
session_start();
$_SESSION["ADMIN"] = $objResult["IDstd"];
$_SESSION["PK"] = $objResult["IDstd"];
$_SESSION["TEACHER"] = $objResult["IDstd"];
$_SESSION["STUDENT"] = $objResult["IDstd"];
$_SESSION["STUHEADER"] = $objResult["IDstd"];
$_SESSION["ALL"] = $objResult["IDstd"];
session_write_close();
header("location:../../admin/index.php");
}
else
{
if($objResult['rang'] =='PK')
{
session_start();
$_SESSION["PK"] = $objResult["IDstd"];
$_SESSION["TEACHER"] = $objResult["IDstd"];
$_SESSION["STUDENT"] = $objResult["IDstd"];
$_SESSION["STUHEADER"] = $objResult["IDstd"];
$_SESSION["ALL"] = $objResult["IDstd"];
session_write_close();
header("location:../../pk/index.php");
}
else
{
if($objResult['rang'] =='TEACHER')
{
session_start();
$_SESSION["TEACHER"] = $objResult["IDstd"];
$_SESSION["STUDENT"] = $objResult["IDstd"];
$_SESSION["STUHEADER"] = $objResult["IDstd"];
$_SESSION["ALL"] = $objResult["IDstd"];
session_write_close();
header("location:../../teacher/index.php");
}
else
{
if($objResult['rang'] =='STUHEADER')
{
session_start();
$_SESSION["STUHEADER"] = $objResult["IDstd"];
$_SESSION["STUDENT"] = $objResult["IDstd"];
$_SESSION["ALL"] = $objResult["IDstd"];
session_write_close();
header("location:../../student/index.php");
}
else
{
session_start();
$_SESSION["STUDENT"] = $objResult["IDstd"];
$_SESSION["ALL"] = $objResult["IDstd"];
session_write_close();
header("location:../../student/index.php");
}
}
}
}
}
}
mysql_close();
?>
ขอคำแนะนำในการแก้ไข หรือมีวิธีการอื่นเข้ามาใช้งานทดแทน ที่มีการทำงาน แสดงผลในรูปแบบที่คล้าย ๆ กัน ก็ขอตัวอย่างด้วยครับ เพราะผมใช้รูปแบบนี้ในหลาย ๆ ไฟล์ พอขึ้น server ก็ไม่ทำงานทั้งหมดเลย
Tag : PHP, HTML/CSS
|
ประวัติการแก้ไข 2014-03-15 20:16:06
|
|
|
|
|
Date :
2014-03-15 12:47:59 |
By :
akkaneetha |
View :
1190 |
Reply :
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ต้องใช้ register แล้วครับ
Code แค่นี้พอ (PHP)
session_start();
$_SESSION['session_key'] = $your_parameter;
|
|
|
|
|
Date :
2014-03-15 14:21:59 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พูดง่ายๆไม่ต้อง register กำหนดแบบพี่เขาบอกนั่นแหละครับตรงๆเลยเร็วด้วย
|
|
|
|
|
Date :
2014-03-15 16:18:45 |
By :
dekkuza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่ม
$code_error = session_unregister("code_error");
จะได้มั้ยอะ
|
|
|
|
|
Date :
2014-03-15 16:49:53 |
By :
maojunghi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วครับ ก็ยังไม่แสดงผลเหมือนเดิม คือที่ว่าไม่ต้อง register นี้ หมายถึงในไฟล์ index.php หรือว่า ไฟล์ chklogin.php ครับ
แล้วก็ พอ $_SESSION['session_key'] มีค่าอยู่ มันก็ไม่เครียค่าออกครับ จนกว่าจะเข้าสู่ระบบได้และทำการกด logout ครับ (ปิดเฉย ๆ ไม่ได้ ค่าไม่หาย)
ไฟล์ index.php
Code (PHP)
<?
session_start();
$_SESSION['session_key'] = $code_error;
//session_unregister("code_error");
?>
แล้วในไฟล์ chklogin.php ต้องแก้ไขอะไรมั้ยครับ หรือก็ยังใช้ session_register("code_error"); เหมือนเดิม
เพิ่มเติมนิดนึงครับ
server ที่ใช้งานเป็น Ubuntu server 12.04.3 นะครับ host จริงนะครับ ใช้งานเว็บอยู่
|
ประวัติการแก้ไข 2014-03-15 20:17:23 2014-03-15 20:25:21
|
|
|
|
Date :
2014-03-15 20:13:09 |
By :
akkaneetha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ให้อยู๋ในรูปแบบนี้ให้หมด ทุกไฟล์เลยจร้า
<?
$SESSION[sessionname]="your data";
?>
|
|
|
|
|
Date :
2014-03-18 20:14:11 |
By :
dekkuza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไฟล์ chklogin.php
จะใส่ session_start(); หลายอันทำไม อีกอย่าง ก่อน session_start(); ไม่ควรเคาะ และ ควรจะไว้บรรทัดแรก
Code (PHP)
<?php
session_start();
?>
ไม่งั้น session จะใช้ไม่ได้
|
|
|
|
|
Date :
2014-03-18 22:14:04 |
By :
โปรแกรมมั่ว |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ
ผมไปอ่านเพิ่มเติมกับตัวอย่าง แต่ก็ดูเหมือนไม่ค่อยได้อะไรเท่าไหร่
แล้วหลังจากลองแก้โค้ดและทดสอบ ก็แสดงผลได้แล้วบนเซิร์ฟเวอร์ ได้แล้ว แต่ติดอยู่ที่ว่า
พอหลังจากแสดงผลว่า กรอกข้อมูลไม่ถูกต้อง แล้วปิดหน้าเว็บนั้นไป(ไม่ทำการ login ต่อ) แล้วเปิดใหม่อีกครั้ง ค่าที่แสดงว่า กรอกข้อมูลไม่ถูกต้องยังคงแสดงอยู่ ซึ่งที่ต้องการคือ ค่านี้ไม่ควรที่จะแสดงอยู่
ผมเลยลองใส่ unset เข้าไป ที่นี้ค่า ไม่แสดงออกมาเลย
เลยอยากลองให้ช่วยดูให้อีกทีครับ
ไฟล์ index.php
Code (PHP)
<?php
session_start();
//unset($_SESSION["code"]); //ถ้าเปิดบรรทัดนี้ จะไม่แสดดงค่าใด ๆ ใด ๆ เลย
.
.
.
.
<? echo "<br>";echo $_SESSION["code"];?>
?>
ไฟล์ chklogin.php
Code (PHP)
{
$_SESSION["code"]="<font size='2' face='MS Sans Serif' color='#FF0000'><b>Username หรือ Password ไม่ถูกต้อง กรุณา Login ใหม่</b></font>";
session_write_close();
//$code_error="<font size='2' face='MS Sans Serif' color='#FF0000'><b>Username หรือ Password ไม่ถูกต้อง กรุณา Login ใหม่</b></font>";
//session_register("code_error");
header("location:../../login/index.php");
}
else
{
if($objResult['status'] !=1)
{
$_SESSION["code"]="<font size='2' face='MS Sans Serif' color='#FF0000'><b>ชื่อผู้ใช้งานนี้ยังไม่ได้รับการอนุญาตให้ใช้งาน กรุณาติดต่อผู้ดูแลระบบ</b></font>";
session_write_close();
//$code_error="<font size='2' face='MS Sans Serif' color='#FF0000'><b>ชื่อผู้ใช้งานนี้ยังไม่ได้รับการอนุญาตให้ใช้งาน กรุณาติดต่อผู้ดูแลระบบ</b></font>";
//session_register("code_error");
header("location:../../login/index.php");
}
|
|
|
|
|
Date :
2014-03-19 22:25:59 |
By :
akkaneetha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็คุณเล่นยัด error ไว้ในตัวแปร $_SESSION แล้วไม่ได้ทำลายหรือเคลียร์ค่าตัวแปร เมื่อกลับมาเปิดใหม่มันก็แสดงสิครับ
โดยปกติแล้วในการแสดง error ต่างๆ ส่วนใหญ่(ผม)แล้วจะกำหนดในตัวแปรธรรมดาเลย ซึ่งมันไม่จำเป็นต้องกำหนดในตัวแปร $_SESSION ผมคิดว่าอย่างนั้นนะ
Code (PHP)
$error = "<font size='2' face='MS Sans Serif' color='#FF0000'><b>Username หรือ Password ไม่ถูกต้อง กรุณา Login ใหม่</b></font>";
|
|
|
|
|
Date :
2014-03-20 08:56:07 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เอาอะไรมากนะ ยังไม่ต้องรื้ออะไรทิ้ง เรื่องการแจ้งเตือน เอาแบบนี้ได้ไหม.....เป็นการเด้งแจ้งเตือน
if ( $numRow_user== 0 ) {
echo "<script>alert ('Username Wrong');location.href='logout.php';</script>";
}
ใน logout.php จะมี
Code (PHP)
session_start();
session_destroy();
echo("<script language='javascript1.2'>");
echo("window.top.location.href='login.php';"); //สั่งให้กลับไปหน้า login
echo("</script>");
|
|
|
|
|
Date :
2014-03-20 09:01:18 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือจะแจ้งเตือนกลับมาแบบ javascript : document.getElementById('idของDiveหรือsapn').innerHTML มันจะได้ไหม ต้องไปลองดูเน๊อะ
|
|
|
|
|
Date :
2014-03-20 10:14:46 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|