2013-07-11 3 views
1

Как сказано в этом разделе, я использую свои функции, включая файл, чтобы попытаться установить «$ _SESSION ['username']», чтобы я мог использовать его как вставку значение на части моего сайта, но я не имею никакой удачи ..

function change_profile_image($user_id, $file_temp, $file_extn) { 
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn; 
move_uploaded_file($file_temp, $file_path); 
mysql_query("UPDATE `users` SET `profile` = '" . mysql_real_escape_string($file_path) . "' WHERE `user_id` = " . (int)$user_id); 
} 

function mail_users($subject, $body) { 
$query = mysql_query("SELECT `email`, `first_name` FROM `users` WHERE `allow_email` = 1"); 
while (($row = mysql_fetch_assoc($query)) !== false) { 
    email($row['email'], $subject, "Hello " . $row['first_name'] . ",\n\n" . $body); 
} 
} 
    function login($username, $password) { 
$user_id = user_id_from_username($username); 

$username = sanitize($username); 
$username = $_SESSION['username']; 
$password = md5($password); 

return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) == 1) ? $user_id : false; 
} 

так что я могу вставить их в MySQL с помощью строки, такие как

$category=$_POST['category']; 
$sub_category=$_POST['sub_category']; 
$topic_data=$_POST['topic_data']; 
$posted=date("h:i:s d/m/Y"); //create date time 

$sql="INSERT INTO `topics`(category, sub_category, topic_data, posted_by, posted)VALUES('$category', '$sub_category', '$topic_data', '" . $_SESSION['username'] . "', '$posted')"; 
$result=mysql_query($sql); 

if($result){ 
header("Location: topics.php"); 
exit(); 
+3

вы inialize сессию до этого кода? – GoldenTabby

+0

Да, я не хотел копировать весь файл, но session_start() находится в include и появляется на каждой странице, единственная переменная, которую я могу получить, это $ _SESSION ['user_id'] – user2571547

+1

Где вы устанавливаете $ _SESSION ['username']? – aynber

ответ

1

Вам нужно

$_SESSION['username'] = $username; 

вместо

$username = $_SESSION['username']; 
+0

Я пробовал это, никаких ошибок, но он просто вставляет пустое поле в базу данных, а все остальные вставлены правильно. – user2571547

+0

use var_dump ($ username); Выход; после $ username = sanitize ($ username); – GoldenTabby

1

Вы установили:

$username = $_SESSION['username']; 

вместо:

$_SESSION['username'] = $username;