2012-10-09 2 views
1

아래와 같이 내 SQL 테이블에 저장하는 사용자 입력에 노력하고있어 my database http://goawaymom.com/test.png시작 변수

내가 그들의 '이메일', 'FIRSTNAME'에 대한 사용자를 조회 , '성'및 'about'을 입력하십시오. 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']); 
} 
?> 

어떤 도움을 주시면 감사하겠습니다. 다시 한 번 내 질문은 왜 내 php 데이터베이스에 저장하는 내 editprofile.php 양식의 데이터가 아니며 어떻게 수정해야합니까? 사전에 감사 드리며, 더 많은 코드가 필요하다면 나는 그것을 기꺼이 제공 할 것입니다. 이 양식은 웹 사이트에 등록 할 때 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

내가 대신를 htmlentities의 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

관련 문제