За последние 24 часа нас посетили 102535 программистов и 5649 роботов. Сейчас ищут 2816 программистов ...

Почему 500?

Тема в разделе "PHP для новичков", создана пользователем VampiR_WAR, 17 июл 2012.

  1. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Прям досада какая то. 500 ошибка. =(
    Код (Text):
    1. <?php
    2. error_reporting(E_ALL);
    3. ini_set('display_errors', 1);
    4. ini_set('display_startup_errors', 1);
    5. //Отключим вывод системных ошибок
    6. error_reporting(7);
    7. //Начинаем обработку формы регистрации
    8. //Проверяем не пусты ли наши поля
    9.  
    10. if (!$_POST['name'])
    11. {
    12.     echo "Вы не заполнили форму имя!";
    13. }
    14. else
    15. {
    16.         $name =($_POST['name']);
    17. }
    18.  echo "<br>";
    19.  
    20.  
    21.  
    22. if      (!$_POST['email'])
    23. {
    24.         echo "Вы не заполнели форму E-mail";
    25.         //Предлагаем пользователю заполнить имя
    26.      
    27.        
    28. else
    29. {
    30.  $email=($_POST['email']);
    31. }
    32. echo "<br>";
    33.  
    34.  
    35.  
    36.  
    37.  
    38.  
    39. if($_POST["email"]&& !ereg("^[^@]+@([a-z\-]+\.)+[a-z]{2,4}$",$_POST["email"]))
    40. {
    41.         echo "Введите корректный формат электронной почты";
    42.         //Предлагаем пользователю заполнить имя
    43.        
    44. }
    45. echo "<br>";
    46.  
    47.  
    48.  
    49.  
    50.  
    51.  
    52. if(!$_POST['pass'])
    53. {
    54.     echo "Вы не заполнили форму Пароль";
    55. }
    56. else
    57. {
    58.         $pass =($_POST['pass']);
    59.  
    60.  echo "<br>";
    61.  
    62.  
    63.  
    64.  
    65.  
    66.  if(!$_POST['age'])
    67. {
    68.     echo "Вы не заполнили форму возраст";
    69. }
    70. else
    71. {
    72.         $age =($_POST['age']);
    73.  
    74.  echo "<br>";
    75.  
    76.  
    77.  
    78.  
    79.  
    80.  if(!$_POST['sex'])
    81. {
    82.     echo "Вы не заполнили форму пол";
    83. }
    84. else
    85. {
    86.         $sex =($_POST['sex']);
    87.  
    88.  echo "<br>";
    89.  
    90.  
    91.  
    92.  
    93.  
    94.  
    95.  if(!$_POST['vopros1'])
    96. {
    97.     echo "Вы не заполнили форму vopros1";
    98. }
    99. else
    100. {
    101.         $vopros1 =($_POST['vopros1']);
    102.  
    103.  echo "<br>";
    104.  
    105.  
    106.  
    107.  if(!$_POST['vopros2'])
    108. {
    109.     echo "Вы не заполнили форму vopros2";
    110. }
    111. else
    112. {
    113.         $vopros2 =($_POST['vopros2']);
    114.  
    115.  echo "<br>";
    116.  
    117.  
    118.  
    119.  
    120.  if(!$_POST['vopros3'])
    121. {
    122.     echo "Вы не заполнили форму vopros3";
    123. }
    124. else
    125. {
    126.         $vopros3 =($_POST['vopros3']);
    127.  
    128.  echo "<br>";
    129.  
    130.  
    131.  
    132.  
    133.  
    134.  if(!$_POST['vopros4'])
    135. {
    136.     echo "Вы не заполнили форму vopros4";
    137. }
    138. else
    139. {
    140.         $vopros4 =($_POST['vopros4']);
    141.  
    142.  echo "<br>";
    143.  
    144.  
    145.  
    146.  if(!$_POST['vopros5'])
    147. {
    148.     echo "Вы не заполнили форму vopros5";
    149. }
    150. else
    151. {
    152.         $vopros5 =($_POST['vopros5']);
    153.  
    154.  echo "<br>";
    155.  
    156.  
    157.  
    158.  
    159.  
    160.  
    161.  
    162.  
    163.  
    164. //Подключаем конфигурационный файл
    165. include ('config.php');
    166.  
    167. //Если все вышеописанные проверки прошли успешно, добавляем пользователя в нашу БД
    168. $result = mysql_query("INSERT INTO user(name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    169.                        VALUES ('$name','$email','$pass','$age','$sex','$vopros1','$vopros2','$vopros3','$vopros4','$vopros5')");
    170. //Проверяем заполнились ли введенные данные в БД
    171. if ($result == 'true')
    172. {
    173.  
    174. //Устанавливаем кодировку СР-1251 по умолчанию
    175. mysql_query("SET NAMES cp1251");
    176. //Обрабатуем корректность данных
    177. $qresult=mysql_query("INSERT INTO user (name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    178.                       VALUES
    179.                       ('".mysql_real_escape_string($name)."',
    180.                        '".mysql_real_escape_string($email)."',
    181.                        '".mysql_real_escape_string($pass)."'
    182.                        '".mysql_real_escape_string($age)."'
    183.                        '".mysql_real_escape_string($sex)."'
    184.                         '".mysql_real_escape_string($vopros1)."'
    185.                          '".mysql_real_escape_string($vopros2)."'
    186.                         '".mysql_real_escape_string($vopros3)."'
    187.                          '".mysql_real_escape_string($vopros4)."'
    188.                           '".mysql_real_escape_string($vopros5)."' )");
    189.      
    190.      
    191.      
    192.      
    193.      
    194.      //Выводим сообщение после регистрации
    195.  
    196.         echo "Спасибо регистрация прошла успешно!";
    197. }
    198. else
    199. {
    200.         echo "<b><font color=red>Извините произошла ошибка при добавлении БД!</b>";
    201. }
    202. }
    203. ?>
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
  3. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Скрипт вроде не сложный, а почему так - непонятно.
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    что 500-то? =) телепатов нету, нипанятна ничерта!
     
  5. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Ошибка HTTP 500 (Internal Server Error): Непредвиденная ситуация была обнаружена в то время как сервер пытался выполнить запрос.

    Я знаю, ты телепат, просто скромничаешь))
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    я понял что ты про это, но я ж могу ошибаться. Начну давать советы об одном, а у тебя другое - ацтой.

    Это может случаться в разных случаях. Один из них - долго сервак ждал ответа от пхп скрипта, не дождался и забил. Скрипт выполняется долго или быстро?
     
  7. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Менее секунды.

    Добавлено спустя 1 минуту 2 секунды:
    Может допустил ошибку с
    Код (PHP):
    1. $result = mysql_query("INSERT INTO user(name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    2.                        VALUES ('$name','$email','$pass','$age','$sex','$vopros1','$vopros2','$vopros3','$vopros4','$vopros5')");
    3. //Проверяем заполнились ли введенные данные в БД
    4. if ($result == 'true')
    5. {
    6.  
    7. //Устанавливаем кодировку СР-1251 по умолчанию
    8. mysql_query("SET NAMES cp1251");
    9. //Обрабатуем корректность данных
    10. $qresult=mysql_query("INSERT INTO user (name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    11.                       VALUES
    12.                       ('".mysql_real_escape_string($name)."',
    13.                        '".mysql_real_escape_string($email)."',
    14.                        '".mysql_real_escape_string($pass)."'
    15.                        '".mysql_real_escape_string($age)."'
    16.                        '".mysql_real_escape_string($sex)."'
    17.                         '".mysql_real_escape_string($vopros1)."'
    18.                          '".mysql_real_escape_string($vopros2)."'
    19.                         '".mysql_real_escape_string($vopros3)."'
    20.                          '".mysql_real_escape_string($vopros4)."'
    21.                           '".mysql_real_escape_string($vopros5)."' )"); 
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    эм. а начерта ты два раза одно и то же вставляешь?

    По ошибке - хз =) Используй exit(); Ставь его на вторую строку, потом на третью и так пока не дойдешь до ошибки 500. Тогда ясно будет что именно его порождает.
     
  9. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    после <?php вставил - 500 ошибка. =(
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    :D бяда, чо. хз тогда. Другие скрипты пашут? BOM точно нету?
     
  11. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Другие пашут.
    Твой смайлик подсказывает мне что знаешь в чем бяда))
    BOM нет.
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    нет, не знаю, но если сразу после <?php то это реальная мистика. А что до <?php у тебя?
     
  13. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Ничего нет до <?php . Сейчас на первой строке.

    Добавлено спустя 6 минут 9 секунд:
    Если код такой
    Код (Text):
    1. <?php
    2. error_reporting(E_ALL);
    3. ini_set('display_errors', 1);
    4. ini_set('display_startup_errors', 1);
    5.  
    6. if (!$_POST['name'])
    7. {
    8.     echo "Вы не заполнили форму имя!";
    9. }
    10. else
    11. {
    12.         $name =($_POST['name']);
    13. }
    14.  echo "<br>";
    15.  
    16. ?>
    Тогда так
    Notice: Undefined index: name in /var/www/register.php on line 6 Вы не заполнили форму имя!
    Если добавить например так :
    Код (Text):
    1.  if(!$_POST['pass'])
    2. {
    3.     echo "Вы не заполнили форму Пароль";
    4. }
    5. else
    6. {
    7.         $pass =($_POST['pass']);
    8.  
    9.  echo "<br>";  

    Тогда 500
     
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    во втором случае скобка не закрыта. ты в лог пхп смотришь? там может быть всякое, типа "не могу спарсить".
     
  15. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Хорошая идея, осталось только их найти

    Добавлено спустя 13 минут 8 секунд:
    эммм... А не подскажите как файл назывется? error_log?
    не могу найти. ubuntu 12.04 lamp

    Добавлено спустя 10 минут 11 секунд:
    [Tue Jul 17 14:26:55 2012] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected T_ELSE in /var/www/register.php on line 23
    =))))
     
  16. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ты найди php.ini или как он там называется в убунте. он скорее всего в каойниить /etc лежит.

    там будет указан путь к логу ошибок. лог ошибок хорошо смотреть командой tail с ключем на follow.
     
  17. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Спасибо добрый человек =)) Ошибка была в последней скобке "}", в логах все хорошо описывается) Пойду дальше ковыряться.

    Добавлено спустя 8 минут 20 секунд:
    Кстати, я где чего вставил 2 раза?
     
  18. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    Код (PHP):
    1. $result = mysql_query("INSERT INTO user(name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    2.                        VALUES ('$name','$email','$pass','$age','$sex','$vopros1','$vopros2','$vopros3','$vopros4','$vopros5')");
    3. //Проверяем заполнились ли введенные данные в БД
    4. if ($result == 'true')
    5. {
    6.  
    7. //Устанавливаем кодировку СР-1251 по умолчанию
    8. mysql_query("SET NAMES cp1251");
    9. //Обрабатуем корректность данных
    10. $qresult=mysql_query("INSERT INTO user (name,email,pass,age,sex,vopros1,vopros2,vopros3,vopros4,vopros5)
    11.                       VALUES
    12.                       ('".mysql_real_escape_string($name)."',
    13.                        '".mysql_real_escape_string($email)."',
    14.                        '".mysql_real_escape_string($pass)."'
    15.                        '".mysql_real_escape_string($age)."'
    16.                        '".mysql_real_escape_string($sex)."'
    17.                         '".mysql_real_escape_string($vopros1)."'
    18.                          '".mysql_real_escape_string($vopros2)."'
    19.                         '".mysql_real_escape_string($vopros3)."'
    20.                          '".mysql_real_escape_string($vopros4)."'
    21.                           '".mysql_real_escape_string($vopros5)."' )");  
    Добавлено спустя 36 секунд:
    один и тот же запрос. два раза.
     
  19. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Сам не пойму... Всеравно если верхний закоментировать, то в базу не пишет =( Почему так может быть?
    Код (PHP):
    1. CREATE TABLE IF NOT EXISTS `USERS` (
    2.   `id` int(10) NOT NULL AUTO_INCREMENT,
    3.   `name` varchar(40) CHARACTER SET cp1251 NOT NULL,
    4.   `email` varchar(40) CHARACTER SET cp1251 NOT NULL,
    5.   `pass` varchar(40) CHARACTER SET cp1251 NOT NULL,
    6.   `age` varchar(40) CHARACTER SET cp1251 NOT NULL,
    7.   `sex` varchar(40) CHARACTER SET cp1251 NOT NULL,
    8.   `vopros1` varchar(40) CHARACTER SET cp1251 NOT NULL,
    9.   `vopros2` varchar(40) CHARACTER SET cp1251 NOT NULL,
    10.   `vopros3` varchar(40) CHARACTER SET cp1251 NOT NULL,
    11.   `vopros4` varchar(40) CHARACTER SET cp1251 NOT NULL,
    12.   `vopros5` varchar(40) CHARACTER SET cp1251 NOT NULL,
    13.   PRIMARY KEY (`id`)
    14. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 
     
  20. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    чел, надо обрабатывать ошибки, надо смотреть что за запрос получился реально и т.п.
     
  21. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    OK! спасибо.=) ушел ковыряться.
     
  22. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Проверил соединение с бд, все ок.
    Вывел ошибку
    Код (PHP):
    1. or die(mysql_errno().". ".mysql_error()); 
    получил что не находит таблицу users.
    В mysql записана таблица как USERS... =)
     
  23. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    возьми бесплатный хостинг или easyphp =)
     
  24. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
  25. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ну чтобы всё сразу было настроено как надо =)