php注册表单:语法错误[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php注册表单:语法错误[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在编写一个注册新用户表单,应检查一些数据,如果数据正确将数据保存在txt文件中并重新显示表单,但我有一个'解析错误:语法错误,意外结束文件',我确定是非常愚蠢的,我没有看到我需要你们的帮助。

    <?php
    session_start();
    echo "<a href = 'logout.php'>logout</a>";
?>
<!DOCTYPE html>
<html lang="en">
    <body>
    <?php
    include 'logout.php';
    include ('includes/header.php');
    ?>
        <div class="nav">
            <?php
            include ('includes/menu.php');
            ?>
        </div>
                <footer>
            <?php include ('includes/footer.php');?>
        </footer>
    </body>
</html>
<?php
function arrayKey ($array)
    reset($array);
    $arrayKey=key($array);
    return $arrayKey;


function checkTxt ($data)
    $errors = array('error' => '');
    $clean = array();
    $pass = false;
    if(!empty($data))
        if(strlen($data)>30)
            $errors['error'] = 'input too long';
        else
            if(ctype_alpha($data) == false)
                $errors['error'] = 'Must contain only letters';
            else
                $clean['pass'] = $data;
                $pass = true;
            
        
    if ($pass == true) 
        return $clean;
    else 
        return $errors;
    


function checkUserName ($username)
    $errors = array('error' => '');
    $clean = array();
    $pass = false;
    if(!empty($username))
        if(strlen($username)<6)
            $errors['error'] = 'input not long enough';
        else
            if (!ctype_alpha($username)) 
                $errors['error'] = 'No special characters allowed';
            else
                $clean['pass'] = $username;
                $pass = true;
            
        
    if ($pass == true) 
        return $clean;
    else 
        return $errors;
    


function checkPassword ($password)
    $trimPass = trim($password);
    $errorsPass = array('error' => '');
    $clean = array();
    $pass = false;
    if(!empty($trimPass))
        if(strlen($trimPass)<6)
            $errorsPass['error'] = 'input not long enough';
        else
            if (!ctype_alpha($trimPass)) 
                $errorsPass['error'] = 'No special characters allowed';
            else
                $clean['pass'] = $password;
                $pass = true;
            
        
    if ($pass == true) 
        return $clean;
    else 
        return $errorsPass;
    


$output = '';
$form_is_submitted = false;
$errors_detected = false;

$cleanArray = array();
$errorsArray = array();
$dataArray = array();

if(isset($_POST['SUBmit']))
    $form_is_submitted = true;
    if (isset($_POST['title']))
        $cleanArray['title'] = $_POST['title'];
    

    if (isset($_POST['fname'])) 
        $fname = $_POST['fname'];
        $trimFn = trim($fname);
        $lowerFn = strtolower($trimFn);
        $dataArray = checkTxt($lowerFn);
        $keyData = arrayKey($dataArray);
        if ($keyData == 'pass')
            $cleanArray['fname'] = $dataArray[$keyData];
        else
            $errorsArray['fname'] = $dataArray[$keyData];
            $errors_detected = true;
        
    
    $dataArray = array();

    if (isset($_POST['lname'])) 
        $lname = $_POST['lname'];
        $trimLn = trim($fname);
        $lowerLn = strtolower($trimLn);
        $dataArray = checkTxt($lowerLn);
        $keyData = arrayKey($dataArray);
        if ($keyData == 'pass')
            $cleanArray['lname'] = $dataArray[$keyData];
        else
            $errorsArray['lname'] = $dataArray[$keyData];
            $errors_detected = true;
        
    
    $dataArray = array();

    if (isset($_POST['email'])) 
        if (empty($_POST['email']))
            $errors_detected = true;
            $errorsArray = 'Email not entered';
        else 
            $emailGet = $_POST['email'];
            $emailTrim = trim($emailGet);
            if (!filter_var($emailTrim, FILTER_VALIDATE_EMAIL))
                $errorsArray['email'] = 'Invalid email format';
                $errors_detected = true;
            else
                $cleanArray['email'] = $emailTrim;
            
        
    

    if (isset($_POST['username'])) 
        $username = $_POST['username'];
        $trimUsnm = trim($username);
        $lowerUsnm = strtolower($trimUsnm);
        $dataArray = checkUserName($lowerUsnm);
        $keyData = arrayKey($dataArray);
        if ($keyData == 'pass')
            $cleanArray['username'] = $dataArray[$keyData];
        else
            $errorsArray['username'] = $dataArray[$keyData];
            $errors_detected = true;
        
    
    $dataArray = array();

    if (isset($_POST['password'])) 
        $password = $_POST['password'];
        $trimPass = trim($password);
        $dataArray = checkPassword($trimPass);
        $keyData = arrayKey($dataArray);
        if ($keyData == 'pass')
            $cleanArray['password'] = $dataArray[$keyData];
        else
            $errorsArray['password'] = $dataArray[$keyData];
            $errors_detected = true;
        
    

if($form_is_submitted == true && $errors_detected == false)
    $dir = '/home/sbau01/public_www/php/fma/data';
    if (is_dir($dir))
        $handleDir = opendir('/home/sbau01/public_www/php/fma/data');
        while(false !==($file = readdir($handleDir)))
            $path = "/home/sbau01/public_www/php/fma/data/".$file;
            if(is_file($path))
                $handle =  fopen($path, 'a');
                $text = $cleanArray['fname'].' '.$cleanArray['lname'].' '.$cleanArray['email'].' '.$cleanArray['username'].' '.$cleanArray['password']. PHP_EOL;
                $result = fwrite($handle, $text);
                if($result == false)
                    $formsErorrs = '<p>Oops! data not written</p>';
                
                else
                    $formsErorrs = '<p>Thank you for register with us. Yours details has been saved </p>';
                    $fullName = htmlentities($cleanArray['fname']).' '.htmlentities($cleanArray['lname']);
                
                fclose($handle);
            
            else
                $formsErorrs= '<p>Oops!!! file  has not been found >>>  '.$path.'</p>';
            
        closedir($handleDir);
        $output= '<p>Registration form has been submitted</p>';
    else
       $formsErorrs = '<p>Oops, the file has NOT been found!!!</p>'; 
    

else
    $self = htmlentities($_SERVER['PHP_SELF']);
    $errmsg = '';
    if($form_is_submitted === true)
        foreach($errorsArray as $error)
            $errmsg = $errmsg.'<p>'.£error.'</p>';                  
           
    
    if (isset($cleanArray['fname'])) 
        $firstN = htmlentities($cleanArray['fname']);
     
    else 
        $firstN = '';
    
    if (isset($cleanArray['lname'])) 
        $lastN = htmlentities($cleanArray['lname']);
     
    else 
        $lastN = '';
    
    if (isset($cleanArray['email'])) 
        $email = htmlentities($cleanArray['email']);
     
    else 
        $email = '';
    
    if (isset($cleanArray['username'])) 
        $userN = htmlentities($cleanArray['username']);
     
    else 
        $userN = '';
    
    if (isset($cleanArray['password'])) 
        $pass = htmlentities($cleanArray['password']);
     
    else 
        $pass = '';
    
    $output = '<form action="'.$self.'" method="post">
        <fieldset>
            <legend>Details:</legend>
                <label for="tl">Title:</label>
                    <select name="title">
                        <option value="Mr">Mr.</option>
                        <option value="Miss">Miss</option>
                        <option value="Mrs">Mrs.</option>
                    </select>
                <div>
                    <label for="fn">First Name:</label>
                    <input type="text" name="fname" id="fn" value="' . $firstN . '" />
                </div>
                <div>
                    <label for="ln">Surame:</label>
                    <input type="text" name="lname" id="ln" value="' . $lastN . '" />
                </div>
                <div>
                    <label for="email">Email:</label>
                    <input type="text" name="email" id="email" value="' . $email . '" />
                </div>
                <div>
                    <label for="un">Username:</label>
                    <input type="text" name="username" id="un" value="' . $userN . '" />
                </div>
                <div>
                    <label for="pw">Password:</label>
                    <input type="password" name="password" id="pw" value="'.$pass.'"/>
                </div>
                <input type="submit" name="SUBmit" value="SUBMIT" />
        </fieldset>
    </form>';

$newUser = array ($cleanArray, $errorsArray);
echo $output;
echo $errmsg;
?>
答案

第104行的代码缺少大括号。

 if(isset($_POST['SUBmit']))
    $form_is_submitted = true;
    if (isset($_POST['title']))
        $cleanArray['title'] = $_POST['title'];
    

以上是关于php注册表单:语法错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用php和mysql创建注册和登录表单,并且错误无法在注册表单上复制[重复]

SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]

在 PHP 中插入 MySQL 表时出现语法错误 [重复]

PHP PDO准备语句给出“无效语法”错误[重复]

PHP函数返回MySQL语法错误[重复]

php if then else语句语法错误某处[重复]