2012-04-13 9 views
0

ログイン時にユーザーにuser_IDがあり、これがURL内に表示されます。しかし、次のフォーム(thesis.php)が保存されているときに 'myaccount.php'からページに移動するとき、同じIDがURLに残っているはずです。したがって、入力した正しいデータは、データベース内の自分のIDでなければなりません。ページの変更中にセッション(ユーザーID)を同じに維持する

$err = array(); 
$result = mysql_query("SELECT `id` FROM `users` WHERE `banned` = '0' ORDER BY 
`id` DESC"); 
if(isset($_SESSION['user_id'])) 
if(empty($_SESSION['$user_id'])) { // user not logged in; redirect to somewhere else } 
if (!empty($_POST['doThesis']) && $_POST['doThesis'] == 'Save') 
{ 

    list($id) = mysql_fetch_row($result); 

session_start(); 
// this sets variables in the session 
$_SESSION['user_id'] = $id; 
foreach($_POST as $key => $value) 

$stamp = time(); 
$ckey = GenKey(); 
mysql_query("update users set `ctime`='$stamp', `ckey` = '$ckey' where id='$id'") 
or die(mysql_error()); 

$row = mysql_fetch_array($result); 
print_r($row); 

if(empty($err)) { 


$thesis_Name = mysql_real_escape_string($_POST['thesis_Name']); 
$abstract = mysql_real_escape_string($_POST['abstract']); 

$sql_insert = "INSERT into `thesis` 
(`user_id`,`thesis_Name`,`abstract`) 
VALUES 
('$id','$thesis_Name','$abstract') "; 

mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error()); 
} 
header("Location: myaccount.php?id=' . $_SESSION[user_id] .'"); 
exit(); 

    } 

    } 

HTML::私はあなたがでsession_startを(呼び出す必要があると考えてい

<p align="center"> 
<input name="doThesis" type="submit" id="doThesis" value="Save"> 
     </p> 

答えて

2

)を行うことができます前に、ISSET($ _ SESSIONの[」現時点でthesis.phpページには、単に次のコードで更新しblah '])。

session_start()を試してみてください。ファイルの先頭に移動します。

<?php 
session_start(); 
..... 
the rest of your code 
+0

を使用していますが、明確にするために、URLのid VARを渡したい場合は

は、あなたがURLにIDを渡す必要はありません。各ページの一番上にsession_start()をインクルードし、$ _SESSION ['user_id']は最初に設定した後にユーザーの周りをたどります。セッションは、クライアント側でセッションIDを保存するためにCookieを使用してPHPによって管理されます。 –

0

session_start();トップにある必要があります。あなたはデールが言っ

<a href='myaccount.php?id=<? echo $id; ?>'> 
+0

このヘッダのように '("場所: ")' – user1257518

+0

私はmyaccount.phpへのリンクを意味しました。 myaccount.phpに置いた場合、あなたが書いたものは、リダイレクトループを引き起こします – squarephoenix

関連する問題