За последние 24 часа нас посетили 8165 программистов и 555 роботов. Сейчас ищут 235 программистов ...

ошибка syntax error, unexpected T_VARIABLE

Тема в разделе "Вопросы от блондинок", создана пользователем kfurious, 15 авг 2008.

  1. kfurious

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

    С нами с:
    15 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте, я только начал постигать азы PHP и у меня возникла проблема. Мне нужно написать скрипт, который будет передавать данные формы в базу данных. Вот код:
    Код (PHP):
    1. <body>
    2. <p>Регистрация новых участников гильдии:</p>
    3. <p>Никнейм:</p>
    4. <form id="form1" name="form1" method="post" action="">
    5.   <label>
    6.   <input type="text" name="nickname" id="textfield" />
    7.   </label>
    8. </form>
    9. <p>Уровень:</p>
    10. <form id="form2" name="form2" method="post" action="">
    11.   <label>
    12.   <input type="text" name="level" id="textfield2"/>
    13.   </label>
    14. </form>
    15. <p>Класс:</p>
    16. <form id="form3" name="form3" method="post" action="">
    17.   <label>
    18.   <input type="text" name="class" id="textfield3" />
    19.   </label>
    20. </form>
    21. <p>Ранг в гильдии:</p>
    22. <form id="form4" name="form4" method="post" action="">
    23.   <label>
    24.   <input type="text" name="rang" id="textfield4" />
    25.   </label>
    26. </form>
    27. <form id="form5" name="form5" method="post" action="keypress">
    28.   <label>
    29.   <input type="submit" name="button" id="button" value="добавить"  />
    30.   </label>
    31. </form>
    32. <?php
    33. $dbname="sostav";
    34. $user="root";
    35. $password="";
    36. $dbhost="localhost"
    37. $link=mysql_connect($dbhost,$user,$password);//вот линия 44
    38. mysql_select_db($dbname,$link);
    39. function keypress() 
    40. {$query="insert into sostav(nickname,level,class,rang) values($_REQUEST['form1] $_REQUEST['form2'] $_REQUEST['form3'] $_REQUEST['form4'])";
    41. mysql_query($query,$link)
    42. }
    43. ?>
    44. </body>
    Но при обработке браузером кода появляется ошибка syntax error, unexpected T_VARIABLE on line 44(линию в коде отметил). Объясните пожалуйста причину этой ошибки, и укажите на какие-либо другие, если они есть.Заранее спасибо.
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    0
    Адрес:
    Минск
    $dbhost="localhost" забыл точку с запятой поставить.
     
  3. kfurious

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

    С нами с:
    15 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Спасибо, глупая ошибка. теперь вот такая проблема возникла Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\myproject\registration.php on line 47
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    0
    Адрес:
    Минск
    Код (PHP):
    1. <? $query="insert into sostav(nickname,level,class,rang) values({$_REQUEST['form1']}{$_REQUEST['form2']}{$_REQUEST['form3']}{$_REQUEST['form4']})"; 
    но оставлять так тоже не стоит. Так как можно получить sql-инъекцию. Поэтому надо ещё использовать mysql_real_escape_string, а перед составлением запроса проверить данные на соответстие тому, что должен был ввести пользователь.

    и после mysql_query($query,$link) тоже нужна ;
     
  5. kfurious

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

    С нами с:
    15 авг 2008
    Сообщения:
    5
    Симпатии:
    0
    Спасибо большое, разобрался.
     
  6. Opo6ac

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

    С нами с:
    12 дек 2008
    Сообщения:
    3
    Симпатии:
    0
    Вроде как тоже в тему, поможите?
    суть вопроса:
    нужно в нижеприведенной строчке слово bracer заменить значением переменной $slot
    Код (PHP):
    1. <div align=center><strong><? echo $target_user->bracer[0][name]?></strong></div><br>
    Обкладывание кавычками и точками не помогло, простая замена bracer на $slot - тоже... как правильно?

    Это ответ на вариант с точками и кавычками:
    Код (PHP):
    1. Parse error: syntax error, unexpected '.', expecting T_STRING or T_VARIABLE or '{' or '$' in /home/u28995/lebarge-cityru/www/voc/designes/default/item_show.php on line 11
    Это ответ на замену brace на $slot:
    Код (PHP):
    1. Fatal error: Cannot use string offset as an array in /home/u28995/lebarge-cityru/www/voc/designes/default/item_show.php on line 11
    $slot="bracer" - задается ссылкой из другого фрейма
    $targe_user->bracer[0][name] - тоже не пустой, т.е. самая первая приведенная строчка работает. Но нужна универсальность, чтобы она работала с передаваемым через $slot аргументом массива
     
  7. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Opo6ac
    Попробуй
    Код (PHP):
    1. <?php
    2. $vars=get_object_vars($target_user);
    3. echo $vars[$slot][0]["name"]; 
     
  8. Opo6ac

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

    С нами с:
    12 дек 2008
    Сообщения:
    3
    Симпатии:
    0
    Спасибо! помогло (С)))

    Если можно, объясните в двух словах суть конструкции?
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Код (PHP):
    1. $target_user->{$slot}[0]['name'] 
     
  10. Opo6ac

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

    С нами с:
    12 дек 2008
    Сообщения:
    3
    Симпатии:
    0
    Кхм... второй вариант видится более лаконичным и, чего уж скрывать - более правильным. Спасибо, Сергей! Оба варианта - рабочие
     
  11. lela

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

    С нами с:
    7 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Казахстан
    доброго времени суток!
    у меня та же ошибка:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/kobrakz/public_html/private.php on line 34

    лайн 34:
    $res_login = mysql_query("select login from users where login='$_SESSION['userid']'");

    выше $_SESSION['userid'] = $_POST['userid']; (данные получаю из другой формы)

    в чем может быть дело?
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    lela
    PHP запутался в кавычках
     
  13. lela

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

    С нами с:
    7 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Казахстан
    и как ему помочь? :)
     
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.450
    Симпатии:
    582
    Обнести
    фигурными скобками { } :)
     
  15. lela

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

    С нами с:
    7 фев 2009
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Казахстан
    [vs], помогло, спасибо!
     
  16. House M.D.

    House M.D. Активный пользователь

    С нами с:
    11 фев 2009
    Сообщения:
    1
    Симпатии:
    0
    Код (PHP):
    1.  <center>'Spisok file servers'</center>
    2.  
    3. <?php
    4.     include("createdb.php");
    5.     function echoservers (ip){
    6.     $sql=SELECT*FROM servers WHERE ip='$ip';
    7.     $result=sqlite_query($db,$sql)   
    8.     echo "<p> Nazvanie Servera: ", $name, "</p>"; // название сервера
    9.     echo "<p> IP-adress: ",  $ip, "</p>"; // ип сервера
    10.     echo "<p> Adminstrator: ",  $master, "</p>"; // ник хозяина сервера
    11.     echo "<p> Size: ", $size , " gb</p>"; // объем
    12.     /*кароче тут рейтинг типо будет*/
    13.     echo "<p> Opisanie: ",  $desc,  "</p>"; // описание
    14.     echo "<p> Read-Only ",  $write,  "</p>"; // чтение (да\нет)
    15.     echo "<p> Dostup ",  $share , "</p>"; //доступ
    16.     echo "<p> Full opisanie: ",  $fulldesc , "</p>"; // полное описание
    17.     }
    18. ?>
    19.  
    20.  
    21. [url="edit.php"]Edit info[/url]
    :oops: я полный нуб но очень нужно разобраться почему этот код выдает ошибку:
    Parse error: syntax error, unexpected ')', expecting '&' or T_VARIABLE in /pub/web/givi/fileserv.php on line 5
     
  17. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    А кто за вас будет строки в кавычки заключать???
    Код (PHP):
    1. $sql="SELECT*FROM servers WHERE ip='$ip'";
    2. $result=sqlite_query($db,$sql); 
    Что такое ip??? Если переменная, то $ip
     
  18. RAIDERS

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

    С нами с:
    4 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Код (PHP):
    1. </table>
    2. <input name="ok" type="hidden" value="ok">
    3. <input name="start" type="hidden" value="ok">
    4.  
    5. <br /> <input type="submit" value="                    »" class=b onclick="if(ss){if(document.getElementById('ig').checked==false){alert('                                     ,                                             ');return false;}}">
    6. </form>
    7. HTML;  die;
    8.   }
    9. if(!isset($_POST['start'])) st();            //линия 245!!!
    10.  
    11.         IF (isset($_POST['autobackup']))
    12.         {
    13.  
    14.          $get_mixdate = date ("YmdHis");
    15.  
    16.          $dir_bkp = 'backupfiles_'.$get_mixdate;
    17.          $bacupfiles = array(
    18.          'index.php',
    19.          '.htaccess',
    20.          'engine/engine.php',
    21.          );
    22.  
    23.          FOR ($x = 0; $x < count($bacupfiles); $x++)
    24.          { 
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/a1680670/public_html/dle_photo.php on line 245

    Вот в чем может быть дело?
     
  19. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    RAIDERS
    http://phpfaq.ru/debug

    Лес, Шишка, Дорога,.

    Стоит пробел в закрывающем хередоке еще вроде.
     
  20. RAIDERS

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

    С нами с:
    4 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Kreker Где именно прост я плохо в пхп разбираюсь((
     
  21. Kemel

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

    С нами с:
    5 апр 2009
    Сообщения:
    1
    Симпатии:
    0
    <?
    final class protection {
    static public $_get;
    static public $_post;

    static public post_decode(){
    foreach($_POST as $key=>$value){
    $key=htmlspecialchars($key);
    if(is_array($value)){
    $value=$value;
    foreach($value as $sub_key=>$sub_value){
    $sub_key=htmlspecialchars($sub_key);
    if(is_string($sub_value)){
    $sub_value=htmlspecialchars($sub_value);
    }elseif(is_int($sub_value)){
    $sub_value=(int)$sub_value;
    }
    self::$_post[$key][$sub_key]=$sub_value;
    }
    }elseif(is_string($value)){
    $value=htmlspecialchars($value);
    self::$_post[$key]=$value;
    }elseif(is_int($value)){
    $value=(int)$value;
    self::$_post[$key]=$value;
    }
    }
    $_POST=array();
    }
    static public get_decode(){
    foreach($_GET as $key=>$value){
    $key=htmlspecialchars($key);
    if(is_string($value)){
    $value=htmlspecialchars($value);
    self::$_get[$key]=$value;
    }elseif(is_int($value)){
    $value=(int)$value;
    self::$_get[$key]=$value;
    }
    }
    $_GET=array();
    }
    }
    ?>

    Че за ошибка Parse error: syntax error, unexpected T_CLASS, expecting T_STRING in C:\SERVER\home\mirv.ru\defen.php on line 2
     
  22. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    0
    Адрес:
    Минск
    © www.translate.ru
     
  23. OLEG55

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

    С нами с:
    9 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    U menja problema
    Parse error: syntax error, unexpected T_VARIABLE in U:\home\test1.ru\www\result_mysqlphp.php on line 78

    Код (PHP):
    1. <html>
    2.  
    3. <head>
    4.   <title></title>
    5. </head>
    6.  
    7. <body>
    8.  
    9. <?php
    10. if (isset($_POST['company']))
    11. {
    12. $company = $_POST['company'];
    13. }
    14.  
    15. if (isset($_POST['profile']))
    16. {
    17. $profile = $_POST['profile'];
    18. }
    19.  
    20. if (isset($_POST['profile2']))
    21. {
    22. $profile2 = $_POST['profile2'];
    23. }
    24.  
    25. if (isset($_POST['name1']))
    26. {
    27. $name1 = $_POST['name1'];
    28. }
    29.  
    30. if (isset($_POST['name2']))
    31. {
    32. $name2 = $_POST['name2'];
    33. }
    34.  
    35. if (isset($_POST['job']))
    36. {
    37. $job = $_POST['job'];
    38. }
    39.  
    40. if (isset($_POST['job2']))
    41. {
    42. $job2 = $_POST['job2'];
    43. }
    44.  
    45. if (isset($_POST['address']))
    46. {
    47. $address = $_POST['address'];
    48. }
    49.  
    50. if (isset($_POST['address2']))
    51. {
    52. $address2 = $_POST['address2'];
    53. }
    54.  
    55. if (isset($_POST['phone']))
    56. {
    57. $phone = $_POST['phone'];
    58. }
    59.  
    60. if (isset($_POST['phone2']))
    61. {
    62. $phone2 = $_POST['phone2'];
    63. }
    64.  
    65. if (isset($_POST['email']))
    66. {
    67. $email = $_POST['email'];
    68. }
    69.  
    70. if (isset($_POST['www']))
    71. {
    72. $www = $_POST['www'];
    73. }
    74.  
    75. include "db1.php"
    76.  
    77.  
    78. $result2 = mysql_query ("INSERT INTO vizitka_client (company, profile,
    79. profile2, name1,name2,job,job2,address,address2,phone,phone2,email,www)
    80. VALUES ('$company','$profile','$profile2','$name1','$name2','$job',
    81. '$job2','$address','$address2','$phone','$phone2','$email','www')");
    82.  
    83. if ($result2 == 'true')
    84. {
    85. echo "Infa dobavlena uspewa";
    86. }
    87. else
    88. {
    89. echo "infa ne dobavlena";
    90. }
    91.  
    92. ?>
    93.  
    94. </body>
    95.  
    96. </html>
    Uze zaputalsa ja noob v etom dele no o4en nuzna....
     
  24. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    строка 75

    Код (PHP):
    1. include "db1.php" 
    закрывать операторы не забываем, да?

    с такой ошибкой смотри предыдущую строку всегда.

    P.S.

    Код (PHP):
    1. #  $result2 = mysql_query ("INSERT INTO vizitka_client (company, profile,
    2. #  profile2, name1,name2,job,job2,address,address2,phone,phone2,email,www)
    3. #  VALUES ('$company','$profile','$profile2','$name1','$name2','$job',
    4. #  '$job2','$address','$address2','$phone','$phone2','$email','www')"); 
    '$email','www' - могу предположить, что пропущено $ у переменной www.

    P.P.S.
    И почитай статьи на тему защиты, ломануть 5 секунд этот скрипт.
     
  25. OLEG55

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

    С нами с:
    9 апр 2009
    Сообщения:
    5
    Симпатии:
    0
    kas1e
    sps razobralsa da ti bil prav ja tam propustil $ v 86 storke www.

    dlaee mne nuzno bilo zdelat 4tob skript pozicionirovanija dobavalsa v bazu teper kod vigledit tak
    Код (PHP):
    1. include "db1.php";
    2.  
    3.  
    4. $result2 = mysql_query ("INSERT INTO vizitka_client (company, profile,
    5. profile2, name1,name2,job,job2,address,address2,phone,phone2,email,www,script_pos)
    6. VALUES ('$company','$profile','$profile2','$name1','$name2','$job',
    7. '$job2','$address','$address2','$phone','$phone2','$email','$www','$script_pos_k')");
    8.  
    9. $result = mysql_query("SELECT script_pos FROM vizitka_def", $db);
    10. $myrow = mysql_fetch_array($result);
    11.  
    12. echo $myrow ["script_pos"];
    13.  
    14.  
    15. $result = $script_pos_k ;
    16.  
    17. echo $myrow ["script_pos_k"];
    18.  
    19. if ($result2 == 'true')
    20.  
    21. {
    22. echo "Infa dobavlena uspew";
    23. }
    24.  
    25.  
    26. else
    27. {
    28. echo "infa ne dobavlena";
    29.  
    30. if ($script_pos_k == 'true')
    31.  
    32. {
    33. echo "<br>Infa pozicionirovanija dobavlena uspew";
    34. }
    35.  
    36. else
    37. {
    38. echo "<br>Infa pozicionirovanija ne dobavlena";
    39. }
    40.  
    41. ?>
    42.  
    43. }
    vso dobovlaet vse danie a dobovlat sam skript pozocionirovanija ne ho4ew... pri4om nuzno sdelat tak 4tob on izmenonij dobovlal pomagite sdelat plz...