За последние 24 часа нас посетили 53892 программиста и 1714 роботов. Сейчас ищет 771 программист ...

Помогите найти ошибку

Тема в разделе "PHP для новичков", создана пользователем lean, 30 дек 2007.

  1. lean

    lean Активный пользователь

    С нами с:
    29 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Есть некая форма которая передает данные скрипту на обработку.
    Которые в следствии действия скрипта записываются в текстовый документ на сервере.
    Так вот на локальной машине на денвере все это дело прекрасно работает. А вот на сервере скрипт видимо не получает данных от формы. Где косяк помогите. Не могу понять.

    Форма

    <form name=add action=add.php method=post>
    <table align="center">
    <tr>
    <td>
    <b>Название ссылки:</td>
    <td><b>
    <input type=text size=20 name=name maxlenght=50></td><td><b>(max 50)
    </td></tr>
    <tr><td>
    <b>URL ссылки:
    </td><td>
    <div align="center">
    <input type=text size=20 name=url value="http://">
    </div></td><td>
    </td></tr><tr><td><b>
    Описание ссылки или готовый код:
    </td><td>
    <b>
    <div align="center">
    <textarea name=ds cols=17 rows=5 maxlenght=200></textarea>
    </div></td><td><b>(max 200)
    </td></tr>
    <tr><td>
    </td>
    </tr>
    <tr>
    <td colspan=3 align=center>
    <div align="center">
    <input type=submit value="Добавить">
    <input type=reset value="Отменить">
    </div></td></tr>
    </table>
    </form>

    Скрипт

    <?php
    $file='links_bd.htm';
    $ds=str_replace('',' ',$ds);
    {
    $fp=fopen('links_bd.htm', 'a+');
    fputs($fp, "<a href=$url>$name</a><br>$ds<hr>
    ");
    fclose($fp);
    echo "<h1 align=center id=h1>Ссылка успешно добавлена</h1>";
    echo "<table align=center>
    <tr><td>Ссылка: </td><td><a href=$url>$url</a></td></tr>
    <tr><td>Название: </td><td>$name</td></tr>
    <tr><td>Текст или готовый код: </td><td>$ds</td></tr>
    </table>";
    }
    ?>
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Учимся использовать массив $_POST ...
     
  3. Сотомайор

    Сотомайор Активный пользователь

    С нами с:
    27 дек 2007
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Бобруйск )
    Всё дело в разных настройках register_globals...
    Или включаем их на сервере, или
    :)
     
  4. lean

    lean Активный пользователь

    С нами с:
    29 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Если регистр глобал выключен то что я должен где написать?
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    выключен? ну тогда
     
  6. lean

    lean Активный пользователь

    С нами с:
    29 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Если бы я знал ответ, я бы не спрашивал. А от такого ответа мне легче не стало. Спасибо конечно за цитирования, практически не понятной для меня фразы. Есть кто более внятно может объяснит нужный набор действий?
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    при включенном РГ из формы или адреса (и не только) переменные регистрируются в скрипте
    при выключенном нужно ручками получать нужную переменную из нужного массива
    в форме есть поле vobla
    при on - в сценарии можно сразу использовать $vobla
    при выключеном - получить ключ vobla из нужного массива: GET['vobla'] - при передаче через URL, POST['vobla'] при отправке формы и тд

    а вообще вы немного стормозили, по всей видимости уже отмечаете
    увидив цитату нужно было сделать:
    1. написать свою форму и указать куда послать данные
    2. завидив забавное неизвестное 99% посетителей сего странного форума слово массив глянуть что с ним можно делать
    3. написать простую конструкцию
    PHP:
    1. <pre><?php print_r($_POST); ?>
    в файле на который приходят данные
    4. отправить данные из формы и увидить как красиво они пришли
    5. сделать какие-нибудь выводы
    удачи в Новом Году!
     
  8. lean

    lean Активный пользователь

    С нами с:
    29 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Прошу прощение за навязчивость. Но то что для человека понимающего совершено просто то для меня (начинающего) совершенно не понятно. Применительно к верхнему скрипту куда я должен это вписать?
     
  9. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    PHP:
    1.  
    2. <?php
    3. // Учимся работать с формой
    4. ////////////////////////////////////
    5. $ok = $_POST['ok'];
    6. $name = $_POST['my_name'];
    7. $url = $_POST['my_url'];
    8.  
    9. if (isset ($ok) && !empty ($name) && !empty ($url)){
    10. $f = fopen ("myfile.txt", "a+");
    11. fputs ($f, "<a href='http://$url'>$url</a> ($name)<br />\n");
    12. fclose ($f);
    13. echo "Your data have been added!";
    14. }
    15.  
    16. // Начало формы
    17. echo "<form name='myfirstform' method='post'>
    18. <table width='100%' cellpadding='3' cellspacing='3'>
    19. <tr><td>Enter your name: </td><td><input type='text' name='my_name' value=''></td></tr>
    20. <tr><td>Enter your URL: </td><td><input type='text' name='my_url' value=''></td></tr>
    21. <tr><td colspan='2'><input type='submit' name='ok' value='Submit Query'></td></tr>
    22. </table>
    23. </form>
    24. ";
    25. ?>
    26.  
    Я так понимаю, вопросов больше возникнуть не должно.
    Если возникнут - php.ru/manual
     
  10. Сотомайор

    Сотомайор Активный пользователь

    С нами с:
    27 дек 2007
    Сообщения:
    22
    Симпатии:
    0
    Адрес:
    Бобруйск )
    Ох, ну если уже пошла гулянка, то вот:
    PHP:
    1. <?php
    2. $file='links_bd.htm';
    3. $ds=str_replace('',' ',$_POST['ds']);
    4. {
    5. $fp=fopen('links_bd.htm', 'a+');
    6. fputs($fp, "<a href=".$_POST['url'].">".$_POST['name']."</a><br>".$_POST['ds']."<hr>
    7. ");
    8. fclose($fp);
    9. echo "<h1 align=center id=h1>Ссылка успешно добавлена</h1>";
    10. echo "<table align=center>
    11. <tr><td>Ссылка: </td><td><a href=".$_POST['url'].">".$_POST['url']."</a></td></tr>
    12. <tr><td>Название: </td><td>".$_POST['name']."</td></tr>
    13. <tr><td>Текст или готовый код: </td><td>".$_POST['ds']."</td></tr>
    14. </table>";
    15. }
    16. ?>
    впишите этот код вместо вашего и читайте мануал в Новом Году :)
     
  11. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Сотомайор тогда уж $_POST заменить на $_GET и получать данные из УРЛа. Т.к ваш скрипт данные ни откуда не получает, во всяком случае, формы я не вижу =)))
     
  12. lean

    lean Активный пользователь

    С нами с:
    29 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Спасибо большое. Все получилось. С наступающим новым годом! Всего самого хорошего. А ведь я тоже написал примерно так но не поставил кавычки и в итоге чистый экран. Мелочь, а нужно знать.
    У меня не работало.

    <?php
    $file='links_bd.htm';
    $ds=str_replace('',' ',$_POST['ds']);
    {
    $fp=fopen('links_bd.htm', 'a+');
    fputs($fp, "<a href=$_POST['url']>$_POST['name']</a><br>$_POST['ds']<hr>
    ");
    fclose($fp);
    echo "<h1 align=center id=h1>Ссылка успешно добавлена</h1>";
    echo "<table align=center>
    <tr><td>Ссылка: </td><td><a href=$_POST['url']>$_POST['url']</a></td></tr>
    <tr><td>Название: </td><td>$_POST['name']</td></tr>
    <tr><td>Текст или готовый код: </td><td>$_POST['ds']</td></tr>
    </table>";
    }
    ?>
    Видимо точки обязательно. Еще раз спасибо. Удачи!!!