@ubunta2 прислушайся к @romach когда я изучал циклы и мне было очень сложно их понимать, тогда я начал расписывать, всё что я делаю и наконец-то полностью разобрался https://habrahabr.ru/sandbox/96493/
@Dimon2x если не ошибаюсь, циклы проходят в 9 классе по школьной программе, а в 11 классе есть даже ЕГЭ задания с рекурсиями и т.д. ) не знаю в чем сложность их понимания.
PHP: <?php error_reporting(E_ALL & ~E_NOTICE); // Если константа DEBUG определена, работает отладочный // вариант, в частности выводится подробные сообщения об // исключительных ситуациях, связанных с MySQL и ООП define("DEBUG", 1); // сейчас выставлен сервер локальной машины $dblocation = "localhost"; // Имя базы данных, на хостинге или локальной машине $dbname = "oop_site"; // Имя пользователя базы данных $dbuser = "root"; // и его пароль $dbpasswd = ""; // Устанавливаем соединение с базой данных $dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) exit("<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); // Выбираем базу данных if(! @mysql_select_db($dbname,$dbcnx)) exit("<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); @mysql_query("SET NAMES 'cp1251'"); if(!function_exists('get_magic_quotes_gpc')) { function get_magic_quotes_gpc() { return false; } } ?> Fatal error: Uncaught Error: Call to undefined function mysql_connect() in E:\OpenServer\domains\php\03\3.1.4\config.php:18 Stack trace: #0 E:\OpenServer\domains\php\03\3.1.4\security_mod.php(6): require_once() #1 {main} thrown in E:\OpenServer\domains\php\03\3.1.4\config.php on line 18
какое расширение? --- Добавлено --- книга 2009 года --- Добавлено --- уже никак не получится сделать как в книге сейчас? Можно пропускать этот момент? --- Добавлено --- Код (Text): <?php error_reporting(E_ALL & ~E_NOTICE); // Если константа DEBUG определена, работает отладочный // вариант, в частности выводится подробные сообщения об // исключительных ситуациях, связанных с MySQL и ООП define("DEBUG", 1); // сейчас выставлен сервер локальной машины $dblocation = "localhost"; // Имя базы данных, на хостинге или локальной машине $dbname = "oop_site"; // Имя пользователя базы данных $dbuser = "root"; // и его пароль $dbpasswd = ""; // Устанавливаем соединение с базой данных $dbcnx = mysqli__connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) exit("<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); // Выбираем базу данных if(! @mysqli__select_db($dbname,$dbcnx)) exit("<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); @mysqli__query("SET NAMES 'cp1251'"); if(!function_exists('get_magic_quotes_gpc')) { function get_magic_quotes_gpc() { return false; } } ?> Fatal error: Uncaught Error: Call to undefined function mysqli__connect() in E:\OpenServer\domains\php\03\3.1.4\config.php:18 Stack trace: #0 {main} thrown in E:\OpenServer\domains\php\03\3.1.4\config.php on line 18
У тебя какая версия PHP? --- Добавлено --- А, а как это вообще? mysqli__connect, должна быть одна ) mysqli_connect
@ubunta2 получится, если транслируешь из старого расширения в новое. Там всё просто - добавить подключение первым аргументом или на ООП перейти.
если не можешь по книге, тогда начни с видеокурса, я рекомендую PHP Start https://php-start.com/course/php-start-theory
как это сделать пока не знаю поменял и не получилось. Позже когда научусь смогу. --- Добавлено --- спасибо его тоже позже посмотрю
PHP: <?php error_reporting(E_ALL & ~E_NOTICE); // Инициируем сессию session_start(); // Выводим содержимое суперглобального массива $_SESSION echo "<pre>"; print_r($_SESSION); echo "</pre>"; ?> откуда это взялось в коде нет такого Array ( [name] => value [arr] => Array ( [0] => first [1] => second [2] => third ) )
PHP: <?php error_reporting(E_ALL & ~E_NOTICE); // Устанавливаем соединение с базой данных require_once("config.php"); // Если пользователь не авторизовался - авторизуемся if(!isset($_SERVER['PHP_AUTH_USER'])) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } else { // Проверяем переменные $_SERVER['PHP_AUTH_USER'] // и $_SERVER['PHP_AUTH_PW'], чтобы предотвратить // SQL-инъекцию if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE name='{$_SERVER[PHP_AUTH_USER]}'"; $lst = @mysql_query($query); // Если найдена ошибка в SQL-запросе - // открываем диалоговое окно ввода пароля if(!$lst) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } // Если такого пользователя нет - // открываем диалоговое окно ввода пароля if(mysql_num_rows($lst) == 0) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } // Если все проверки пройдены, сравниваем хэши паролей $pass = @mysql_fetch_array($lst); if(md5($_SERVER['PHP_AUTH_PW']) != $pass['pass']) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } } ?> Fatal error: Uncaught Error: Call to undefined function mysql_escape_string() in E:\OpenServer\domains\php\03\3.1.4\security_mod.php:22 Stack trace: #0 {main} thrown in E:\OpenServer\domains\php\03\3.1.4\security_mod.php on line 22
Код (Text): <?php error_reporting(E_ALL & ~E_NOTICE); // Устанавливаем соединение с базой данных require_once("config.php"); // Если пользователь не авторизовался - авторизуемся if(!isset($_SERVER['PHP_AUTH_USER'])) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } else { // Проверяем переменные $_SERVER['PHP_AUTH_USER'] // и $_SERVER['PHP_AUTH_PW'], чтобы предотвратить // SQL-инъекцию if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mysqli_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mysqli_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE name='{$_SERVER[PHP_AUTH_USER]}'"; $lst = @mysqli_query($query); // Если найдена ошибка в SQL-запросе - // открываем диалоговое окно ввода пароля if(!$lst) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } // Если такого пользователя нет - // открываем диалоговое окно ввода пароля if(mysqli_num_rows($lst) == 0) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } // Если все проверки пройдены, сравниваем хэши паролей $pass = @mysqli_fetch_array($lst); if(md5($_SERVER['PHP_AUTH_PW']) != $pass['pass']) { Header("WWW-Authenticate: Basic realm=\"Admin Page\""); Header("HTTP/1.0 401 Unauthorized"); exit(); } } ?> Warning: mysqli_escape_string() expects exactly 2 parameters, 1 given in E:\OpenServer\domains\php\03\3.1.4\security_mod.php on line 22 Warning: mysqli_escape_string() expects exactly 2 parameters, 1 given in E:\OpenServer\domains\php\03\3.1.4\security_mod.php on line 24 Warning: Cannot modify header information - headers already sent by (output started at E:\OpenServer\domains\php\03\3.1.4\security_mod.php:22) in E:\OpenServer\domains\php\03\3.1.4\security_mod.php on line 34 Warning: Cannot modify header information - headers already sent by (output started at E:\OpenServer\domains\php\03\3.1.4\security_mod.php:22) in E:\OpenServer\domains\php\03\3.1.4\security_mod.php on line 35
Эта ошибка указывает на то, что ты использовать header(); после echo или другие функции которые выводят данные. https://php.ru/manual/mysqli.real-escape-string.html