2013-09-27 78 views
-2

我沒有創建此登錄表單的數據庫以發佈到尚未...我收到一個錯誤說,語法錯誤,意外'<'在線118.此代碼應該檢查無效字符並在找到列出的無效字符時顯示錯誤消息。對於這篇文章沒有正確格式的代碼,我表示歉意。與登錄表單的PHP錯誤

<!DOCTYPE html> 
<html> 
<?php 
function checkCharacters($input_string) 
{ 
    $char_array = str_split($input_string); 
    $string_length = strlen($input_string); 


    for($i = 0; $i < $string_length; $i++) 
    { 
     if(ord($char_array[$i]) == 39) //ASCII value of ' is 39 
      return false; 

     if(ord($char_array[$i]) == 34) //ASCII value of '' is 34 
      return false; 

     if(ord($char_array[$i]) == 59) //ASCII value of ; is 59 
      return false; 

     if(ord($char_array[$i]) == 60) //ASCII value of < is 60 
      return false; 

     if(ord($char_array[$i]) == 62) //ASCII value of > is 62 
      return false; 

     if(ord($char_array[$i]) == 35) //ASCII value of # is 35 
      return false; 

     if(ord($char_array[$i]) == 37) //ASCII value of % is 37 
      return false; 

     if(ord($char_array[$i]) == 36) //ASCII value of $ is 36 
      return false; 

     if(ord($char_array[$i]) == 38) //ASCII value of % is 38 
      return false; 

     if(ord($char_array[$i]) == 43) //ASCII value of + is 43 
      return false; 

     if(ord($char_array[$i]) == 58) //ASCII value of : is 58 
      return false; 

     if(ord($char_array[$i]) == 40) //ASCII value of (is 40 
      return false; 

     if(ord($char_array[$i]) == 41) //ASCII value of) is 41 
      return false; 

     if(ord($char_array[$i]) == 42) //ASCII value of * is 42 
      return false; 

     if(ord($char_array[$i]) == 33) //ASCII value of ! is 33 
      return false; 

     if(ord($char_array[$i]) == 45) //ASCII value of - is 45 
      return false; 

     if(ord($char_array[$i]) == 47) //ASCII value of/is 47 
      return false; 

     if(ord($char_array[$i]) == 60) //ASCII value of < is 60 
      return false; 

     if(ord($char_array[$i]) == 61) //ASCII value of = is 61 
      return false; 

     if(ord($char_array[$i]) == 62) //ASCII value of > is 62 
      return false; 

     if(ord($char_array[$i]) == 63) //ASCII value of ? is 63 
      return false; 

     if(ord($char_array[$i]) == 91) //ASCII value of [ is 91 
      return false; 

     if(ord($char_array[$i]) == 92) //ASCII value of \ is 92 
      return false; 

     if(ord($char_array[$i]) == 58) //ASCII value of : is 58 
      return false; 

     if(ord($char_array[$i]) == 93) //ASCII value of ending bracket is 93 
      return false; 

     if(ord($char_array[$i]) == 94) //ASCII value of^is 94 
      return false; 

     if(ord($char_array[$i]) == 95) //ASCII value of _ is 95 
      return false; 

     if(ord($char_array[$i]) == 96) //ASCII value of ` is 96 
      return false; 

     if(ord($char_array[$i]) == 123) //ASCII value of { is 58 
      return false; 

     if(ord($char_array[$i]) == 124) //ASCII value of | is 124 
      return false; 

     if(ord($char_array[$i]) == 125) //ASCII value of } is 125 
      return false; 

     if(ord($char_array[$i]) == 126) //ASCII value of ~ is 126 
      return false; 

    } //end for 

    return true; 

} //end checkCharacters function 
<form id="login" action="login.php" method="post" accept-charset="UTF-8"> 
<fieldset > 
<legend>Welcome to Scrabble! Login below. </legend> 
<input type="hidden" name="submitted" id="submitted" value="1"/> 

<label for="username" >UserName*:</label> 
<input type="text" name="username" id="username" maxlength="10" /> 

<label for="password" >Password*:</label> 
<input type="password" name="password" id="password" maxlength="10" minlength="8"/> 

<input type="submit" name="Submit" value="Submit" /> 
</form> 
</fieldset> 

$name = $POST['Name']; 
$name_valid = checkCharacters($name); 

$password = $_POST['Password']; 
$password_valid = checkCharacters($password); 

if(($name_valid == false) || ($password_valid == false)) 
     echo "You have entered an invalid username/password combination. Please try again.<br /><br />"; 
</html> 
?> 
+3

你需要關閉('>'?)輸出HTML,然後在你的PHP在返回到PHP時再次打開('<?php')。 – Prisoner

+0

你需要用'<?php'和'?>'標籤將你的PHP代碼與你的HTML分開。您的'

'標記當前正在解析爲PHP – andrewsi

+0

,您在此行之前缺少一個PHP結束標記('?>'):'' –

回答

0

這些行必須是孤立的,因爲它們不是有效的PHP。您之前需要一個關閉的PHP標記,之後需要一個開放的PHP標記。

<form id="login" action="login.php" method="post" accept-charset="UTF-8"> 
<fieldset > 
<legend>Welcome to Scrabble! Login below. </legend> 
<input type="hidden" name="submitted" id="submitted" value="1"/> 

<label for="username" >UserName*:</label> 
<input type="text" name="username" id="username" maxlength="10" /> 

<label for="password" >Password*:</label> 
<input type="password" name="password" id="password" maxlength="10" minlength="8"/> 

<input type="submit" name="Submit" value="Submit" /> 
</form> 
</fieldset> 

這對你來說是有效的:

?> 
<form id="login" action="login.php" method="post" accept-charset="UTF-8"> 
<fieldset > 
<legend>Welcome to Scrabble! Login below. </legend> 
<input type="hidden" name="submitted" id="submitted" value="1"/> 

<label for="username" >UserName*:</label> 
<input type="text" name="username" id="username" maxlength="10" /> 

<label for="password" >Password*:</label> 
<input type="password" name="password" id="password" maxlength="10" minlength="8"/> 

<input type="submit" name="Submit" value="Submit" /> 
</form> 
</fieldset> 
<?php 
0

...或使用定界符

<?php 

if($a == $b){ 

echo <<<_HTML 

<div id="foo">Hello World</div> 

_HTML; // <-- Important! no whitespace before or after ending heredoc syntax 


} 

?>