2012-04-13 5 views
0

Meine Benutzer haben beim Anmelden eine user_ID, die in der URL angezeigt wird. Wenn Sie jedoch zu einer Seite von 'myaccount.php' wechseln, wenn das nächste Formular gespeichert wurde (thesis.php), sollte sich immer noch die gleiche ID in der URL befinden und daher sollten die korrekten Daten unter ihrer eigenen ID in der Datenbank sein. Im Moment frischt die thesis.php Seite nur mit dem folgenden Code:Die Sitzung (Benutzer-ID) bleibt beim Wechseln der Seiten unverändert

$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:

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

Antwort

2

Ich glaube, Sie session_start anrufen müssen(), bevor Sie tun können, isset (_ SESSION [‘$ Blah ']).

Versuchen Sie die Verschiebung session_start(); an die Spitze der Datei

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

Was Dale sagte, aber zu klären, brauchen Sie nicht die ID in der URL zu übergeben. Schließen Sie session_start() oben auf jeder Seite ein, und $ _SESSION ['user_id'] folgt dem Benutzer, nachdem Sie das erste Mal festgelegt haben. Die Sitzung wird von PHP verwaltet, wobei ein Cookie verwendet wird, um die Sitzungs-ID auf der Client-Seite zu speichern. –

0

session_start(); Muss an der Spitze sein;

, wenn Sie die ID var in der URL übergeben möchten verwenden

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

wie dieser header' ("location: user1257518

+0

Ich meinte einen Link zu myaccount.php. Was du geschrieben hast, wenn es in myaccount.php platziert wurde, würde eine Umleitungsschleife verursachen – squarephoenix

Verwandte Themen