[help]не работает скрипт

Статус
В этой теме нельзя размещать новые ответы.

eXtaz

Создатель
Регистрация
23 Апр 2008
Сообщения
31
Реакции
6
я совсем начинающий, так что сильно не бить.
в общем проблема в том, что скрипт не хочет пахать, может кто-нить тыркнет носом в ошибку
PHP:
<?php
if(isset($_POST["name"]))
{
$name = $_POST["name"];
}
if(isset($_POST["title"]))
{
$title = $_POST["title"];
}
if(isset($_POST["text"]))
{
$text = $_POST["text"];
}

$db = mysql_connect("localhost","alex","12345");
mysql_select_db("articles",$db);

$result = mysql_query("INSERT INTO all (name,title,text) VALUES ('$name','$title','$text')");

if ($result == 'true')
{
echo "Статья добавлена в базу";
}
else
{
echo "Ошибка";
}
?>
 
а точней што именно не работает ???

сразу по коду замечание

PHP:
......
$name = haksql($_POST["name"]);
.......



function haksql($value) {  
        if( get_magic_quotes_gpc() ) {  
            $value = stripslashes( $value );  
        }  
        if( function_exists( "mysql_real_escape_string" ) ) {  
            $value = mysql_real_escape_string( $value );  
        } else {  
            $value = addslashes( $value );  
        }  
        return $value;  
}
 
PHP:
$result = mysql_query("INSERT INTO all (name,title,text) VALUES ('$name','$title','$text')"); 
if ($result == 'true') /* $result - Resource, а не Boolean = error*/
{ 
echo "Статья добавлена в базу"; 
} 
else 
{ 
echo "Ошибка"; 
} 
?>
замени на это
PHP:
$result = mysql_fetch_assoc(mysql_query("
      INSERT INTO all SET name='$name', title='$title', text='$text'
"));
if (is_array($result))
{
  echo "Done";
}
else
{
  echo "Failed"
}
?>
и ставь защиту как в посте выше ( экранируй все спецсимволы )
 
В общем-то всё должно работать и так, может ошибка не в коде, а в чём-то другом? Проверь соединение и наличие базы данных.
 
PHP:
<?php
$name=$title=$text='';
if(isset($_POST["name"]))
{
$name = mysql_real_escape_string($_POST["name"]);
}
if(isset($_POST["title"]))
{
$title = mysql_real_escape_string($_POST["title"]);
}
if(isset($_POST["text"]))
{
$text = mysql_real_escape_string($_POST["text"]);
}

$db = mysql_connect("localhost","alex","12345");
mysql_select_db("articles",$db);

$result = mysql_query("INSERT INTO all (name,title,text) VALUES ('{$name}','{$title}','{$text}')");
$error=mysql_error();
if(!empty($error)) {
    echo "Ошибка:".$error;
}
else
{
echo "Статья добавлена в базу";
}
?>
 
myweb, просто пишет что Ошибка в добавлении статьи. Проверил подключение к бд, оно есть и таблицу тоже находит, а добавить не может
 
myweb, просто пишет что Ошибка в добавлении статьи. Проверил подключение к бд, оно есть и таблицу тоже находит, а добавить не может

Событие где проиcходит? т.е. сам обработчик типа action="script.php" method="post"
Думаю здесь проблема
 
По ходу проблема с самой базой, скрипт нормально пашит в схожих условия, пошёл дальше ковыряться. Всем спасибо за помощь. Тема закрыта.
 
Ещё вот в чём может проблема быть (проверил только что у себя на локалхосте:(

В коде, который привёл Yaggi Jah:

mysql_real_escape_string следует вызывать после коннекта к БД, иначе выдаётся ошибка (проверял на PHP4, может в 5-й не так, но без коннекта даёт Warning и пустую строку).

Потому желательно вставить строчку коннекта:

PHP:
$db = mysql_connect("localhost","alex","12345");
mysql_select_db("articles",$db);

в начало кода...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху