PHP:注册页面上出现语法错误意外“require_once”

Posted

技术标签:

【中文标题】PHP:注册页面上出现语法错误意外“require_once”【英文标题】:PHP: sytax error unexpected 'require_once' on registration page 【发布时间】:2015-06-16 04:22:48 【问题描述】:

我正在尝试从验证到 php 页面的 html 表单创建一个注册页面(下面提供的代码),但是,当我提交表单时,我收到以下错误:

(!) 解析错误:语法错误,path/user_create.php 中出现意外的 'require_once' (T_REQUIRE_ONCE)

以下是将表单中的输入输入数据库的代码:

<?php
session_start();
require_once __DIR__.'config.php';


if(isset($_POST['submit']))
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];

$sql = "INSERT INTO users ( username, password, email) VALUES ( :username, :password, :email )";

$query = $dbh->prepare( $sql );
$query->execute( array( ':username'=>$username, ':password'=>$password, ':address'=>$address, ':email'=>$email ) );

$result = $query->execute( array( ':username'=>$username, ':password'=>$password, ':email'=>$email ) );

if ( $result )
  echo "<p>Your Registration is complete</p>";
 else 
  echo "<p>There was a problem with registration, please try again.</p>";



?>

谁能告诉我如何阻止这个错误?不确定是语法错误还是其他原因?

【问题讨论】:

在 require_once 后面加上括号。 @anantkumarsingh 我认为 OP 没有用 DIR 定义的常量;无法重现错误。您确定向我们展示了您的真实代码和正确的文件吗? require_once(__DIR__.'config.php'); 试试看。应该工作。 真实代码?是的,这是我正在使用的文件,与我显示的完全一样,是的,它是正确的文件。 require_once 不需要括号,它是一种语言结构,而不是函数。 【参考方案1】:

我能看到的唯一错误是缺少斜线。根据手册:

...此目录名称没有尾部斜杠,除非它是 根目录。

所以你需要:

require_once __DIR__.'/config.php';
                      ^ here

【讨论】:

不错的收获!但这并不能解释为什么 OP 会得到 unexpected require_once :) 如果指定的文件不在给定的路径中,require_once 将抛出一个致命错误,因为在上面的行中'/'被遗漏了,这就是它抛出错误的原因......和 ​​ DIR 将给出不带斜线的文档根路径 这就是为什么我认为 OP 没有向我们显示产生此错误的正确文件,或者他没有显示真正的代码,这可能在 require_once 之前有一些东西,或者他有一个 @987654321 @在脚本中 @VinodkumarSaravana 警告会有所不同,它将是运行时错误,而不是解析错误。 @user1830632 有点意外,但很棒!

以上是关于PHP:注册页面上出现语法错误意外“require_once”的主要内容,如果未能解决你的问题,请参考以下文章

解析错误:语法错误,文件意外结束[重复]

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

在 Laravel 中配置 Autoloader.php [重复]

Whitelabel 错误页面出现意外错误(类型=内部服务器错误,状态=500)。空标识符

语法错误,意外的“”。请,(仅此而已)[关闭]

Zend require_once(library) 意外错误