2013-11-13 5 views
0

У меня проблема со следующим: if ($ _POST ['Submitted'] == "true") {Эта строка продолжает выдавать неопределенную ошибку "Undefined index: Submitted in C: \ wamp \ WWW \ oop_settings \ index.php в строке 13Представлено If statement undefined error

<?php 
    session_start(); 
    ob_start(); 

    include_once ("includes/settings.php"); 
    include("includes/functions/functions.php"); 
    //include_once ("includes/optional.php"); 

    var_dump($_POST);// Sanity check 

    if ($_POST['Submitted'] == "true") { 
    $Errors = ""; 
    $_SESSION['LoggedIn'] = false; 
    $_SESSION['UserID'] = ""; 
    $_SESSION['UserAdmin'] = false; 

    // process submitted data 
    $userSQL = $Database->Execute("SELECT UserID, UserFullname, UserEmail, UserLastPassword FROM Users WHERE UserName = '" . mysql_real_escape_string($Text->ValidSQLString($_POST['Username'])) . "' AND UserPassword = '" . md5($_POST['Password']) . "' AND UserActive = 1 AND UserListingOnly = 0 AND UserID NOT IN (61)"); 
    $UserCount = $Database->RecordCount($userSQL); 
//echo $userSQL; 

    if ($UserCount == 1) { 
     // user found 
     $rowUser = $Database->Records($userSQL); 
     $LastMonth = date("Y-m-d", mktime(0, 0, 0, (date("m") - 1), date("d"), date("Y"))); 

     if ($rowUser['UserLastPassword'] <= $LastMonth) { 
      // password expired, generate new password 
      $Errors = "Your password has expired, your new password has been sent to your inbox."; 
      $NewPassword = $Text->ResetPassword(); 

      $userpasswordSQL = "UPDATE Users SET UserPassword = '" . md5($NewPassword) . "', UserLastPassword = '" . date("Y-m-d") . "' WHERE UserID = " . $rowUser['UserID']; 
      $dbUserPassword = $Database->Execute($userpasswordSQL) or die ("New Password Query Failed: " . mysql_error()); 

      mail($rowUser['UserEmail'], "Watkins Hire - Your New Password", "Your old password has expired for security reasons.\n\nYour new password is: $NewPassword", "From: [email protected]"); 
     }// end UserCount 


    }//end if 
}//end if 

else { 
      // valid log in 
      $_SESSION['LoggedIn'] = true; 
      $_SESSION['UserID'] = $rowUser['UserID']; 
      LoginForm(); // call the form function 

}// end else if 

?> 
+1

По крайней мере, вы должны проверить, установлен ли он или нет (с 'isset ($ _ POST ['Submitted'])). – raina77ow

ответ

0

запрос POST не имеет индекс «Представлено», поэтому PHP говорит вам, что это не определено.

Как прокомментировал, вы должны проверить для его существования, сначала проверив его с помощью isset(), а затем подтвердите значение этого индекса.

+0

Спасибо за ваш ответ. Я использовал следующий код и, кажется, work.if (isset ($ _ POST ['Submitted']) && ($ _POST ['Представлено'] == 'true')) {} – David

0

Это потому, что он еще не существует. Используйте isset(), если вам просто нужно его установить, или !empty(), если вы хотите, чтобы убедиться, что значение не является пустой строкой, 0 или null перед проверкой значения .:

if (isset($_POST['Submitted']) && $_POST['Submitted'] == "true") { 
0

Проверьте вашу форму отправить имя на $_POST['submitted'] - submitted должно быть имя вашего имени подать

Для например:

<form> 
<input type="submit" name="submitted"> 
</form> 

это должно быть нечто подобное ..............