Setcookie не работает
Добрый день! Вот решил поделиться своим открытием насчёт функции Setcookie в PHP. При генерации страницы мне нужно чтобы у клиента установился определённое значение в cookie. Поковырявшись с Setcookie и убедившись что оно не работает, я обычно бросал это неблагодарное дело и пользовался JavaScript`ом, однако если у клиента отключены скрипты, то такой фокус не прокатит. Так почему же Setcookie не работает? В основном это две причины: очевидная и не очень. Очевидная причина: Как пишут нам в инструкции cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов <html> и <head>, а также пустые строки и пробельные символы. Да, это очень важное замечание, поскольку, проигнорировав его, вы получите сообщение об ошибке следующего содержания: Cannot modify header information — headers already sent by (output started at… Типа невозможно изменить заголовки страницы, так…
Получить результат выполнения PHP скрипта в PHP
Долгий способ, но обычно работает всегда: $htm = file_get_contents(‘http://url/hashinfo.php’); echo $htm; Быстрый способ, но не на всех хостингах работает: ob_start(); include(‘hashinfo.php’); $htm = trim(substr(ob_get_clean(), 3)); //Обрезаем 3 первых лишних символа и пробелы с двух сторон echo $htm;
Работа с cookie
Cookie — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Браузер всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для: аутентификации пользователя; хранения персональных предпочтений и настроек пользователя; отслеживания состояния сеанса доступа пользователя; ведения статистики о пользователях. Получать и записывать cookie можно как с помощью JavaScript, так и при помощи PHP. Рассмотрим эти варианты: JavaScript и Cookie <script> //Функция получения куков function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(«;»); for (i=0;i<ARRcookies.length;i++) { x=ARRcookies[i].substr(0,ARRcookies[i].indexOf(«=»)); y=ARRcookies[i].substr(ARRcookies[i].indexOf(«=»)+1); x=x.replace(/^s+|s+$/g,»»); if (x==c_name) { return unescape(y); } } } //Функция записи куков (имя, значение, время_жизни_в_днях) function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); //Если в конце убрать + «; path=/», то кук будет доступен только для текущей страницы //Если не убирать, то кук будет доступен для любой страницы в пределах домена var c_value=escape(value) + ((exdays==null) ? «»…
PHP Отправка письма с чужого E-mail
Вообще говоря, отправить E-mail с помощью PHP-скрипта — тривиальная задача. Делается это так: <?php //Отправляем Email и проверяем на удачу if (mail(«send_to@mail.ru», «Тема_письма», «Сообщение_в_письме»)){ echo «сообщение принято к доставке»; }else{ echo «что-то пошло не так»; } ?> В результате выполнения скрипта на адрес send_to@mail.ru придет письмо с непонятного адреса Вашего почтового сервера. Чтобы изменить адрес отправителя всего-то нужно указать дополнительный параметр From вот так: <?php //Отправляем Email и проверяем на удачу if (mail(«send_to@mail.ru», «Тема_письма», «Сообщение_в_письме», «From: sender@mail.ru»)){ echo «сообщение принято к доставке»; }else{ echo «что-то пошло не так»; } ?> Теперь гораздо лучше, письмо пришло якобы с адреса sender@mail.ru (почему-то в голову закрадываются мысли как можно надуривать юзеров отправляя левые сообщения с известных адресов). Однако, когда приходит письмо от известного E-mail, то в графе отправителя, вместо E-mail адреса, пишется имя отправителя. Можно так сделать и в нашем примере: <?php //Отправляем…
Деактивация html тэгов в PHP
Чтобы обезопасить вводимые пользователем сайта данные, нужно деактивировать html тэги. Для этого в обрабатывающем PHP скрипте можно создать функцию замены знаков «<» и «>» на «<» и «>» соответственно: <?php echo «Деактивировано=» . deactivate(«переход<br>на новую<br>строку); function deactivate($str) { $str = str_replace(«<«,»<»,$str); $str = str_replace(«>»,»>»,$str); return $str; } ?>
Использование MySQL в PHP скрипте
Для того чтобы получить общее представление о MySQL и работе с ним в PHP рекомендую посмотреть несколько видеоуроков: http://www.youtube.com/watch?v=sCB7e8bZsHs Создав простую базу данных с помощью этих видеоуроков, можем обратиться к ней следующим PHP-скриптом: <?php $connect = mysql_connect(«localhost», «UserName»,»YourPassword»); //Устанавливаем соединение с БД $select = mysql_select_db(«YourDatabaseName», $connect); //Выбираем базу данных «YourDatabaseName» $result = mysql_query(«SELECT * FROM yourtable», $connect); //Отправляем SQL-запрос возвращения всех полей таблицы «yourtable» while($data = mysql_fetch_row($result)) //Перебираем все возвращенные строки { echo $data[0]; //Выводим результат echo $data[1]; echo $data[2]; } mysql_free_result($result); //Освобождаем переменную с результатами запроса mysql_close($connect); //Отключаемся от базы данных ?> Смотри также: Использование MySQL в WordPress
Передать PHP скрипту параметры и обработать их
Допустим, мы хотим передать некоторому draw.php скрипту следующие параметры: color1 = white; color2 = red. Для этого делаем запрос: http://site.ru/draw.php?color1=white&color2=red Тогда, чтобы обработать данные параметры, тело скрипта должно выглядеть так: <?php $color1=$_GET[‘color1’]; $color2=$_GET[‘color2’]; echo «Цвет1 = $color1<br>»; echo «Цвет2 = $color2″; ?> Не забываем при этом указать кодировку PHP-скрипта «UTF-8 (без BOM)», иначе могут быть кракозябры