[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Unknown error
Shkiper
Всем Hello!!! Давненько на форуме не был. И так приступим к изучению моей ошибки.

Вот PHP код:,
 function user_area ($name, $login, $password)
{

global $snipet;
global $config;
//$name = rawurldecode($name);
$name = mysql_real_escape_string($name);
$select_userinfo = mysql_query("SELECT * FROM `users` WHERE `login`='".$name."'") or die(mysql_error());

if(mysql_num_rows($select_userinfo) < 1)
{
$GLOBALS['title'] = "Пользователь не существует" . " -> " . $config['title'];
$member = "Такого пользователя на сайте не существует.";
}
else{
$user = mysql_fetch_assoc($select_userinfo);

$member_tpl = 'template/member_area.tpl';

if(file_exists($member_tpl))
{
$member_tpl = file_get_contents($member_tpl);
$first = !empty($user['name_and_firstname']) ? $user['name_and_firstname']:'Нет информации.';

$group = $snipet->user_group($login, $password);

$member = strtr($member_tpl, array('{login}'=>$name, '{name_and_firstname}'=>$first, '{email}'=>$user['email'], '{time_registration}'=>$user['date'], '{user_group}'=>$group['name'], '{country}'=>$user['country'], '{icq_number}'=>$user['icq'], '{about}'=>$user['about'], '{num_comments}'=>$snipet->num_comments($name), '{num_news}'=>$snipet->num_news($name)));
ob_start();
echo "
<br />
<a href='/?do=pm&&folder=newpm&&userid='"
.$user['id']."'>[Написать ЛС]</a>
"
;
$login = $snipet->information($_COOKIE['user']['login'], $_COOKIE['user']['password']);
if($name == $login['login'])
{

echo "
<a href='' id='edit_info'>[Редактировать информацию]</a>
<div id='result_info' style='display:none;'>
<form action='/system/cache/edit_info.php' method='POST' id='edit_user'>
<table width='465' border='0' style='border: 2px solid #000000; margin-top: 5px; text-align: center; padding-top: 15px; padding-bottom: 25px;'>
<tr>
<td>Логин:</td>
<td><input type='text' name='user_login' value='"
.$user['login']."' /></td>
</tr>
<tr>
<td>Ваше Имя и Фамилия:</td>
<td><input type='text' name='user_name_and_firstname' value='"
.$user['name_and_firstname']."' /></td>
</tr>
<tr>
<td>Ваш Email:</td>
<td><input type='text' name='user_email' value='"
.$user['email']."' /></td>
</tr>
<tr>
<td>Место проживания:</td>
<td><input type='text' name='user_country' value='"
.$user['country']."' /></td>
</tr>
<tr>
<td>Ваш ICQ номер:</td>
<td><input type='text' name='user_icq' value='"
.$user['icq']."' /></td>
</tr>
<tr>
<td>О себе:</td>
<td><input type='text' name='user_about' value='"
.$user['about']."' /></td>
</tr>
<tr>
<td></td>
<td><input type='submit' id='editinfo_complate' value='Отредактировать' /></td>
</tr>
</table>
</form>
</div>"
;

$GLOBALS['engine_scripts'] = "<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script><script src='http://".$_SERVER['HTTP_HOST']."/system/skins/js/site_helper.js' type='text/javascript'></script>";
}
$user_navigation = ob_get_contents();
ob_end_clean();
$member .= $user_navigation;

$GLOBALS['title'] = "Профиль пользователя " . $name . " -> " . $config['title'];
}else{
$member = "Невозможно открыть файл шаблона: " . $member_tpl;
}
}




Это только основа без каркаса, он то и не нужен. Так вот в этом каркасе подключаеться библиотека jQuery и скрипт вот его исхожный код:
$(document).ready(function () {


$('#edit_info').click(function (evtObj) {

evtObj.preventDefault();
$('#result_info').toggle('slow');


});



$('#editinfo_complate').click(function (evtObj) {

evtObj.preventDefault();

var form = $('form[id=edit_user]');

var login = $('#user_login').val();
var name_and_firstname = $('#user_name_and_firstname').val();
var email = $('#user_email').val();
var icq = $('#user_icq').val();
var country = $('#user_country').val();
var about = $('#user_about').val();

//var data = '&user_login='+login;


$.ajax({

url : form.attr('action'),
async : true,
type : "POST",
dataType : "json",
data : form.serialize(),
processData : false,
contentType : 'application/x-www-form-urlencoded',
success : function (data, textStatus, xhr) {

if(data.success == '1')
{
window.alert('Информация успешно обновлена.');
$('#result_info').hide('slow');
}else if (data.error == '1')
{
window.alert('Ошибка: '+data.notification);
}else
{
window.alert('Произошла неизвестная ошибка.');
}
}
, //Выдаст сообщение при удачном запросе
error : function (xhr, textStatus, errorObj) {}, //Выдаст сообщение при неудачном сообщении


});



});



});

а вот код PHP обработчика который прописан в атрибуте url а аякс запросе:
<?php


define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_HOST", "localhost");
define("DB_NAME", "phpsite");

$db = mysql_connect (DB_HOST,DB_USER,DB_PASSWORD);
if(!$db)
{

exit("Неудоаеться соеденеиться с БД. Проверте параметры подключения!!!");

}
mysql_select_db(DB_NAME,$db) or die("<div align='center'><h1>MySQL Error</h1><br>Невозможно подключиться к БазеДанных: <b>" . DB_NAME . "</b></div>");
mysql_query('SET NAMES utf8',$db);


function user_update ($login, $email,$name_and_firstname,$country,$icq,$about) {

if(mysql_query("UPDATE `users` SET `login`='".$login."', `email`='".$email."',`name_and_firstname`='".$name_and_firstname."', `country`='".$country."', `icq`='".$icq."', `about`='".$about."' WHERE `login`='".$login."'"))
{
return "Информация успешно обнавлена";
}else{
return "Произошла MySQL ошибка - " . mysql_error();
}


}


$login = isset($_POST['user_login']) AND !empty($_POST['user_login']) ? mysql_real_escape_string($_POST['user_login']):false;
$email = isset($_POST['user_email']) AND preg_match('/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9_\-\.]+$/', $_POST['user_email']) ? $_POST['user_email']:false;
$name_and_firstname = isset($_POST['user_name_and_firstname']) AND !empty($_POST['user_name_and_firstname']) ? mysql_real_escape_string($_POST['user_name_and_firstname']):false;
$country = isset($_POST['user_country']) AND !empty($_POST['user_country']) ? mysql_real_escape_string($_POST['user_country']):false;
$icq = isset($_POST['user_icq']) AND !empty($_POST['user_icq']) ? mysql_real_escape_string($_POST['user_icq']):false;
$about = isset($_POST['user_about']) AND !empty($_POST['user_about']) ? mysql_real_escape_string($_POST['user_about']):false;




if($login AND $email AND $name_and_firstname AND $country AND $icq AND $about)
{
die('{"success":"1", "error":"0", "notification":"' . user_update($login, $email,$name_and_firstname,$country,$icq,$about) . '"}');
}else{

die('{"success":"0", "error":"1", "notification":"Вы ввели не все данные!!!"}');
}


?>

Так вот страница все работает. Так вот раскажу про структуаризацию. Сначало идет запрос и выытаскивает инфу о пользователе и выводит ее, если его страница то выдает ссылку на ее редактирование. Полн ажатию по ссвлке выходят с помощью JQ эффекта формы с данными для редактирования так вот редактирую аякс все работает обнавление пошло но при обнавлении страници в инфе текст тоот же а при нажатии редактировать выводит в том поле где редактировал введеный текст на предидущем этапе а в инфе старая почему а в БД созранилась новая инфа так в чем проблема????
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.