2014-09-29 2 views
3

я получаю неопределенный индекс к this..When Я принимаю сообщения об ошибках прочь, все хорошо, но я искал способ, чтобы исправить это «правильный путь»Неопределенные ошибки индекса в коде представления PHP формы

в моей форме на register.php, кнопка выглядит так

<input type="submit" name="submit" class="btn btn-kani btn-lg" value="Sign Up"/> 

Это то связана с другой страницы под названием login.php

login.php код

Я попытался

if (isset($_POST['submit']=="Sign Up")) { 
// etc. 

Я попытался

if ($_POST['submit']=="Sign Up") { 
// etc. 

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

<li class="inactive"><a href="logout.php?logout=1">Log Out</a></li> 

и код по login.php

if($_GET["logout"]==1 AND $_SESSION['id']) { 
    session_destroy(); 
    header("Location:../logout.php");  
} 

ответ

2

No оценивает, что находится внутри, и говорит вам, если его истинным или ложным:

Так что это выражение не имеет на самом деле толку от того, что вы пытаетесь сделать:

if (isset($_POST['submit']=="Sign Up")) { 

Должно быть так:

if(isset($_POST['submit'])) { // if index submit <input type="submit" name="submit" /> button was pressed 
    // so if the button is pressed, then it will go inside this block 
} 

Если вы хотите, чтобы оценить свое присутствие и значение, которое вы могли бы сделать что-то вроде:

if(isset($_POST['submit']) && $_POST['submit'] == 'whatever value') { 

} 

Что касается сессии вы можете проверить это следующим образом:

if(isset($_GET['logout'], $_SESSION['id']) && $_GET['logout'] == 1) { 
    // if both get logout and session id does exists and logout is equal to 1 
    session_destroy(); 
    header('Location: ../logout.php'); 
} 

Если вы хотите больше дополнительной информации, вы можете проверить deceze-х The Definitive Guide To PHP's isset And empty. Это хорошо читать и красноречиво объясняет, как использовать его с тестами, схожим с вашими

+0

Как проверить более одного ??????? –

+0

@KimNAnthonyStole, что вы имеете в виду _more than one_? одна переменная? затем добавьте больше внутри условия. 'if (isset (выражение) && еще один && еще один || другой)' – Ghost

+0

Так как я не могу опубликовать сообщение еще немного, возможно, вы можете помочь. Если в этой форме есть ошибка, то что она будет делать, так это оставить информацию там, поэтому вам не нужно вводить ее снова, проблема в том, что она снова получает неопределенный индекс.

1

if ($_POST['submit']=="Sign Up") не проверяет первым, чтобы убедиться, что это значение в $_POST['submit'], что может привести к «неопределенному индексу»;

if (isset($_POST['submit']=="Sign Up")) как раз и даже не имеет смысла. Попробуйте что-то вроде:

if (isset($_POST['submit']) && ($_POST['submit']==="Sign Up"))

+0

ВЫ - ЧЕЛОВЕК! А как насчет вывода неопределенного индекса с участием сеанса? сеанс с куками позже, но это только для стартеров. –

+0

Просто примените ту же логику к этим другим операциям. 'if (isset (THING) && (THING == OTHER_THING))' – TML

+0

Как проверить несколько? –

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