Всем привет, делаю одну штучку для себя просто для практики. У меня много php файлов, методом ajax проверяю введные данные. Я их хочу объеденить в один php файл.Но возникла проблема : Код (PHP): <?php ini_set('display_errors','On'); error_reporting(E_ALL|E_STRICT); include_once("mysqli.php"); if(isset($_POST['login'])) logins(); //проверка логина и пароля function logins(){ $login = htmlspecialchars($_POST['login']) & strip_tags($_POST['login']); $pass = htmlspecialchars($_POST['pass']) & strip_tags($_POST['pass']); $login = mysqli_real_escape_string($mysqli,$login); // эта $pass = mysqli_real_escape_string($mysqli,$pass); // и эта if (empty($login) & empty($pass)) { echo "5"; exit(); } $chl = mysqli_query($mysqli, "SELECT id FROM a_game WHERE login = '$login'"); $chl = mysqli_fetch_assoc($chl); if (!empty($chl)) { echo "6"; exit(); } } ?> ругается на 2 строчки, я их пометил. Notice: Undefined variable: mysqli in ... Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in ... Без функции все работает на ура. В чем мб проблема?
, отлично спасибо, я просто еще не работал с функциями. Тему пока не закрывайте вдруг еще возникнут проблемы
хД)) Добавлено спустя 1 минуту 48 секунд: Код (PHP): function stripslashes_deep( $value ) { if ( is_array( $value ) ) { $value = array_map ( 'stripslashes_deep', $value ); } elseif ( is_object( $value ) ) { $vars = get_object_vars( $value ); foreach ( $vars as $key=>$data ) { $value->{$key} = stripslashes_deep( $data ); } } elseif ( is_string( $value ) ) { $value = stripslashes ( $value ); } return $value; } function __SQLiteRay_magic_quotes() { if ( get_magic_quotes_gpc() ) { $_GET = stripslashes_deep( $_GET ); $_POST = stripslashes_deep( $_POST ); $_COOKIE = stripslashes_deep( $_COOKIE ); } // GET + POST. $_REQUEST = array_merge ( $_GET, $_POST ); } __SQLiteRay_magic_quotes(); на всякий случай вдруг возникнут с \" проблемы
а можно как нибудь сделать что бы была супер глобальная переменная $mysqli, у меня почти все функции юзают бд, что бы каждый раз не писать?
http://php.net/manual/ru/language.oop5.static Добавлено спустя 4 минуты 52 секунды: Если кратенько, то тебе нужно: Код (PHP): class Registry { public static $sql_connection = null;//Можно сразу присвоить подключение к БД; } //Если сразу не присвоил коннект, то, получив его, присваиваешь к Registry::$sql_connection; Потом просто используй Registry::$sql_connection для передачи в функции мускула. Эта переменная будет видна отовсюду и дальше.
так делаю Код (PHP): class db { public static $connect = "new mysqli(\"localhost\", 'root', 'root', 'mysql')"; } так подключаюсь Код (PHP): $res = mysqli_query(db::$connect, "SELECT id FROM a_game WHERE login = '$login' AND pass = '$pass'"); что не так?
да емае, как надо ?)) я чет вообще не врублюсь. внатуре Добавлено спустя 4 минуты 19 секунд: пожалуйста помоги
Вот придут КолЛегИ по форуму и рассмеются не над тобой а надо мной. Элементарную вещь не могу докатить Добавлено спустя 4 минуты 20 секунд: Код (PHP): class Arr { public static $HZ = array(array(array(array(array(array(array(array(array(')'))))))))); } function lol() { return Arr::$HZ; } var_dump(lol());
Код (PHP): class Arr { public static $HZ = null; } Arr::$HZ = new PDO( "sqlite:" . dirname( __FILE__ ) . "dfgdsfgdf" ); function lol() { return Arr::$HZ; } var_dump(lol());