Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите с input
 
 автор: Leon22   (16.08.2008 в 21:17)   письмо автору
 
 

Добрый вечер.
Я в пхп новичок и потому обратился к вам за помощью
Сейчас занялся написанием сайта, сам сайт на хтмл, но возникла проблема, которую нужно решить через пхп.
На странице сайта выводится форма соглашения с лицензией.:
<form name="form1" method="post" action="agreement.php">
<input name="agree" value="true" type="checkbox">
<input name="cheat" value="true" type="checkbox">
<input src="images/continue-button.gif" name="submit" alt="Далее" class="button" taborder="14" border="0" type="image" width="174" height="46">
</form>

соглашения с лицензией.
Пользователь должен поставить галочку в
<input name="agree" value="true" type="checkbox">
и
<input name="cheat" value="true" type="checkbox">
и нажать на кнопку:
<input src="images/continue-button.gif" name="submit" alt="Далее" class="button" taborder="14" border="0" type="image" width="174" height="46">
если со всеми пунктами он согласился т.е. поставил галочку его редиректует на следующую страницу, если что-то упустил ему должен выводится еррор, что мол если ты не соглашаешься с нашей лицензией, тебе здесь нечего делать).
Вобщем то задача не сложная. но я просидел день и так у меня ничего и не вышло....
пробовал такой вариант:
<?

if ($agree="true"
{
$n ="next";}

if (
$agree="false")
{
$n ="error";
}
header("Location: $n");
?>

и других много вариантов перепробовал, безрезультатно...
Может вы мне поможете или хотя б подскажите в какую сторону копать.

  Ответить  
 
 автор: sl1p   (16.08.2008 в 21:29)   письмо автору
 
   для: Leon22   (16.08.2008 в 21:17)
 

если он не нажал то value будет ""

<?
if ($_POST['agree']=="true") {
$n ="next";
}
else{
$n ="error";
}
header("Location: $n");
?> 


или так компактненько)

<?php
$n
=empty($_GET['add']) ? "error" "next";
header("Location: $n");
?>

  Ответить  
 
 автор: Leon22   (16.08.2008 в 21:41)   письмо автору
 
   для: sl1p   (16.08.2008 в 21:29)
 

Спасибо большое, многоуважаемый.
Выручили...

  Ответить  
 
 автор: Leon22   (16.08.2008 в 22:58)   письмо автору
 
   для: Leon22   (16.08.2008 в 21:41)
 

спасибо еще раз за оперативную помощь.
Но у меня опять возникла проблема:



<?
if ($_POST['agree']=="true"
if (
$_POST['cheat']=="true"
{
$n ="next";
}
else
{
$n ="error";
}
header("Location: $n");

Если обе галочки поставлены, то отсылает на страницу next, если какая либо не нажата отсылает на error,
А каким образом можна сделать? что б отсылало при каждой ошибке:
1) если не нажата первая галочка на error
2) Если не нажата вторая на error2
Заранее благодарю.

  Ответить  
 
 автор: sl1p   (16.08.2008 в 23:03)   письмо автору
 
   для: Leon22   (16.08.2008 в 22:58)
 

вот так сори,обновил

<?php
if(!empty($_POST['agree']) && !empty($_POST['cheat'])){
$n="next";
}
elseif(empty(
$_POST['agree'])){
$n="agree_error";
}
elseif(empty(
$_POST['cheat'])){
$n="cheat_error";
}
?>

  Ответить  
 
 автор: elrevin   (16.08.2008 в 23:10)   письмо автору
 
   для: Leon22   (16.08.2008 в 22:58)
 


<?
$n
=(!empty($_POST['agree']) && !empty($_POST['cheat']))? "next" : ( empty($_POST['agree']? "error" :  "error2");
?>


упс нажал ответить, отвлекся, отписал, отправил, а такое же решение уже sl1p успел дать :)

  Ответить  
 
 автор: sl1p   (16.08.2008 в 23:18)   письмо автору
 
   для: elrevin   (16.08.2008 в 23:10)
 

вот почему я за то чтобы сделали возможность удаления месагов =D неудобно жуть=(

  Ответить  
 
 автор: Leon22   (16.08.2008 в 23:22)   письмо автору
 
   для: sl1p   (16.08.2008 в 23:18)
 

Все всем спасибо огромное.
если кто-то столкнулся с такой же проблемой, конечный код у меня выглядит так:
<?php
if(!empty($_POST['agree']) && !empty($_POST['cheat'])){
$n="next";
}
else if(empty(
$_POST['agree']))
{
$n="agree_error";
}
else if(empty(
$_POST['cheat']))
{
$n="cheat_error";
}
if(empty(
$_POST['agree']) && empty($_POST['cheat']))
{
$n="error";
}

header("Location: $n"); 
?> 

  Ответить  
 
 автор: sl1p   (16.08.2008 в 23:27)   письмо автору
 
   для: Leon22   (16.08.2008 в 23:22)
 

хм создавать 3 страницы для 3х отдельных ошибок это варварство)

  Ответить  
 
 автор: Leon22   (16.08.2008 в 23:43)   письмо автору
 
   для: sl1p   (16.08.2008 в 23:27)
 

знаю) ну это единичный случай) можна на всем сайте такое один раз позволить;)
ну ладно шутки в сторону...
А что бы вы мне посоветовали сделать такого в хтмл? что б не создавать 3 страницы.

  Ответить  
 
 автор: sl1p   (17.08.2008 в 00:03)   письмо автору
 
   для: Leon22   (16.08.2008 в 23:43)
 

сделайте расширение вашей страницы на .php и туда вот втыкнуть.. поменяйте просто на вашу форму и action на ту страницу где лежит форма,тобишь отправлять будет самой себе..
главное замените все кавычки в форме " на ' это можно сделать в обычном блокноте..

ну вопщем такое, разбирайтесь)

<?php
$errormsg
="";
$go=false;
if(!empty(
$_POST['Submit'])){
$check=array();
if(empty(
$_POST['agree'])){$check['agree']=false$errormsg.="agree_error<br>";}else $check['agree']=true;
if(empty(
$_POST['cheat'])){$check['cheat']=false$errormsg.="cheat_error<br>";}else $check['cheat']=true;
 foreach(
$check as $v){
 if(
$v){
 
$go=true;
 }
 else{
 
$go=false;
 break;
 }
 }
}
if(!
$go){
echo
"<center>$errormsg</center>
<form action='test.php' method='post'>
agree
<input type='checkbox' name='agree' value='true' /><br />
cheat 
<input type='checkbox' name='cheat' value='true' />
<br />
<input type='submit' name='Submit' value='Submit' />
</form>"
;
}
else{
echo 
"Next";
}
?>

  Ответить  
 
 автор: Leon22   (17.08.2008 в 00:19)   письмо автору
 
   для: sl1p   (17.08.2008 в 00:03)
 

ок будем разбираться..;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования