За последние 24 часа нас посетили 45373 программиста и 1813 роботов. Сейчас ищут 849 программистов ...

Отправка данных в базу sql

Тема в разделе "Прочие вопросы по PHP", создана пользователем 2Kem, 18 мар 2009.

  1. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Ребят кто может помогите пожалуйста! проблема заключается в чем!
    Информацию... отправляет в базу

    Это файл 1.php

    PHP:
    1. <?php header('Content-Type: text/html; charset=windows-1251'); ?>
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    6. <title>Сдать трек на 2micro battle1</title>
    7. </head>
    8.  
    9. <body>
    10. <form action="mysql.php" method="post" >  
    11. Ник участника <input type="text" size="20" maxlength="40" name="fam" /><br>
    12. Город участника<input type="text" size="20" maxlength="40" name="imya"  />  <br>
    13. Ссылка на на трек <input type="text" size="20" maxlength="40" name="otch" /> <br>
    14. <input name="sumbit" type="submit" value="Отправить трек" />  <br>
    15. Ссылку строго на dump.ru
    16.  
    17.  
    18. </form>  
    19. </body>
    20. </html>
    тут все Хорошо! Дальше...

    файл mysql.php

    PHP:
    1. <?php header('Content-Type: text/html; charset=windows-1251'); ?>
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    6. <title>connect BD</title>
    7. </head>
    8.  
    9. <body>
    10. <?php
    11.  
    12.  
    13.  
    14.  
    15. if (isset($_POST["fam"]))
    16. {
    17. $fam = $_POST["fam"];
    18. }
    19. if (isset($_POST["imya"]))
    20. {
    21. $imya = $_POST["imya"];
    22. }
    23. if (isset($_POST["otch"]))
    24. {
    25. $otch = $_POST["otch"];
    26. }
    27.  
    28.  
    29.  
    30.  
    31.  
    32.  
    33. $db = mysql_connect ("localhost","login","pass");
    34. mysql_query ("set character_set_client='cp1251'");
    35. mysql_query ("set character_set_results='cp1251'");
    36. mysql_query ("set collation_connection='cp1251_general_ci'");
    37. mysql_select_db ("2micro",$db);
    38.  
    39.  
    40. $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')");
    41.  
    42.  
    43. if ($result == 'true')
    44.  
    45. {
    46. echo "Трек принят!";  
    47. }
    48. else
    49. {
    50. echo "Информация в базу не добавлена!";
    51. }
    52.  
    53.  
    54. ?>
    55. </body>
    56. </html>
    Проблема в том что при нажатии отправить переходит на файл mysql.php и когда нажимаешь F5, То в базу заносится информация пустая! как Этого избежать? без всяких редиректов и т.д

    и проблема вторая например ник человека который сдал трек на батл там Коля как сделать так что-бы Коля другой больше не сдал трек! а поменял ник! и если поля не заполнены или одно любое поле не заполнено! писала ошибку типа не заполнены все поля! Кто может помогите из Этого кода сделать! Буду очень благодарен с меня море пива :wink:
     
  2. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    PHP:
    1.  
    2. $err= null;
    3.  
    4. if (isset($_POST["fam"]) && $_POST["fam"]!='')
    5.   {
    6.   $fam = $_POST["fam"];
    7.  }
    8. else
    9. {
    10.   $err.="Фамилия не можеть быть пустой<br>";
    11. }
    12. ....тут по аналогии для каждого параметра
    13.  
    14.  
    15.  
    16. if ($err==NULL)
    17. {
    18.   $db = mysql_connect ("localhost","login","pass");
    19.   mysql_query ("set character_set_client='cp1251'");
    20.   mysql_query ("set character_set_results='cp1251'");
    21.   mysql_query ("set collation_connection='cp1251_general_ci'");
    22.   mysql_select_db ("2micro",$db);
    23.  
    24.  
    25.   $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')");
    26.  
    27. }
    28. else
    29. {
    30.   echo $err;
    31. }
    32.  
    33.  
     
  3. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Это типо пользователь с таким именем уже сдавал чето,выберите другой ник?
     
  4. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    ну как бы да просто вдруг чувак сдаст трек... и еще раз сдаст! нафиг он там нужен... небыло повторов!
     
  5. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    За предыдущий пост Огромное спасибо! Все работает отлично! еще сделаю редирект на страницу таблицы принятых треков будет Замечательно!
     
  6. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Сделай совокупность полей ФИО уникальными в самом MYSQL, тогда при поптыке втсавить ты получишь ошибку что не вставилось, или перед вставкой делай выборку SELECT * FROM battle1 WHERE fam=$fam AND imya=$imya AND otch=$otch
    Если запись найдена то создаем ошибку что такой пользователь уже сдавал.
     
  7. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Не понял(( пожно чуть поподробнее... я просто слаб в Этом))
     
  8. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Код (Text):
    1.  
    2. $db = mysql_connect ("localhost","login","pass");
    3. mysql_query ("set character_set_client='cp1251'");
    4. mysql_query ("set character_set_results='cp1251'");
    5. mysql_query ("set collation_connection='cp1251_general_ci'");
    6. mysql_select_db ("2micro",$db);
    7.  
    8. $result=mysql_query("SELECT * FROM battle1 WHERE fam='$fam' AND imya='$imya' AND otch='$otch'");
    9.  
    10. if (mysql_num_rows($result)>0) $err.="Пользователь с таким именем уже отправлял<br>";
    11.  
    12. if ($err==NULL)
    13. {
    14.  
    15.   $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')");
    16.  
    17. }
    18.   else
    19. {
    20.     echo $err;
    21. }
     
  9. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    PHP:
    1. <?php header('Content-Type: text/html; charset=windows-1251'); ?>
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    6. <title>connect BD</title>
    7. </head>
    8.  
    9. <body>
    10. <?php
    11.  
    12. $err= null;
    13.  
    14.  if (isset($_POST["fam"]) && $_POST["fam"]!='')
    15.    {
    16.    $fam = $_POST["fam"];
    17.   }
    18.  else
    19.  {
    20.    $err.="Не ввели фамилию<br>";
    21.  }
    22.  
    23. if (isset($_POST["imya"]) && $_POST["imya"]!='')
    24.    {
    25.    $imya = $_POST["imya"];
    26.   }
    27.  else
    28.  {
    29.    $err.="имя не можеть быть пустой<br>";
    30.  }
    31.  
    32. if (isset($_POST["otch"]) && $_POST["otch"]!='')
    33.    {
    34.    $otch = $_POST["otch"];
    35.   }
    36.  else
    37.  {
    38.    $err.="имя не можеть быть пустой<br>";
    39.  }
    40.  
    41. if ($err==NULL)
    42.  {
    43.    $db = mysql_connect ("localhost","login","pass");
    44. mysql_query ("set character_set_client='cp1251'");
    45. mysql_query ("set character_set_results='cp1251'");
    46. mysql_query ("set collation_connection='cp1251_general_ci'");
    47. mysql_select_db ("2micro",$db);
    48.  
    49. $result=mysql_query("SELECT * FROM battle1 WHERE fam='$fam' AND imya='$imya' AND otch='$otch'");
    50.  
    51. if (mysql_num_rows($result)>0) $err.="Пользователь с таким именем уже отправлял<br>";
    52.  
    53. if ($err==NULL)
    54. {
    55.  
    56.   $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')");
    57.  
    58. }
    59.   else
    60. {
    61.     echo $err;
    62. }
    63.  
    64. ?>
    65.  
    66. </body>
    67. </html>
    а ошибку пишет Parse error: syntax error, unexpected $end in /var/www/мой сайт.ru/battle1/html/mysql.php on line 67
     
  10. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    41 и 42 строчку снеси нафиг
     
  11. 2Kem

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

    С нами с:
    18 мар 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо огромное! незнаю... ты молодец...помог очень! Благодарю от всего сердца! :wink: :wink: :wink: