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

Тема в разделе "PHP", создана пользователем eXtaz, 18 июл 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. eXtaz

    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 
    "Ошибка";
    }
    ?>
     
  2. myweb

    myweb Среда обитания WEB

    Регистр.:
    10 сен 2007
    Сообщения:
    539
    Симпатии:
    246
    а точней што именно не работает ???

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

    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;  

     
  3. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    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"
    }
    ?>
    и ставь защиту как в посте выше ( экранируй все спецсимволы )
     
  4. Yozik

    Yozik

    Регистр.:
    5 дек 2007
    Сообщения:
    239
    Симпатии:
    65
    В общем-то всё должно работать и так, может ошибка не в коде, а в чём-то другом? Проверь соединение и наличие базы данных.
     
  5. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    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 
    "Статья добавлена в базу";
    }
    ?> 
     
  6. eXtaz

    eXtaz Создатель

    Регистр.:
    23 апр 2008
    Сообщения:
    31
    Симпатии:
    6
    myweb, просто пишет что Ошибка в добавлении статьи. Проверил подключение к бд, оно есть и таблицу тоже находит, а добавить не может
     
  7. Blackinman

    Blackinman Создатель

    Регистр.:
    3 июл 2007
    Сообщения:
    36
    Симпатии:
    1
    Событие где проиcходит? т.е. сам обработчик типа action="script.php" method="post"
    Думаю здесь проблема
     
  8. eXtaz

    eXtaz Создатель

    Регистр.:
    23 апр 2008
    Сообщения:
    31
    Симпатии:
    6
    По ходу проблема с самой базой, скрипт нормально пашит в схожих условия, пошёл дальше ковыряться. Всем спасибо за помощь. Тема закрыта.
     
  9. System777

    System777 Создатель

    Регистр.:
    20 апр 2008
    Сообщения:
    30
    Симпатии:
    13
    Ещё вот в чём может проблема быть (проверил только что у себя на локалхосте:(

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

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

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

    PHP:
    $db mysql_connect("localhost","alex","12345");
    mysql_select_db("articles",$db);
    в начало кода...
     
Статус темы:
Закрыта.