Probleem met: mysqli en mysql_real_escape_string!!!
momenteel bezig met een uitgebreid form. Die ik voor de verandering ook maar een keer veilig en netjes wil programeren. Maar nou loop ik steeds tegen een error aan waar ik op google niks over kan vinden.
dit is de error:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\root\www\bla\aanmelden.php on line 8
begrijpen doe ik het dus niet helemaal.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
require_once ("core/connect.inc.php");
$mysqli_db = new mysqli_db;
$mysqli_db->mysqli_con("localhost", "root", "", "bla");
function safe_db_html ($data)
{
$data1 = mysql_real_escape_string($data);
$data2 = strip_tags($data1);
return $data2;
}
$username = safe_db_html($_POST['user_name']);
$password1 = safe_db_html($_POST['password1']);
$email = safe_db_html($_POST['email']);
$front_name = safe_db_html($_POST['front_name']);
$back_name = safe_db_html($_POST['back_name']);
$sex = safe_db_html($_POST['sex']);
$birthdate = safe_db_html($_POST['birthdate']);
$newsletter = safe_db_html($_POST['newsletter']);
$terms = safe_db_html($_POST['terms']);
$query = 'INSERT INTO users (username,password) VALUES ("test","bla")';
$mysqli_db->mysqli_put($query);
$mysqli_db->_mysqli_close();
}else{
?>
if ($_SERVER['REQUEST_METHOD'] == "POST") {
require_once ("core/connect.inc.php");
$mysqli_db = new mysqli_db;
$mysqli_db->mysqli_con("localhost", "root", "", "bla");
function safe_db_html ($data)
{
$data1 = mysql_real_escape_string($data);
$data2 = strip_tags($data1);
return $data2;
}
$username = safe_db_html($_POST['user_name']);
$password1 = safe_db_html($_POST['password1']);
$email = safe_db_html($_POST['email']);
$front_name = safe_db_html($_POST['front_name']);
$back_name = safe_db_html($_POST['back_name']);
$sex = safe_db_html($_POST['sex']);
$birthdate = safe_db_html($_POST['birthdate']);
$newsletter = safe_db_html($_POST['newsletter']);
$terms = safe_db_html($_POST['terms']);
$query = 'INSERT INTO users (username,password) VALUES ("test","bla")';
$mysqli_db->mysqli_put($query);
$mysqli_db->_mysqli_close();
}else{
?>
Gewijzigd op 01/01/1970 01:00:00 door Lennart
Dus of je gebruikt overal mysqli of je gebruikt overal mysql
Overigens is binnen de functie de database connectie niet bekend enzo gaat het ook nog eens over z'n nek....
En opzich als je mysqli gebruikt gebruik dan in ieder geval de object methode.
En het is misschien ook nog wel aan te raden eens goed te kijken naar je class methods
mysql(i)_real_escape_string houdt rekening met de database character encoding, vandaar dat hij een verbinding met de database nodig heeft.
$mysql_db->escape_string($waarde);