|
|
|
| Здравствуйте. Подскажите пожалуйста решение моей проблемки.
Пытаюсь добавить статью, но выскакивает соощение "Ваша статья не добалена!". Я уже смотрел и так и сяк...
Есть форма через которую я ввожу данные (её я не привожу), и файл который эти данные обрабатывает:
<?php
include ("blocks/bd.php");
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
if (isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author);}}
?>
<?php
$text = stristr ($text, '<body');
$text = stristr ($text, '>');
$text = substr ($text, 1, strpos ($text, '</BODY>') -1);
?>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<?php
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author))
{
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,date,description,text,author) VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author')");
if ($result == 'true') {echo "<p>Ваша статья успешно добалена!</p>";}
else {echo "<p>Ваша статья не добалена!</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому статья не может быть добалена.</p>";
}
?>
|
Мне кажется, что проблема заключается в неверно созданой таблице.
Вот sql запрос той таблицы:
CREATE TABLE IF NOT EXISTS "lessons" (
"id" int(4) NOT NULL auto_increment,
"title" tinytext NOT NULL,
"meta_d" tinytext NOT NULL,
"meta_k" tinytext NOT NULL,
"date" date NOT NULL default '0000-00-00',
"description" text NOT NULL,
"text" text NOT NULL,
"author" tinytext NOT NULL,
PRIMARY KEY ("id")
) AUTO_INCREMENT=5 ;
|
Помогите кто чем может. | |
|
|
|
|
|
|
|
для: Mekomelo
(21.02.2008 в 19:17)
| | Выводите сообщение об ошибке в случае, если запрос возвратит false:
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,date,description,text,author)
VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author')") or die (mysql_error());
|
Тогда помощь посторонних не понадобится, сами разберетесь. | |
|
|
|
|
|
|
|
для: Mekomelo
(21.02.2008 в 19:17)
| | Между прочим:
if ($result == 'true') {echo "<p>Ваша статья успешно добалена!</p>";}
В $result ни при каких обстоятельствах не появится строка 'true' просто
потому, что функция mysql_query() не возвращает строки.
Она возвращает дескриптор набора строк результата запроса (если запрос был исполнен)
либо false (если запрос был отвергнут).
Заметьте, во втором случае она возвращает false, а не 'false' .
Значение true она не возвращает вообще. | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2008 в 10:57)
| | Дело в том, что исходный код который я привел у меня на локалхосте работает, а вот заливая на платный хостинг и не работает.
Сейчас попрою поизменять то что посоветовали. | |
|
|
|
|
|
|
|
для: Mekomelo
(22.02.2008 в 13:44)
| | > Дело в том, что исходный код который я привел у меня на локалхосте работает, а вот заливая на платный хостинг и не работает.
Возможно, у Вас на localhost включен режим magic_quotes_gpc.
Надо переписать код так, чтобы данные эскейпировались вне зависимости от состояния режима. Причем, эскейпировались один раз. | |
|
|
|
|
|
|
|
для: Mekomelo
(21.02.2008 в 19:17)
| |
<?
if (mysql_num_rows($result) > 0) {echo "<p>Ваша статья успешно добалена!</p>";}
else {echo "<p>Ваша статья не добалена!</p>";}
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(22.02.2008 в 12:04)
| | Из мануала: mysql_num_rows() возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT.
C результатом запроса INSERT эта функция работать не станет. | |
|
|
|
|
|
|
|
для: Mekomelo
(21.02.2008 в 19:17)
| | Спасибо всем за внимание и за помощь. Проблема решена. Нужно было убрать этот "true" .
Кстати скрипт был взят из диска с видео уроками по рнр. Который помоему продается за 60$
Там ещё не работает изменение статьи, но думаю разберусь.
Ещё раз всем огромное спасибо. | |
|
|
|