Php mysqli_连接问题
这是我的登录脚本Php mysqli_连接问题,php,mysqli,Php,Mysqli,这是我的登录脚本 <?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 sinirlam
<?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");
}
?>
mysqli\u connect()
。我已经在我的php配置文件中搜索了这个模块,但是没有这样的模块。有什么想法吗 Mysqli扩展未安装或未启用
如何进行修复取决于您的环境。如果您使用的是MySQLi类,您应该使用面向目标的:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
看看这本书。您正在使用的调用只是\u construct()
-方法的别名。看看OO方法是否适合您
另外,不要相信用户的输入。使用a进行查询。在您的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手册中的说明进行安装
否则,您可能希望使用该类(自php 5.1以来一直在dafault安装中),该类甚至比mysqli有很大的优势,而且它对于提高数据库的安全性非常有用。服务器是否运行PHP5或更高版本?如果未启用mysqli,该对象也将不可用。默认情况下,它应该被激活(并不意味着它不能被停用)…我认为有趣的问题是PHP5是否正在运行,因为适用于windows的PHP 5.0中引入了MySQLi类。在linux中是。所以。但是您必须安装PHP文件才能找到它们。根据您的系统,它们可能不会运行。我要补充一点,您可以通过上的包管理器安装支持类似linux的“yum安装php-mysql”(用于基于RHEL的发行版)在php manuel中,它说:对于PHP5.3.0及更高版本,mysqli默认使用MySQL本机驱动程序。这比libmysql有很多好处。安装PHP5.3.x可能会在不编辑php.ini的情况下修复问题?@Recep您当前的版本和环境是什么?不过,如果可以,我建议尝试取消注释这些行(更改后重新启动服务器),这会更简单。@damien 5.2.17,转售服务器。我可以访问WHM控制台。我对这一点很陌生
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so