2015-02-18 2 views
0

Я пытаюсь создать простую форму PHP, в которой пользователь должен ввести один из шести предопределенных паролей, это будут TSS01, TSS02, TSS03, TSS04, TSS05 и TSS06.Проверка формы PHP с помощью предопределенных паролей

Форма в настоящее время функционирует должным образом при использовании только числовых паролей.

PHP кодирование следующим образом:

<?php 

if(empty($_POST['name']) || empty($_POST['code'])) { 
die(print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"); 
} 

$name=$_POST['name']; 
$code=$_POST['code']; 

$to='[email protected]'; 

$headers = 'From: '.$name."\r\n" . 
'Reply-To: '.$name."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
$subject = 'SECRET SUPPER FORM ENTRY'; 
$body='Entry References'."\n\n"; 
$body.='Name: '.$name."\n"; 
$body.='Code: '.$code."\n"; 

if(!empty($_POST['code']) && $_POST['code'] == TSS01) { 
$submit = mail($to, $subject, $body, $headers, "From: <$name>"); 
print "<meta http-equiv=\"refresh\" content=\"0;URL=success.html\">"; 

} else { 

print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; 

} 
?> 

Как эта форма будет проверена любым шести из этих паролей? Пароли уже установлены и не могут быть изменены, они должны быть именно такими.

+0

Вы забыли кавычки TSS01. Попробуйте '$ _POST ['code'] == 'TSS01'' –

+0

При проверке' $ _POST [' code '] 'проверьте все пароли, а не только TSS01. – Celeo

ответ

0

Вы можете сделать что-то вроде:

$passwords = array('TSS01', 'TSS02', 'TSS03', 'TSS04', 'TSS05', 'TSS06'); 

// !empty($_POST['code']) - you dont need to check again if is empty, you already do it on the firsts lines 
if(in_array($_POST['code'], $passwords)) { 
    // Passwords is ok 
} 
+0

Благодарим за отзыв - это отлично работает, мне нужно было добавить строку с теми же паролями с строчным текстом. Спасибо! – Stanley

+0

Я рад, что это тебе помогает :) – lmarcelocc

Смежные вопросы