thinkphp遇到_URL_报错,一般是代码哪里出错了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp遇到_URL_报错,一般是代码哪里出错了?相关的知识,希望对你有一定的参考价值。

:(
非法操作:_URL_
错误位置
FILE: E:\XAMPP\htdocs\thinkphp\ThinkPHP\Library\Think\Controller.class.php  LINE: 170
TRACE
#0 E:\XAMPP\htdocs\thinkphp\ThinkPHP\Library\Think\Controller.class.php(170): E('\xE9\x9D\x9E\xE6\xB3\x95\xE6\x93\x8D\xE4\xBD\x9C:_U...')
#1 [internal function]: Think\Controller->__call('_URL_', '')
#2 E:\XAMPP\htdocs\thinkphp\ThinkPHP\Library\Think\App.class.php(114): ReflectionMethod->invokeArgs(Object(Home\Controller\FormController), Array)
#3 E:\XAMPP\htdocs\thinkphp\ThinkPHP\Library\Think\App.class.php(204): Think\App::exec()
#4 E:\XAMPP\htdocs\thinkphp\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#5 E:\XAMPP\htdocs\thinkphp\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#6 E:\XAMPP\htdocs\thinkphp\index.php(24): require('E:\\XAMPP\\htdocs...')
#7 main
ThinkPHP3.2.3 Fast & Simple OOP PHP Framework -- [ WE CAN DO IT JUST THINK ]

参考技术A __URL__才能解析
下面左右两边各两个下划线追问

没懂是什么意思。。。。
我是新手,刚入门,是按照thinkphp快速入门第二章的例子一步一步做的,但是会有这个报错。。。我知道在地址栏里把_URL_这个删去,就能读到正确的地址...\Home\index\insert。但是提交表单后,自动跳转的地址就总在地址栏里多了一个...\Home\index\_URL_\insert。这个问题怎么解决?或者说自动跳转的URL设置是在哪里?

参考技术B __URL__ 是一个框架中定义的常量来的,url旁边是两个下划线 是__URL__ 而不是_URL_

thinkphp 学习_4中URL模式

ThinkPHP有四种url模式:

0 普通模式 http://localhost/imooc/index.php?m=Index&a=user&id=1

    普通模式也就是传统的GET传参方式来指定当前访问的模块和操作,出现了m和其他页面后端取值有冲突的情况下要么 ,后端取值方式,要么改写 不同模式的命名

 ‘VAR_MODULE‘ => ‘module‘, // 默认模块获取变
 ‘VAR_CONTROLLER‘ => ‘controller‘, // 默认控制器获取变量
 ‘VAR_ACTION‘ => ‘action‘, // 默认操作获取变量

1默认模式 pathinfo模式 http://localhost/imooc/index.php/Index/user/id/1.html

   提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境:

    修改/controller/action/params.html  的分割配置 ‘URL_PATHINFO_DEPR‘=>‘-‘,

2重写模式 http://localhost/imooc/Index/user/id/1.html

   重写模式是子啊pathinfo的基础上得再改进:可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。

   Apache则需要在入口文件的同级添加.htaccess文件:

<IfModule mod_rewrite.c>
 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_FILENAME} !-f

 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>


3兼容模式 http://localhost/imooc/index.php?s=/Index/user/id/1.html

  兼容模式配合Web服务器重写规则的定义,可以达到和REWRITE模式一样的URL效果。

  apache的.htaccess配置写法

<IfModule mod_rewrite.c> 
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>

 

以上是关于thinkphp遇到_URL_报错,一般是代码哪里出错了?的主要内容,如果未能解决你的问题,请参考以下文章

Thinkphp_基础URL模式

ThinkPHP框架 _ 学习3

thinkphp框架的路径

thinkphp表单提交问题

请高手帮我看看下边的代码哪里错了, <?php include("conn.php"); $url=$_SERVER["REQUEST_URL"]; ?&

用phpstudy 2016搭建环境访问thinkphp出现403 急!!!