Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 04:10   #1
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
Вопрос Добавление и обновление в БД не всегда

Ребят, сделал админку,в ней есть добавление,редактирование и удаление статей,но добавление и редактирование не всегда работает.
Например редактирование:
Есть маленькая или большая статья,я туда вставляю:
Код HTML:
<td align="left">
Очень часто хочется знать, что происходит на сайте за время Вашего отсутствия. Конечно, можно периодически проверять форум, гостевую и т.д. на предмет новых сообщений, но есть способ лучше! Почему бы не присылать самому себе сообщение 
на почтовый ящик, когда на сайте происходит то или иное событие? Как пример могу предложить такие варианты: регистрация в рассылке, ввод сообщения в форум, гостевую и т.д., ошибка открытия файла, организация обратной
 связи, опрос мнения читателей о 
размещенной статье и т.д и т.п. Способов применить эту возможность РНР — масса, осталось разобраться, как это работает</td>
</tr>
<tr>
<td align="left">
Как всегда &mdash; просто! Синтаксис таков:<br />
Mail ( $email, "Введено сообщение", $str, "From: сообщение ");&nbsp;<br />
Конечно, перед этим соответствующие переменные должны быть введены либо вручную, либо с помощью формы (нужно следить за 
соответствием имен переменных в форме и в скрипте). При выполнении данной команды интерпретатор РНР пошлет письмо с текстом из переменной $str по адресу, указанному в переменной $email. Все остальное &mdash; служебная информация, которая может быть в некоторых случаях опущена за ненадобностью. 
Для примера рассмотрим систему контроля за посетителями определенных страниц сайта. Такая возможность может понадобиться для анализа посещений определенных статей, страниц и т.д. Нам потребуется информация о посетителе,
 которая в РНР автоматически доступна через переменные окружения. Эту информацию мы будем отсылать себе на почтовый ящик. Только не переусердствуйте &mdash; каждое посещение такой страницы вызовет отправку письма, и ящик может оказаться переполненным.</p>
<pre>&lt;?php
if (isset ($HTTP_X_FORWARDED_FOR)) 
{ 
$host = gethostbyaddr($HTTP_X_FORWARDED_FOR); 
}else{ 
$host = gethostbyaddr($REMOTE_ADDR); } 

$ip=getenv('REMOTE_ADDR');
$date=date('d M Y, H:i:s');
$host1=gethostbyaddr("$ip");

$str=("
Дата &mdash; $date
Хост &mdash; $host
IP-адрес &mdash; $ip
---------------------");
mail( $email, "статистика", $str, "From:информация");
?&gt;</pre>
<p>Если Вы разместите на одной из Ваших страниц этот код РНР, информация о посетителе (это дата входа, хост и IP-адрес) будет в Вашем почтовом ящике. Еще можно прислать себе сообщение при возникновении ошибки (например, открытия файла) на сайте:</p>
<pre>$filename = "data.txt"; 
$fp = @fopen($filename,"r"); 
if ( !$fp ) { @mail( $email, "Ошибка!", "Ошибка открытия файла $filename !"); }</pre>
<p>Как обычно, можно поставить знак @, и если возникнет ошибка при отправке почты, сообщение об этом не будет выведено на экран. А можно просто проверить, ушло письмо или нет: if ( @mail( $email, "Тест", $str) ) { &hellip; что 
сделать если письмо ушло &hellip; } else { &hellip; что делать, если произошла ошибка отправки (не доступен ящик, сайт и т.д) }. Собственно говоря, есть возможность забирать почту с любого аккаунта, но это требует расширения РНР за счет
 подключения дополнительных модулей, и в стандартной поставке недоступно. Если в переменной $email указать несколько адресов, 
разделенных пробелами, информация будет разослана по всем указанным адресам. Это открывает простой путь к организации 
собственной, ни от кого не зависящей системы почтовых рассылок.</p>
Это просто к примеру, но пишет,что урок не обновлен.Так и при добавлении иногда отказывается добавлять.
Вот кусок кода:
PHP код:
$result mysql_query ("UPDATE PHP SET title='$title', d='$d', k='$k', date='$date', desc='$desс', text='$text', author='$author' WHERE id='$id'");

if (
$result == 'true') {echo "<p>Ваш урок успешно обновлен!</p>";
$s $_SERVER['HTTP_REFERER'];
echo
"<html><head><meta http-equiv='Refresh' content='1; URL=$s'></head></html>";
}
else {echo 
"<p>Ваш урок не обновлен!</p>";}

Чёт мне кажется,что это происходит из-за HTML|PHP кода или сервер прикалываться начал)
правильно оформляйте код!! //модератор

