2012-10-09 29 views
1

我試圖存儲用戶輸入到我的SQL表如下所示, my database http://goawaymom.com/test.png數據未從PHP會話存儲到SQL數據庫開始變

我查詢用戶爲他們的電子郵件「,「姓名」 ,'姓'和'約'後here.然而,我做了什麼,用戶輸入不保存到數據庫。我想但不確定這是否與我的session_start變量有關。我相信會議沒有正確開始/保存已註冊用戶的唯一身份。因爲我是PHP的新手,所以我基於這個tutorial的代碼。

editprofile.php

<?php 
session_start(); 

include('core/init_inc.php'); 

if(isset($_POST['email'], $_POST['about'], $_POST['firstname'], $_POST['lastname'])){ 
$errors = array(); 
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){ 
    $errors[] = 'The email address you entered is not valid';  
} 
if (empty($errors)){ 
    set_profile_info($_POST['email'],$_POST['about']); 
} 
$user_info = array(
    'email'  => htmlentities($_POST['email']), 
    'about'  => htmlentities($_POST['about']), 
    'firstname'  => htmlentities($_POST['firstname']), 
    'lastname'  => htmlentities($_POST['lastname']) 
); 
} else { 
$user_info = fetch_user_info($SESSION['uid']); 
} 
?> 

任何幫助將不勝感激。我的問題再一次出現,爲什麼我的editprofile.php表單中的數據沒有保存到我的php sql數據庫中,我該如何解決這個問題。在此先感謝,如果需要更多代碼,我願意提供。在註冊該網站後,表格可以訪問here

function fetch_users() { 
$result = mysql_query('SELECT `user_id` AS `id`, `username` FROM `users`'); 

$users = array(); 

while (($row = mysql_fetch_assoc($result)) !== false){ 
    $users[ ] = $row; 
} 


return $users; 

} 
//fetches profile information for the given user 
function fetch_user_info($uid){ 
$uid = (int)$uid; 

$sql = "SELECT 
      `username`, 
      `user_firstname` AS `firstname`, 
      `user_lastname` AS `lastname`, 
      `user_about` AS `about`, 
      `user_email` AS `email` 
     FROM `users` 
     WHERE `user_id` = {$uid}"; 

$result = mysql_query($sql);   
return mysql_fetch_assoc($result); 


} 

//updates the current user profile info 
function set_profile_info($email, $about){ 
$email = mysql_real_escape_string(htmlentities($email)); 
$about = mysql_real_escape_string(nl2br(htmlentities($about))); 


$sql = "UPDATE `users` SET 
     `user_email` = `{$email}`, 
     `user_about` = `{about}` 
    WHERE `user_id` = {$_SESSION[`uid`]}"; 
mysql_query($sql); 
} 
?> 
+0

我認爲你應該使用mysql_real_escape_string而不是ヶ輛。 – JochemQuery

+1

您的代碼中沒有任何東西可以寫入數據庫。你在'set_profile_info'中做了嗎?在這種情況下,您可能需要將代碼添加到您的問題中。 – andrewsi

+0

你的代碼在哪裏實際上試圖保存用戶信息?而'fetct_user_info()'看起來像什麼? –

回答

2

您不能在字符串{$ email}和{$ about}周圍使用``。此外,您現在擁有{about}而不是{$ about}。您也使用它:

$_SESSION[`uid`] //needs to be $_SESSION['uid'] 

所以這應該是:

$sql = "UPDATE `users` SET 
     `user_email` = '{$email}', 
     `user_about` = '{$about}' 
    WHERE `user_id` = {$_SESSION['uid']}"; 
+0

我這樣做,但它仍然不會將信息保存到我的數據庫中。 – ramr

+0

您是否收到錯誤?將'mysql_query($ sql)'更改爲'mysql_query($ sql)或者死掉(「查詢中的錯誤:$ sql。」.mysql_error());'看看是否有錯誤。 – Pitchinnate

+0

沒有錯誤信息!當我輸入信息到edit_profile.php它只是不保存到我的數據庫 – ramr

相關問題