2017-04-19 81 views
0

我想用captcha創建。如果驗證碼不正確,則在窗體中顯示相同的值。PHP會話錯誤會話已經啓動並且未定義的變量:_session

這是向會話添加數據的頁面。它可以在這裏顯示來自會話的數據,例如echo $_session['txtShippingFirstName'];

// Use captcha 
if(!((md5((isset($_POST['captcha'])?$_POST['captcha']:"")) == $_SESSION['captchaKey']) || (isset($_SESSION['plaincart_customer_id'])))){    

$_session['txtShippingFirstName'] = $_POST['txtShippingFirstName']; 
$_session['txtShippingLastName'] = $_POST['txtShippingLastName']; 
$_session['txtShippingEmail'] = $_POST['txtShippingEmail']; 
$_session['txtShippingAddress1'] = $_POST['txtShippingAddress1']; 
$_session['txtShippingAddress2'] = $_POST['txtShippingAddress2']; 
$_session['txtShippingPhone'] = $_POST['txtShippingPhone']; 
$_session['txtShippingCity'] = $_POST['txtShippingCity']; 
$_session['txtShippingState'] = $_POST['txtShippingState']; 
$_session['txtShippingPostalCode'] = $_POST['txtShippingPostalCode']; 

//setError($_session['txtShippingFirstName']); 
setError("CAPTCHA not correct"); 
header("Location: checkout.php?step=1"); 

}else{ 
    $includeFile = 'checkoutConfirmation.php'; 
} 

此表單頁面,如果驗證碼不正確,然後返回到這個頁面

if(isset($_session['txtShippingFirstName'])){ 
      $customerFirstName = $_session['txtShippingFirstName']; 
      $customerLastName = $_session['txtShippingLastName']; 
      $customerEmail = $_session['txtShippingEmail']; 
      $customerAddress = $_session['txtShippingAddress1']; 
      //$_session['txtShippingAddress2'] 
      $customerPhone = $_session['txtShippingPhone']; 
      $customerCity = $_session['txtShippingCity']; 
      $customerState = $_session['txtShippingState']; 
      $customerPostalCode = $_session['txtShippingPostalCode']; 

} 

echo $_session['txtShippingFirstName']; 

它顯示錯誤未定義的變量:_session上線echo $_session['txtShippingFirstName'];。如果我在頁面頂部添加session_start();,它會顯示錯誤Notice: A session had already been started - ignoring session_start(),因爲我已經在頭文件中添加了session_start。如何解決這個錯誤?

+2

我想問題是用小寫= $ _SESSION!= $ _session – shomel

回答

0

的PHP超全局需要在大寫:

$_SESSION['txtShippingFirstName'] 

在這種情況下。