Последний раз редактировалось SkyM@n; 24.03.2009 в 08:04.
Jensi вне форума Ответить с цитированием
Старый 24.03.2009, 07:55   #2
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Получается что у тебя не выполняется условие
Код:
if ($result == 'true')
.
Может быть какая-то ошибка в твоём запросе, может не все переменные передаются, попробуй до того как делать UPDATE, проверять наличие всех переменных:
PHP код:
if (isset($id) && isset($title) && isset($d) && isset($k) isset($date) && isset($desc) && isset($text) && isset($author))
{
$result mysql_query ("UPDATE php SET title='$title', d='$d', k='k', date='$date', desc='$desс', text='$text', author='$author' WHERE id='$id'");

if (
$result == 'true') {echo "<p>Ваш урок успешно обновлен!</p>";}
else {echo 
"<p>Ваш урок не обновлен!</p>";}
}         
else 
{
echo 
"<p>Вы ввели не всю информацию, поэтому урок не может быть обновлен.</p>";

правильно оформляйте код! //модератор
Ты имеешь ввиду для PHP писать вместо тега 'CODE' тег 'PHP'? ок, впредь буду знать! //jeka5555

Последний раз редактировалось jeka5555; 25.03.2009 в 07:50.
jeka5555 вне форума Ответить с цитированием
Старый 24.03.2009, 12:47   #3
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
По умолчанию

jeka5555,у меня всё это есть(проверка),я просто её не вытянул со скрипта сюда.Но весь смысл в том,что именно при каких-то определённых тегах что ли не обновляется статья или чё оно там так.
Я даже код менял и пробовал его разделить на два файла, но ничего не помогло.Экранировать ведь ничего не нужно на сколько я знаю
Jensi вне форума Ответить с цитированием
Старый 24.03.2009, 16:05   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

' - комментируешь в запросе?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 24.03.2009, 22:54   #5
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
Сообщение

Цитата:
Сообщение от mv28jam Посмотреть сообщение
' - комментируешь в запросе?
Если честно,то хоть с кавычками,хоть без них ничего не добавляется,только что специально протестировал.Наверное кину на хостинг бесплатный и посмотрю,может это у меня чёт топсервер бредит
Пока ничего не получается
Jensi вне форума Ответить с цитированием
Старый 25.03.2009, 07:56   #6
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

а таблица "PHP" у тебя в базе так же заглавными буквами написана?
jeka5555 вне форума Ответить с цитированием
Старый 25.03.2009, 08:08   #7
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
По умолчанию

Цитата:
Сообщение от jeka5555 Посмотреть сообщение
а таблица "PHP" у тебя в базе так же заглавными буквами написана?
Да,всё одинаково
Jensi вне форума Ответить с цитированием
Старый 25.03.2009, 08:14   #8
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Ну тогда х.з. копайся в настройках сервера, PHP или MySQL'а.
Или выложи весь, код: формы добавления статьи и обработчика.
jeka5555 вне форума Ответить с цитированием
Старый 25.03.2009, 15:04   #9
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
По умолчанию

Проблема решена, нужно было поставить $text=addslashes($text); перед добавлением в БД,с редактированием пока не пробовал(ща нет времени).
Осталось исправить кодировку и найти дет magic_quotes_gpc,но .htaccess нету на сервере О_о.
Всем спасибо за попытки)
Jensi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма всегда сверху(always onTop) KiDoki Общие вопросы Delphi 7 14.12.2008 12:03
Всегда позади и всегда впереди в одном приложении Legat Win Api 4 27.10.2007 15:48
Как сделать форму всегда активной? londoner Общие вопросы Delphi 3 04.03.2007 14:44