проблема mysqli_connect - PullRequest
0 голосов
/ 11 июня 2011

Это мой скрипт входа в систему;

<?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");
}
?>

in 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. Но такого нет. Любая идея?

Ответы [ 3 ]

5 голосов
/ 11 июня 2011

В вашем 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 здесь для руководства по его установке.

В противном случае, вы можете использовать класс PDO (который находится в установке dafault, так какphp 5.1), который имеет большие преимущества даже по сравнению с mysqli, и это действительно полезно, чтобы сделать вашу базу данных более безопасной.

3 голосов
/ 11 июня 2011

Расширение Mysqli не установлено или не включено.

Как выполнить исправление, которое зависит от вашей среды.

0 голосов
/ 11 июня 2011

Если вы используете MySQLi-класс, вы должны использовать его Objective Oriented:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

Проверьте справочную страницу .Используемый вами вызов является просто псевдонимом для __construct() -метода.Посмотрите, работает ли у вас OO-способ.

Кроме того, не доверяйте вводу пользователя.Используйте PreparedStatement для своего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...