piszę klasę do walidacji i obsługi formularzy
niestety działanie funkcji mysqli_real_escape_string nie działa
[quote]
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, string given in ... on line 20[/quote]
oto kod pliku do połączenia z bazą danych:
<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'comicsite');
@$db = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
if (mysqli_connect_errno()) {
echo 'Error: Connection with database failed (';
switch (mysqli_connect_errno()) {
case 2005:
echo 'unknown host';
break;
case 1045:
echo 'bad login or password';
break;
case 1049:
echo 'bad database name';
break;
}
echo ').';
}
?>
oto kod pliku który po wysłaniu formularza zwraca błąd:
<?php
include('../../mysqli.php');
class text {
var $data;
function __construct($dat) {
$this->data = $dat;
}
function EscapeData () {
global $db;
if (ini_get('magic_quotes_gpc')) {
$this->data = stripslashes($this->data);
}
return mysqli_real_escape_string($this->data, $db);
}
function CheckData () {
if (empty($this->data)) {
return FALSE;
} else {
return $this->EscapeData();
}
}
}
if (isset($_POST['submit']))
{
$poll = new text($_POST['test']);
if ( $poll->CheckData() ) {
echo 'yes';
} else {
echo 'no';
}
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" size="20" name="test">
<br />
<input type="submit" value="send" name="submit">
</form>
o ile się nie mylę to źle się odwołuję do zmiennej $db wewnatrz klasy..