-2

我还没有为这个登录表单创建一个数据库来发布...我收到一个错误,说语法错误,第 118 行的意外'<'。这个代码应该检查无效字符并显示错误消息,如果找到列出的无效字符。对于这篇文章的代码格式不正确,我深表歉意。

<!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>
?>
4

2 回答 2

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
于 2013-09-27T15:55:48.490 回答
0

...或使用 heredoc 语法

<?php

if($a == $b){

echo <<<_HTML

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

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


}

?>
于 2013-09-27T16:13:41.357 回答