PHP学习的坑

1)IIS8中设置thinkphp直接使用Control/class/function的方法访问网址

2)无法链接到某个Control/class/function

3)直接连接MS SQL

4)引用weui.min.css的问题

1)IIS8中设置thinkphp5直接使用Control/class/function的方法访问网址

    环境:iis8+php5.6+thinkphp5.1 

    问题的表现:无法使用这种方法访问

    解决过程:1.1)按照网上的方法,确认thinkphp能正常工作,能够正确显示thinkphp的欢迎页面,修改index/index/index方法里面的内容,欢迎页面是有反映的

                   1.2)找到网上的web.config中增加这个配置,但是好像也没有什么用

       <rewrite>
            <rules>
                <rule name="OrgPage" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="^(.*)$" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>

           1.3)在其他地方看到直接输入网址 public/index.php/Control/class/function  这种方法可以正常访问

                1.4)其它地方说到修改route/route.php,结果进去修改还是不行的。猜想的原因是public/index.php是启动文件,都没有启动,route/route.php无法作用起来.

                1.5)看到其它地方说到在根目录下增加一个index.php之类,突然有想法了,将上面的

<action type="Rewrite" url="index.php/{R:1}" />
修改为
<action type="Rewrite" url="public/index.php/{R:1}" />

            1.6)于是,可以正常工作了

  2)无法链接到某个Control/class/function

        问题描述:index/user/hello 这个方法访问就出错

        问题解决过程:

              2.1)修改另外一个方法,比如index/user/hellot ,这个是没有任何问题的,但是就是index/user/hello方法不行

              2.2)仔细查找,想起之前在route.php有设定             

Route::get('hello2','index/user/hello');

         2.3)去掉这行,发现正常访问了

             2.4)再加上这行,又无法访问了

         总结规律:在route.php中有影射的,就可以使用Control/class/function来访问了

3)直接连接mssql  

网上找到sqlsrv_64,之后找到合适的版本Copy到实际的位置,打开php.ini里面的开关,之后直接连接的语句如下.

注意:$row['UserId'] 中的"UserId" 区分大小写的,必须和数据库保持一致,如果使用"userId"就会出错的(没有伟大的C#方便的)

$conn = sqlsrv_connect('111.111.111.11', array('database'=>‘dbtest','UID'=>'user','PWD'=>'passwordtest'));
if(!$conn) {
echo 'Could not connect';
die('Could not connect: ' . mssql_error());
}
//echo "OK";
$sql = "select top 10 * from user";
$params = array();
$stmt = sqlsrv_query( $conn, $sql, $params);
//echo "OK";
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) 
{ 
echo $row['UserId'].", ".$row['UserAccount']."\n<br/>"; 
}
/* Free statement and connection resources. */ 
sqlsrv_free_stmt( $stmt); 
sqlsrv_close( $conn);

 

4)引用weui.min.css的问题

在网上找到一个weui.min.css,引用后出现样式问题:使用带提示文字的输入,demo中看到的是一行的,但是我的页面中无论在电脑上还是在手机中显示,都是提示文字一行,

输入框是另起一行,字体大小还不一样。

我是各种测试,加上了下面的代码都没什么用。

<body ontouchstart>
    <div class="page">

以为文件的目录写错了,看源代码之后直接点击,也能正确的查看到文件内容。

突然灵光一闪,直接从官网下了没有压缩的weui.css,重新引用,结果世界正常的,人生完美了。

这也是个奇葩的问题,谁能想到压缩css也会出现问题呢。

 

posted @ 2019-04-16 09:28  老飞飞  阅读(286)  评论(0编辑  收藏  举报