Ребят кто может помогите пожалуйста! проблема заключается в чем! Информацию... отправляет в базу Это файл 1.php PHP: <?php header('Content-Type: text/html; charset=windows-1251'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Сдать трек на 2micro battle1</title> </head> <body> <form action="mysql.php" method="post" > Ник участника <input type="text" size="20" maxlength="40" name="fam" /><br> Город участника<input type="text" size="20" maxlength="40" name="imya" /> <br> Ссылка на на трек <input type="text" size="20" maxlength="40" name="otch" /> <br> <input name="sumbit" type="submit" value="Отправить трек" /> <br> Ссылку строго на dump.ru </form> </body> </html> тут все Хорошо! Дальше... файл mysql.php PHP: <?php header('Content-Type: text/html; charset=windows-1251'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>connect BD</title> </head> <body> <?php if (isset($_POST["fam"])) { $fam = $_POST["fam"]; } if (isset($_POST["imya"])) { $imya = $_POST["imya"]; } if (isset($_POST["otch"])) { $otch = $_POST["otch"]; } $db = mysql_connect ("localhost","login","pass"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); mysql_select_db ("2micro",$db); $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')"); if ($result == 'true') { echo "Трек принят!"; } else { echo "Информация в базу не добавлена!"; } ?> </body> </html> Проблема в том что при нажатии отправить переходит на файл mysql.php и когда нажимаешь F5, То в базу заносится информация пустая! как Этого избежать? без всяких редиректов и т.д и проблема вторая например ник человека который сдал трек на батл там Коля как сделать так что-бы Коля другой больше не сдал трек! а поменял ник! и если поля не заполнены или одно любое поле не заполнено! писала ошибку типа не заполнены все поля! Кто может помогите из Этого кода сделать! Буду очень благодарен с меня море пива :wink:
PHP: $err= null; if (isset($_POST["fam"]) && $_POST["fam"]!='') { $fam = $_POST["fam"]; } else { $err.="Фамилия не можеть быть пустой<br>"; } ....тут по аналогии для каждого параметра if ($err==NULL) { $db = mysql_connect ("localhost","login","pass"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); mysql_select_db ("2micro",$db); $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')"); } else { echo $err; }
ну как бы да просто вдруг чувак сдаст трек... и еще раз сдаст! нафиг он там нужен... небыло повторов!
За предыдущий пост Огромное спасибо! Все работает отлично! еще сделаю редирект на страницу таблицы принятых треков будет Замечательно!
Сделай совокупность полей ФИО уникальными в самом MYSQL, тогда при поптыке втсавить ты получишь ошибку что не вставилось, или перед вставкой делай выборку SELECT * FROM battle1 WHERE fam=$fam AND imya=$imya AND otch=$otch Если запись найдена то создаем ошибку что такой пользователь уже сдавал.
Код (Text): $db = mysql_connect ("localhost","login","pass"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); mysql_select_db ("2micro",$db); $result=mysql_query("SELECT * FROM battle1 WHERE fam='$fam' AND imya='$imya' AND otch='$otch'"); if (mysql_num_rows($result)>0) $err.="Пользователь с таким именем уже отправлял<br>"; if ($err==NULL) { $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')"); } else { echo $err; }
PHP: <?php header('Content-Type: text/html; charset=windows-1251'); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>connect BD</title> </head> <body> <?php $err= null; if (isset($_POST["fam"]) && $_POST["fam"]!='') { $fam = $_POST["fam"]; } else { $err.="Не ввели фамилию<br>"; } if (isset($_POST["imya"]) && $_POST["imya"]!='') { $imya = $_POST["imya"]; } else { $err.="имя не можеть быть пустой<br>"; } if (isset($_POST["otch"]) && $_POST["otch"]!='') { $otch = $_POST["otch"]; } else { $err.="имя не можеть быть пустой<br>"; } if ($err==NULL) { $db = mysql_connect ("localhost","login","pass"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); mysql_select_db ("2micro",$db); $result=mysql_query("SELECT * FROM battle1 WHERE fam='$fam' AND imya='$imya' AND otch='$otch'"); if (mysql_num_rows($result)>0) $err.="Пользователь с таким именем уже отправлял<br>"; if ($err==NULL) { $result = mysql_query ("INSERT INTO battle1 (fam,imya,otch) VALUES ('$fam','$imya','$otch')"); } else { echo $err; } ?> </body> </html> а ошибку пишет Parse error: syntax error, unexpected $end in /var/www/мой сайт.ru/battle1/html/mysql.php on line 67
Спасибо огромное! незнаю... ты молодец...помог очень! Благодарю от всего сердца! :wink: :wink: :wink: