За последние 24 часа нас посетили 17660 программистов и 1725 роботов. Сейчас ищут 950 программистов ...

Не получается получить данные из POST

Тема в разделе "PHP для новичков", создана пользователем СергейЧИТА, 11 ноя 2014.

  1. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    Здравствуйте!
    Я только начал изучать.

    вообщем использую обычную схему форму+php скрипт в html

    вообщем идёт вот такая форма:
    Код (Text):
    1.  
    2.  <form method="POST" action="index.php">
    3.                      <h3>Фамилия</h3>
    4.                       <input type="text" name="fam" value=""><br>
    5.                       <input type="button" name="btnpoisk1" onClick="alert" value="Войти">
    6.                  <input type="submit" name="btnadduser" value="Добавить">
    7. </form>
    сразу за ней идёт скрипт(отмечу, что в index.php этат скрипт начинается на 32 строчке):
    Код (Text):
    1.  
    2. <?php
    3.             if isset $_POST['fam'] {
    4.              $ffam=$_POST['fam']
    5.              }
    6. ?>
    не знаю почему, но в браузере отругивается именно на скрипт....в чем может быть причина?
    вот что пишет:
    я уже пробовал и по иному вместо $_POST['fam'] писать (POST['fam]), а также $_POST('fam'), (POST('fam')
    ничего не помогает((
    что не так в синтаксисе?
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Код (Text):
    1. <?php
    2.          if( isset $_POST['fam']){
    3.           echo $ffam=$_POST['fam']
    4.           }
    5. ?
    Добавлено спустя 2 минуты 8 секунд:
    посмотри конструкцию условного оператора http://php.net/manual/ru/control-structures.if
     
  3. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    попробовал...не помогло((

    вот целиком код чтобы путаницы не было:
    Код (Text):
    1.  
    2. .....
    3.         <form method="POST" action="index.php">
    4.                      <h3>Фамилия</h3>
    5.                       <input type="text" name="fam" value=""><br>
    6.                      <h3>Имя</h3>
    7.                       <input type="text" name="im" value=""><br>
    8.                      <h3>Отчество</h3>
    9.                       <input type="text" name="otch" value=""><br>
    10.                               <input type="button" name="btnpoisk1" onClick="alert" value="Войти">
    11.                  <input type="submit" name="btnadduser" value="Добавить">
    12.                 </form>
    13.             <?php
    14.             if( isset $_POST['fam']){
    15.                echo $ffam=$_POST['fam']
    16.                }
    17.             if( isset $_POST['im']){
    18.                echo $fim=$_POST['im']
    19.                }
    20.             if( isset $_POST['fam']){
    21.                echo $fotch=$_POST['otch']
    22.                }
    23.     ?>
    24.  
    25. ....
    также пишет
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    if( isset $_POST['fam']){ - иззет это функция которая возвращает истинное значение если установлена исследуемая переменная. что-то я не вижу тут функции.... и компилятор вам человеческими словами что говорит? неожиданный иззет при ожидаемой открывающейся круглой скобке. научитесь читать
     
  5. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Документацию по isset функции почитай по буквам php.net/manual/ru/function.isset.php
     
  6. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    Спасибо прочитал Ваши комменты и ссылку, эту ошибку и последующую у меня получилось исправить)
    вот в итоге как получилось
    Код (Text):
    1.  
    2. ...
    3. <form method="POST" action="index.php">
    4.                      <h3>Фамилия</h3>
    5.                       <input type="text" name="fam" value=""><br>
    6.                      <h3>Имя</h3>
    7.                       <input type="text" name="im" value=""><br>
    8.                      <h3>Отчество</h3>
    9.                       <input type="text" name="otch" value=""><br>
    10.                       <input type="button" name="btnpoisk1" onClick="alert" value="Войти">
    11.                       <input type="submit" name="btnadduser" value="Добавить">
    12.                 </form>
    13.             <?php
    14.             if ($_POST['fam']){
    15.                echo $ffam=$_POST['fam']; }
    16.             if ($_POST['im']){
    17.                echo $fim=$_POST['im'];
    18.                }
    19.             if ($_POST['fam']){
    20.                echo $fotch=$_POST['otch'];
    21.                };
    22. ?>
    23. ...
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    да, пропустил еще скобки isset() сам тоже не заметил)
     
  8. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Ещё почитай про XSS
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    зачем это абракадабра?
    в первом посте ты делаешь все правильно, единственная ошибка у тебя там, ты не поставил скобок ни для условного оператора (if()) ни для isset() получается, тебе остается просто добавить туда скобки, и будет твой код работать.
    Код (Text):
    1. <?php
    2.          if( isset ($_POST['fam'])){
    3.           echo $ffam=$_POST['fam'];
    4.           }
    5. ?
    Добавлено спустя 2 минуты 34 секунды:
    да он только начал осваивать азы, не далеко ли вы его послали?)
     
  10. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Так он уже добавление пользователей пишет
     
  11. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    ну я и такой тоже попробовал вариант
    Код (Text):
    1.  
    2. <?php
    3.              if( isset ($_POST['fam'])){
    4.                 $ffam=$_POST['fam'];
    5.                 }
    6.              if( isset ($_POST['fam'])){
    7.                 $ffam=$_POST['fam'];
    8.                 }
    9.              if( isset ($_POST['fam'])){
    10.                 $ffam=$_POST['fam'];
    11.                 }
    в итоге остановился на этом, но как вариант ещё и изучил предыдущий способ)
    спасибо за разъяснения-помогло!
    сейчас пытаюсь запихать эти переменные в БД mysql...первый раз пробую
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    зачем три раза?
     
  13. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    Упс...извиняюсь..вот как:
    Код (Text):
    1.  
    2.  
    3.                 <form method="POST" action="index.php">
    4.                      <h3>Фамилия</h3>
    5.                       <input type="text" name="fam" value=""><br>
    6.                      <h3>Имя</h3>
    7.                       <input type="text" name="im" value=""><br>
    8.                      <h3>Отчество</h3>
    9.                       <input type="text" name="otch" value=""><br>
    10.                       <input type="button" name="btnpoisk1" onClick="alert" value="Войти">
    11.                       <input type="submit" name="btnadduser" value="Добавить">
    12.                 </form>
    13.             <?php
    14.              if( isset ($_POST['fam'])){
    15.                 $ffam=$_POST['fam'];
    16.                 }
    17.              if( isset ($_POST['im'])){
    18.                 $fim=$_POST['im'];
    19.                 }
    20.              if( isset ($_POST['otch'])){
    21.                 $fotch=$_POST['otch'];
    22.                 }
     
  14. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Видимо дублирование, чтобы на все 300%
     
  15. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    Да нет)))просто ошибся при копировании-не с того варианта взял-промежуточного)
     
  16. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Для надёжной записи в базу используй транзакции, чтобы при неудачи записи, написать это в лог и сообщить полльзователю
     
  17. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    ну вот я пробую вот так...в итоге всё в браузере яко бы норм прошло...смотрю через mySQL-редактор встроенный на хостинге (сPanel называется) и вообщем в таблице пусто(((данные не занеслись((
    Код (Text):
    1.  
    2. <form method="POST" action="index.php">
    3.                      <h3>Фамилия</h3>
    4.                       <input type="text" name="fam" value=""><br>
    5.                      <h3>Имя</h3>
    6.                       <input type="text" name="im" value=""><br>
    7.                      <h3>Отчество</h3>
    8.                       <input type="text" name="otch" value=""><br>
    9.                       <input type="button" name="btnpoisk1" onClick="alert" value="Войти">
    10.                       <input type="submit" name="btnadduser" value="Добавить">
    11.                 </form>
    12.             <?php
    13.              if( isset ($_POST['fam'])){
    14.                 $ffam=$_POST['fam'];
    15.                 }
    16.              if( isset ($_POST['im'])){
    17.                 $fim=$_POST['im'];
    18.                 }
    19.              if( isset ($_POST['otch'])){
    20.                 $fotch=$_POST['otch'];
    21.                 }
    22.                
    23.             $db1=mysqli_connect("localhost","userogg","parol1","e18366_db");
    24.             $query1="insert into sotrud(Fam,Im,Otch,konttel,adres,poslrab,otziv,rozhdata,Emailsotr) value($ffam,$fim,$fotch,'911','Russia','IT','good','01.01.1986','email@email.com')";
    25.             mysqli_query($db1,$query1);
    26.             mysqli_close($db1);
    27.             ?>
    пока не могу понять почему...ищу причину
     
  18. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Там в phpmyadmin можно вставить запись в таблицу и он покажет какой запрос сформировал для вставки, его можно использовать
     
  19. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0
    Точно))))помогло)))теперь только id_sotr там поле выбрано у меня тип int , а мне нужен счётчик...не в курсе как там его назвали (тип поля такой)?не думаю, что чтобы сделать ключевое поле-счётчик нужно реализовывать на скрипте , а не сроедствами СУБД(что думаю более надёжнее)
     
  20. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Это называется auto_increment (есть такая галка напротив поля в PHPMyAdmin). Если есть поле с автоинкрементом, его не надо добавлять в запрос, оно само сгенерируется. А получить сгенерированное значение можно через mysqli_insert_id()
     
  21. СергейЧИТА

    СергейЧИТА Новичок

    С нами с:
    4 ноя 2014
    Сообщения:
    123
    Симпатии:
    0