Так что моя проблема (помимо того, что я нуб) в том, что во время обучения я пытаюсь проверить пару вещей на true / false и независимо от того, как я устанавливаю свой код, если встречается один параметр, он идет через true, хотя второй параметр - false.
например, у меня есть форма, над которой я работаю, и я хочу знать, есть ли какие-либо данные, введенные в поля имени / пароля. если нет, то перенаправьте обратно на страницу формы.
вот что происходит:
HTML / псевдо:
<html and other header tags>
<form method="post" action="procfile.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td>password:</td>
<td><input type="text" name="password" id="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="submit"></td>
</tr>
</table>
</form>
</html>
что касается php, я сначала проверяю на пустоту, изначально у меня это было так:
<?php
if((empty($_POST['user']))&&(empty($_POST['password']))){
header("Location:index.php"); /* Redirect browser */
exit;
}
?>
это не работает. я не получаю синтаксические ошибки или что-то еще ... так, через некоторое время я перешел на более длинную версию, так что сверху он перешел к этому.
<?php
if(empty($_POST['user'])){
header("Location:index.php"); /* Redirect browser */
exit;
} else if((empty($_POST['password']))){
header("Location:index.php"); /* Redirect browser */
exit;
}
?>
это тоже не работает. я вынул оператор if if if и сделал кучу операторов if вместе один поверх другого, чтобы в случае сбоя перенаправить, если он прошел, перейти к следующему оператору if ...
это тоже не сработало.
Общая проблема, с которой я сталкиваюсь (я чувствую себя глупым!), Заключается в том, что на всех них условие first равно встретил , он пропускает оставшуюся часть php под ним и идет вперед, чтобы загрузить HTML. случается только на первом. Например, если я ввожу только пароль, это возвращает меня к индексу. если я сначала ввожу имя пользователя, а не пароль ... это позволяет мне через ДАЖЕ, хотя есть другие операторы if со своими собственными правилами. я поместил php поверх всего, чтобы УБЕДИТЬСЯ, что это происходит b4 что-нибудь отправлялось, но безрезультатно.
идеи?
что я делаю не так с этими условиями?
Забавно, когда я проверяю значение POST по сравнению со значением результата в дБ (из другого скрипта, над которым я сейчас работаю), например:
if((!empty($user)) && (!empty($pass))) {
//connect to db
$connect2db = mysqli_connect('127.0.0.1', 'root', 'pass', 'db');
if(!$connect2db){
die("error connectin to Database" . mysqli_error);
}
$dbq = "SELECT * FROM accounts;";
$dbqDoIt = mysqli_query($connect2db, $dbq)or die("error".mysqli_error($connect2db));
$getNames = mysqli_fetch_array($dbqDoIt);
//check if user acc. exists inside vS database.
if(($name === $getNames['username']) && ($pass === $getNames['password'])){
//do something
}
когда я проверяю, как это, с не пустым, оно остается на месте, пока оба условия не выполнены ... когда я проверяю на пустое (я пробовал с! Isset тоже) в приведенном выше примере, это терпит неудачу меня с треском ....
что я делаю не так? пожалуйста, помогите.
заранее благодарю.