За последние 24 часа нас посетили 20613 программистов и 1108 роботов. Сейчас ищут 413 программистов ...

ошибка 500... из-за чего?

Тема в разделе "PHP и базы данных", создана пользователем Pomaska, 1 сен 2010.

  1. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    Всем привет... сделал скрипт регистрации, после перехода на страницу _reg3.php с _reg2.php вылезает ошибка 500(((

    вот код _reg3.php
    PHP:
    1. <?php
    2. $con = mysql_connect("***","counter-strike","***");
    3. if (!$con)
    4.   {
    5.   die('Could not connect: ' . mysql_error());
    6.   }
    7. mysql_select_db("counter-strike", $con);
    8. $sql="INSERT INTO users (id, login, pass, e-mail, pol, vozrast, activ)
    9. VALUES
    10. (NULL,'$_GET[login]','$_GET[pass]','$_GET[e-mail]','$_GET[pol]','$_GET[vozrast]','0')";
    11. if (!mysql_query($sql,$con))
    12.   {
    13.   die('Error: ' . mysql_error());
    14.   }
    15. echo "Вы успешно зарегистрировались!";
    16. $result = mysql_query("SELECT * FROM `users` WHERE login='$_GET[login]' and pass='$_GET[pass]'");
    17.  
    18. while($row = mysql_fetch_array($result))
    19. {$row[id]=$id;}
    20. $theme = 'Регистрация';
    21. $text = ("Здравствуйте, ".$_GET[login].",
    22. Вы зарегестрировались на нашем ресурсе: ".$host."
    23. Ваш id ".$id."
    24. Ваш ник ".$_GET[login]."
    25. Ваш пароль ".$_GET[pass]."
    26. Ваш пол ".$_GET[pol]."
    27. Ваш возраст ".$_GET[vozrast]."
    28. ==================================================================
    29. Ваша ссылка на активацию аккаунта
    30. ".$host."login/activate.php?id=".$id."&login=".$_GET[login]."
    31. ==================================================================
    32. Спасибо за регистрацию,
    33. С ув. Администрация CS-GTP
    34. Наш e-mail [email=Pomaska@mail.ru]Pomaska@mail.ru[/email]
    35. ");
    36. $mail = $_GET[e-mail];
    37. if(mail($mail,$theme,$text)){echo ("На ".$mail." отправлено письмо с дальнейшими инструкциями!");}
    38. else {DIE('письмо на емейл не отправилось... напишите ка админу на [email=Pomaska@mail.ru]Pomaska@mail.ru[/email]');}
    39. ?>
    а вот код _reg2.php:
    PHP:
    1. if($_GET['reg']== '0') { echo ("Ну значит иди на другой портал, и там соглашайся с их правилами.. <br>
    2. МЫ ОБИДЕЛИСЬ!!! XD");}
    3. else { echo("
    4.  
    5. <form action='_reg3.php' method='GET'>
    6. <table><tr><td>Ваш логин</td><td>
    7. <input type='text' name='login'></td></tr>
    8. <tr><td>Ваш пароль</td><td>
    9. <input type='text' name='pass'></td></tr>
    10. <tr><td>Ваш e-mail</td><td>
    11. <input type='text' name='e-mail'></td></tr>
    12. <tr><td>Ваш пол</td><td>
    13. <select name='pol'><option value='Гибрид'>Гибрид</option><option value='Мужской'>Мужской</option><option value='Женский'>Женский</option></select></td></tr>
    14. <tr><td>Ваш возраст</td><td>
    15. <input type='text' name='vozrast'></td></tr>
    16. <tr><td>
    17. <input type='submit' value='Продолжить'></form></td><td></td></tr></table>
    18.             ");}?>
     
  2. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    мне кажется ошибка тут:
    PHP:
    1. while($row = mysql_fetch_array($result))
    2. {$row[id]=$id;}
     
  3. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    =((((((((((
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Смотри логи ёпт, мы не кудесники, не телепаты и не экстрасенсы.
     
  5. kombain

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

    С нами с:
    28 авг 2010
    Сообщения:
    50
    Симпатии:
    0
    В файле htaccess скорее всего ошибка. Проверь этот конфигурационный файл в директориях, где лежит скрипт
     
  6. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    PHP:
    1. $sql="INSERT INTO users (id, login, pass, e-mail, pol, vozrast, activ)
    2. VALUES
    3. (NULL,'$_GET[login]','$_GET[pass]','$_GET[e-mail]','$_GET[pol]','$_GET[vozrast]','0')";
    точнее лшибка тут:
    PHP:
    1. (NULL,'$_GET[login]','$_GET[pass]','$_GET[e-mail]','$_GET[pol]','$_GET[vozrast]','0')";
    [/php]
     
  7. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    я просто сейчас логи посмотрел... и реально, убераю эти соеденения с базой, всё норм((

    вот лог:
    PHP:
    1. [Wed Sep 01 21:39:05 2010] [error] [client 79.142.91.37] PHP Parse error: parse error, expecting `']'' in D:\\doc\\sait\\htdocs\\asdasdas\\htdocs\\login\\_reg3.php on line 20, referer: [url=http://79.142.91.37/htdocs/asdasdas/htdocs..._reg2.php?reg=1]http://79.142.91.37/htdocs/asdasdas/htd ... .php?reg=1[/url]
     
  8. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Эх, CGI.
    Делайте конкатенацию строк.
     
  9. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    всмысле??? оО


    у меня просто в коде странице еще выше есть строки, с дизайном... я смотрю через notepad++ и 20 строка именно на этом нул....

    помогите пожалуйста
     
  10. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?
    2.  
    3. $sql = 'INSERT INTO `users` VALUES
    4. (
    5.  NULL,
    6.  ' . $_GET["login"]  . ',
    7.  ' . $_GET["pass"]   . ',
    8.  ' . $_GET["e-mail"] . ',
    9.  ' . $_GET["pol"]    . ',
    10.  ' . $_GET["vozrast"] . ',
    11.  0
    12. )';
    13.  
    14. ?>
     
  11. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    вот так всё работает, спасибо большое)))
    вы можете ответить в чем была ошибка, просто я копировал скрипт из соседней папки, и там он добавляет в базу файлы (ну не сами, а только описание, ссылку, размер и т.д.)
    но там всё работает, всё нормально добавляло с тем скриптом... а что тут такое?(((
     
  12. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    ну почему вот это работает
    PHP:
    1. $sql="INSERT INTO files (id, ssilka, name, opisanie, tip, razmer)
    2. VALUES
    3. (NULL,'$_POST[ssilka]','$_POST[name]','$_POST[opisanie]','$_POST[tip]','$_POST[razmer]')";

    а это нет????
    PHP:
    1.  $sql="INSERT INTO users (id, login, pass, e-mail, pol, vozrast, activ)
    2. VALUES
    3. (NULL,'$_POST[login]','$_POST[pass]','$_POST[e-mail]','$_POST[pol]','$_POST[vozrast]','0')";
    они же точь в точ похожи, только во втором случае стоит 0, но я этот ноль пихал в епременную ($nol = '0';) и делал там $nol и нифига не работает, а как делаю
    PHP:
    1.  
    2.  (NULL, ".$_POST['login'].", ".$_POST['pass'].", ".$_POST['e-mail'].", ".$_POST['pol'].", ".$_POST['vozrast'].", $nol)";
    всё норм(((( вообще не допирает до меня....
    может это из-за того что я делаю регу через IFraim?
     
  13. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    научитесь синтаксически правильно составлять запрос


    [sql]
    INSERT INTO
    `users`
    (`id`, `login`, `pass`, `e-mail`, `pol`, `vozrast`, `activ`)
    VALUES
    (NULL,'$_POST[login]','$_POST[pass]','$_POST[e-mail]','$_POST[pol]','$_POST[vozrast]','0')
    [/sql]


    и ловить ошибки


    PHP:
    1.  
    2. <?php
    3.  
    4. mysql_query() or die('MYSQL ERROR: '.mysql_error());
    5.  
    6. ?>
    7.  

    и все у вас, блин, получится...

    удачи
     
  14. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    Спасибо!)))
    не в одном учебнике не видел чтобы ` вот такими ковычками выделяли столбцы (ну айди, логин, мыло и т.д. в данном случае), везде без ковычек.. а вот насчет названия таблицы знаю=)

    спасибо ещё раз большое... можете посоветовать учебник какой нибудь по php?
    просто сейчас пошел учится в гуап на автоматизацию техники и програмное обеспечение авиа-космических приборов... так это вообще не то((
    я хочу просто учится на коддера (php, perl и т.п.), а вот какой нибудь колледж/универ в питере незнаю... по гуглил, ненашел(((

    можете чтонибудь подсказать (книги, колледж, универ) (или вы сам самоучка?=) )
     
  15. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    нифига этот код тоже не работает!!!!!
     
  16. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    может мне в конфиге php надо что-то прописать? оО

    у меня пхп 5.2.9
     
  17. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Pomaska
    В чем вопрос-то?
     
  18. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    сперва про коллдеж, универ и книжки)
    второй вопрос про: всётаки и этот код не работает(((
    третий вопрос: может что-то в пхп прописать (в конфиг), у меня врсия пхп 5.2.9
     
  19. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Захочешь учиться в Эстонии - подскажу =)

    Тут уже столько кодов понаписали, так что в нос мне тыкни, какой из них не работает.

    Нет. Это синтаксика MySQL (апострофы) или РНР (просто ошибка синтаксиса).
    Конфиги тут не при чем.
     
  20. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    ой, чет я перехотел)))
    все, кроме вот этого:
    PHP:
    1. <?
    2.  
    3.  $sql = 'INSERT INTO `users` VALUES
    4.  (
    5.   NULL,
    6.   ' . $_GET["login"]  . ',
    7.   ' . $_GET["pass"]  . ',
    8.   ' . $_GET["e-mail"] . ',
    9.   ' . $_GET["pol"]    . ',
    10.   ' . $_GET["vozrast"] . ',
    11.   0
    12.  )';
    13.  
    14.  ?>
    понятно....
     
  21. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Pomaska
    Дело в том, что ключ массива, если он не числовой, следует брать в скобочки, указывая на то, что ключ является строковым типом. Когда мы пишем ключ "e-mail" без скобочек, РНР у нас немножечко путается.
    Возми в скобочки ключи массивов и РНР тебе будет за это очень благодарен.
    Кроме того, конкатенация строк быстрее и нагляднее, потому что не заставляет проводить синтаксический анализ строк и явно или неявно не допустить подобных вещей, как строковые ключи без скобок.

    Никаких секретов.
     
  22. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    ммм ладно, теперь всегда буду делать так))
    тоесть вот этот скрипт не првельный, но мне повезло что он рабочий, да? :
    PHP:
    1. $sql="INSERT INTO files (id, ssilka, name, opisanie, tip, razmer)
    2. VALUES
    3. (NULL,'$_POST[ssilka]','$_POST[name]','$_POST[opisanie]','$_POST[tip]','$_POST[razmer]')";
     
  23. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Автору этого скрипта не помешало бы снять штанишки и отхлестать железным кнутом за такую писанину.
     
  24. Pomaska

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

    С нами с:
    8 июн 2010
    Сообщения:
    58
    Симпатии:
    0
    эээ, ненадо))) пока что автор этого скрипта я=) и делал я его по книжке.. тока в книжке было выделенно ковычками `files`, а я забыл выделить, но всё работает=)
     
  25. Neka

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

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    // offtop

    Apple
    Интересует не получение корочки, а получение реальных практических и теоретических знаний (практики по сути и щас дофига, но теория..), с этим как? И узкоспециализированных навыков.