2013-09-27 81 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 


} 

?>