这是我的登录脚本;
<?php
$username = $_POST['username']; //kullanici adi
$password = $_POST['password']; //parola
$msg ='';
if(isset($username, $password)) {
ob_start();
include('ayar.php');
// güvenlik amaçli sql injection önlemek için sinirlama koy
$dbC = mysqli_connect($vthost, $vtkullanici, $vtsifre, $vtadi)
or die('Veritabanina baglanilamadi');
$myusername = stripslashes($username);
$mypassword = stripslashes($password);
$myusername = mysqli_real_escape_string($dbC, $myusername);
$mypassword = mysqli_real_escape_string($dbC, $mypassword);
$sql="SELECT * FROM login_admin WHERE user_name='$myusername' and user_pass=SHA('$mypassword')";//SHA çöz
$result=mysqli_query($dbC, $sql);
// kayit kontrol et
$count=mysqli_num_rows($result);
// kayit eslemesi kontrol et
if($count==1){
// esmeleme varsa oturum aç ve yönlendir
session_register("admin");
session_register("password");
$_SESSION['name']= $myusername;
header("location:raporla.php");
}
else {
$msg = "Yanlis kullanici adi yada parola";
header("location:index.php?msg=$msg");
}
ob_end_flush();
}
else {
header("location:index.php?msg=Kullanici adi yada parola girmediniz");
}
?>
在ayar.php
我有主机,用户名等。那里没有问题。但问题是它在本地和任何其他主机上都很好用,但在这个主机上却没有。这是服务器错误日志所说的内容。
[11-Jun-2011 02:01:26] PHP Fatal error: Call to undefined function mysqli_connect() in /home/bankalar/public_html/rapor/giris.php on line 9
mysqli_connect()
。我在php conf上搜索了这个模块。但是没有这样的。任何的想法?
答案 0 :(得分:5)
在您的 php.ini (在Windows下),您应该有以下几行:
...
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
...
请务必将mysqli注释掉(之前删除;
)
编辑:正如@datasage所指出的,如果您运行的Linux发行版行将有不同的命名,例如:
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so
如果您在共享主机上并且无法访问php.ini,我建议您删除它们并要求启用它。
如果您有私人服务器,并且没有安装mysqli扩展程序,请按照php手册说明here获取有关如何安装它的指南。
否则,您可能希望使用PDO类(自php 5.1以来的dafault安装),这比mysqli具有很大的优势,并且使数据库更安全是非常有用的。
答案 1 :(得分:3)
未安装Mysqli扩展程序或未启用它。
如何解决这个问题取决于您的环境。
答案 2 :(得分:0)
如果您正在使用MySQLi类,则应使用Objective Oriented:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
查看manual page。您正在使用的调用只是__construct()
- 方法的别名。看看OO-way是否适合您。
另外,不要相信用户的输入。使用PreparedStatement进行查询。