[php] klasa do pól formularzy

0

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..

0

racja dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1