请教PHP的函数调用问题
我想实现在接收到的表单中,判断输入的用户名和密码是否正确。
我经过测试,把ExecuteSclar这个函数放到loginpost.php里,就可以显示运行结果,请问如果我想把ExecuteSclar放到一个头文件里,供更多的页面调用该怎么写,才可以调用头文件里的ExecuteSclar,谢谢我的头文件
conn.php<?php 
function ExecuteSclar(string $sql)
{
$dbserver = "127.0.0.1";
$dbname = "YiMeng";
$dbuser = "sa";
$dbpassword = "d37fvv"; $id = mssql_connect($dbserver,$dbuser,$dbpassword);
$db = mssql_select_db($dbname,$id) or die("无法连接数据库"); $result = mssql_query($sql) or die("sql语句执行失败");
$row = mssql_fetch_array($result); $c =$row[0];
return $c;
}
?>loginpost.php
接收表单文件
<html>
<head></head>
<body>
<?php
include "conn.php";
 
$username = $_POST['txtUserName'];
$password = $_POST['txtPassword'];
 ?>
 <br />
 <?php $sql = "SELECT COUNT(*) AS c FROM Member WHERE username = '". $username . "' AND pwd = '". $password ."'";$c =ExecuteSclar($sql); ?><br>
 c:
 <?php echo $c; ?>
</body>
</html>

解决方案 »

  1.   

    你做的已经很正确了.
    function ExecuteSclar(string $sql)
    =>
    function ExecuteSclar($sql)然后再修改一下你的检测函数,不是很完美.
      

  2.   


    谢谢你的回复,我也修改了一下函数(把string去掉了)
    但是我这个页面上还是没有显示啊
    按我所设想的运行结果应该是 c:1我是php的初学者,以前是学asp.net过来的还麻烦多指教 谢谢
      

  3.   

    die — Equivalent to exit()
    exit — Output a message and terminate the current script也就是说,你的函数内用了die这个函数, 可能随时因为错误终止脚步本的执行.
    只能慢慢调试了.
      

  4.   

    但是我如果把函数里的东西拷贝到loginpost.php
    (接收表单文件) 就可以正常运行,请问这是什么原因啊
      

  5.   

    php 里没有断点这玩意,
    所以你每隔一段位置,输出点东西调试一下。还有,网上很多的数据库类,可以考虑用一下数据库类。
      

  6.   

    <?php 
    function ExecuteSclar($sql)
    {
    echo "start ExecuteSclar";
    $dbserver = "127.0.0.1";
    $dbname = "YiMeng";
    $dbuser = "sa";
    $dbpassword = "d37fvv"; $id = mssql_connect($dbserver,$dbuser,$dbpassword);
    $db = mssql_select_db($dbname,$id) or die("无法连接数据库"); $result = mssql_query($sql) or die("sql语句执行失败");
    $row = mssql_fetch_array($result); $c =$row[0];
    echo "end ExecuteSclar";
    return $c;
    }
    ?>我把函数调用的开始和返回的地方都加了 echo 
    但是运行的时候还是不显示任何东西啊
      

  7.   

    文件的确include进去了吗?
    用require_once()吧  
      

  8.   

    什么叫不行?页面显示啥啊?
    你在$c =ExecuteSclar($sql);的前面echo一下
      

  9.   

    我在ExecuteSclar($sql)的函数里都加上echo了 
    echo "start ExecuteSclar";
    echo "end ExecuteSclar";
    如果调用这个函数了 应该是可以输出start ExecuteSclar和end ExecuteSclar
    但是现在页面上什么显示都没有
      

  10.   

    请lz在$c =ExecuteSclar($sql);的前面echo一下,我怀疑压根就没执行函数
    万一没执行 你在函数里面echo根本就无从谈起另外说说你这2个文件的路径关系 
      

  11.   

    test.php文件
    <?php 
    function ExecuteSclar($sql)
    {
    $dbserver = "127.0.0.1";
    $dbname = "dbname";
    $dbuser = "root";
    $dbpassword = "dbpassword";$id = mysql_connect($dbserver,$dbuser,$dbpassword);
    $db = mysql_select_db($dbname,$id) or die("无法连接数据库");$result = mysql_query($sql) or die("sql语句执行失败");
    $row = mysql_fetch_array($result);$c =$row[0];
    return $c;
    }?>
    入口文件
    <html>
    <head></head>
    <body>
    <?php
    include "test.php"; ?>
     <br />
     <?php $sql = "SELECT COUNT(*) AS c FROM dbname";$c =ExecuteSclar($sql); ?><br>
     c:
     <?php echo $c; ?>
    </body>
    </html>
      

  12.   

    请lz在$c =ExecuteSclar($sql);的前面echo一下,我怀疑压根就没执行函数
    万一没执行 你在函数里面echo根本就无从谈起另外说说你这2个文件的路径关系 
      

  13.   

    谢谢各位朋友 
    果然是路径的问题include_once "../public/conn.php";这样就可以了 我想再问问 可以从根直接引用吗?例如/public/conn.php目录结构是
    网站根目录下有Member目录和Public目录
    Member目录下有loginpost.php
    Pulbic目录下有conn.php
      

  14.   

    以前asp.net写习惯了 呵呵
    php函数没有也不提示一下 
    报个错也好一些嘛