Проверка...

  • Автор Автор misho
  • Начална дата Начална дата

misho

Registered
Правя една форма за добавяне на обяви, но имам проблем с проверката на някои полета. Имам следния код:
Код:
Раздел:
<select name="section">
 <option 1>- Избери -
 <option 2>Купувмам
 <option 3>Продавам
 <option 4>Изгубени / намерени птици
</select>
По подразбиране се вижда "- Избери -", но искам потребителите да изберът някоя друга категория. Т.е. ако остане избрано "- Избери -" да връщо грешка. Пробвах така, но не става нищо:
Код:
if ($title == "- Избери -")
	{echo "Не сте избрали рздел. Върнете се и изберете раздел!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
 
Пробвай така...

Код:
Раздел:
<select name="section">
<option value="none" selected="selected">- Избери -</option>
<option value="op2">Купувмам</option>
<option value="op3">Продавам</option>
<option value="op4">Изгубени / намерени птици</option>
</select>

Код:
$title = $_POST['section'];
if ($title == none) { echo "Не сте избрали рздел. Върнете се и изберете раздел!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
 
Раздел:
<select name="section">
<option value="1">- Избери -
<option value="2">Купувмам
<option value="3">Продавам
<option value="4">Изгубени / намерени птици
</select>
if($_POST[section]=="1"){
echo "избери друго"; }
Не съм сигурен, но може би така?
 
Код:
 if($_POST['section']=='none'){
... прави каквото трябва в случай не избрано ...
}
 
А и как да направя така, че в БД да се записва някаква стойност за всеки рездел (1, 2, 3...), а не да се записва името на раздела?
 
misho каза:
А и как да направя така, че в БД да се записва някаква стойност за всеки рездел (1, 2, 3...), а не да се записва името на раздела?
Както ти го дадох :)
<select name="section">
<option value="1">- Избери -
<option value="2">Купувмам
<option value="3">Продавам
<option value="4">Изгубени / намерени птици
</select>
Ще го записва като 1,2,3,4
 
Код:
Раздел:
<select name="section">
<option value="" selected="selected">- Избери -</option>
<option value="1">Купувмам</option>
<option value="2">Продавам</option>
<option value="3">Изгубени / намерени птици</option>
</select>

Код:
$section = $_POST[section];
if(!empty($section)){
echo $section;
}


Така ще ти изкара стойността на полето т.е. 1, 2 или 3.
 
Сигурно вече ставам нахален, но пак не си проумяам грeшката:
Код:
if ($section == none)
		{echo "Не сте избрали раздел. Върнете се и изберете раздел!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
	 else
		{
		 if ($category == none)
			{echo "Не сте избрали категория. Върнете се и изберете котегория!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
		 else
			{
....
Раздел:
		      <select name="section">
		       <option value="none" selected="selected">- Избери -
			   <option value="1">Купувмам
		       <option value="2">Продавам
		       <option value="3">Изгубени / намерени птици
		      </select>Категория:
		      <select name="category">
		       <option value="none" selected="selected">- Избери -
		       <option value="1">Папагали
		       <option value="2">Канарчета
		       <option value="3">Амадини (Финки)
		       <option value="4">Други птици
		       <option value="5">Клетки и аксесоари
		      </select>
Пропуска проверката на категориите. Първото работи, а второто е същото, но не работи. Просто не засича, че не съм избрал категория и продължава с проверката на следващото. :shock:
 
if ($section == none)
{echo "Не сте избрали раздел. Върнете се и изберете раздел!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
else
{
if ($category == none)
{echo "Не сте избрали категория. Върнете се и изберете котегория!<br /><a href='javascript:history.back()'>Назад</a>"; exit;}
else
{
....
<form method="post" action="page.php">
Раздел:
<select name="section">
<option value="none" selected="selected">- Избери -
<option value="1">Купувмам
<option value="2">Продавам
<option value="3">Изгубени / намерени птици
</select>
Категория:
<select name="category">
<option value="none" selected="selected">- Избери -
<option value="1">Папагали
<option value="2">Канарчета
<option value="3">Амадини (Финки)
<option value="4">Други птици
<option value="5">Клетки и аксесоари
</select>
</form>
 
И само се надявам че не ползваш register_globals защото е много грешно. Ако не, тогава вземаш ли
Код:
$section=$_POST['section']; $category=$_POST['category']
 
По-рано е това:
Код:
if(isset($_POST['izprati']))
	{
	 //Раздел (купувам, продавам...)
	 $section = $_POST['section'];
	 $section = htmlspecialchars($section);
	 $section = strip_tags($section);
	 $section = get($section);
	 
	 //Категория (папагали, канарчета...)
	 $cetegory = $_POST['cetegory'];
	 $cetegory = htmlspecialchars($cetegory);
	 $cetegory = strip_tags($cetegory);
	 $cetegory = get($cetegory);
.....
А цялата форма е в:
Код:
<form action="" method="post">
.....
</form>
 
human каза:
Мойто пробва ли изобщо :roll:
Да. Но малко променен:
Код:
 if (!$category)
			{echo "Не .....

Иначе пак проверява без грешка първото, а второто изписва грешка, каквото и да избера. :cry:
 
Раздел:
<select name="section">
<option value="" selected="selected">- Избери -
<option value="1">Купувмам
<option value="2">Продавам
<option value="3">Изгубени / намерени птици
</select>Категория:
<select name="category">
<option value="" selected="selected">- Избери -
<option value="1">Папагали
<option value="2">Канарчета
<option value="3">Амадини (Финки)
<option value="4">Други птици
<option value="5">Клетки и аксесоари
</select>
//Раздел (купувам, продавам...)
$section = $_POST['section'];
$section = htmlspecialchars($section);
$section = strip_tags($section);
$section = get($section);
$cetegory = $_POST['cetegory'];
$cetegory = htmlspecialchars($cetegory);
$cetegory = strip_tags($cetegory);
$cetegory = get($cetegory);
if($section == NULL) {die("Не си избрал секция");}
if($section != NULL) {
//kod
}
if($category == NULL){die("Не си избрал категория");}
if($category != NULL){
//kod
}
Така?
 
Но аз правя проверка и на email, заглавие, описание... Трябва да копирам цялата форма по 10 пъти ли?
 
misho каза:
Но аз правя проверка и на email, заглавие, описание... Трябва да копирам цялата форма по 10 пъти ли?
if(empty($pr1) OR empty($pr2) OR empty ($pr3)){
die ("Попълнете всички данни!"); }
else {
код}
Просто за пример го давам...
 
4 дни гледах кода като индианец и промених какво ли не и представете си каква беше грешката - една единтвена сгрешена буква. Просто бях объркал една буква.

category
cetegory

Благодаря ви все пак за всички отговори! :)
 

Back
Горе