Инструменты пользователя

Инструменты сайта


тут_подробнее

Создание вэб-страниц в PHP

Ссылки и URL

Создание ссылок в php

<?php $link_name ="Second PaGe"?>
<a href="second_page.php"><?php echo $link_name?></a>

Использование значений GET

Используя параметры запроса url, параметры идут сразу после знака вопроса somepage.php?page=2. Если надо доваить еще параметры используется знак амперсанд ?category=7&page=2 Все параметры которые мы посылаем в ссылке, хранятся в супер глобальной $_GET в ассоциативном массиве.

# Page first
<?php $link_name ="Second PaGe"?>
	<?php $id=2;?>
	<a href="second_page.php?id=<?php echo $id;?>"><?php echo $link_name?></a>
# Page second
<pre>
	<?php print_r($_GET);?>
# Вывод
	Array
(
    [id] => 2
)
</pre>

Получение значения и вывод на страницу глобальной переменной $_GET

$id = $_GET['id'];
	echo $id;

Кодирование значений GET

Зарезервированные символы в url

!*'();:@&=+$,/?#[]

Зарезервированные символы кодируются в таком соответствии, знак процента и шестнадцатеричное число:

! * « # $ % & ' * , : ; < = > ? [ ]
%21%2A%22%23%24%25%26%27%2A%2C%3A%3B%3C%3D%3E%3F%5B%5D
<?php $link_name ="Second PaGe"?>
<?php $id=2;?>
<?php $firm="Johnson & Johnson";?> # кодируем переменную с помощью функции urlencode()
<a href="scnd_page.php?id=<?php echo $id;?>&company=<?php echo rawurlencode($firm);?>"><?php echo $link_name?></a>
  • rawurlencode для пути
  • urlencode для строки запроса
$page = "William Shakspeare";
	$quote = "Be or not to be";
	$link1 = "/bio/" . rawurlencode($page) . "?quote=" . urlencode($quote);
	$link2 = "/bio/" . urlencode($page) . "?quote=" . rawurlencode($quote);
	echo $link1 . "<br />";
	echo $link2 . "<br />";
# вывод
#/bio/William%20Shakspeare?quote=Be+or+not+to+be
#/bio/William+Shakspeare?quote=Be%20or%20not%20to%20be

Кодирование для HTML

< > & =
&lt;&gt;&amp;&quot;

кодирование элементов html

<? $linktext = "<Click> & learn more"; ?>
<a href=""><?php echo htmlspecialchars($linktext);?></a>

кодирование спецсимволов

<? $text = "© ® £ ™"; ?>
<a href=""><?php echo htmlentities($text);?></a>

Включение и требование файлов

Включение кода с другой страницы

<? include("page.php");?>
<? require("page.php");?> # require, то же самое, что и include. Будет выведена фатальная ошибка
                          # если файл не найден
include_once              # хранит в массиве путь к файлам которые уже включены

Модификация заголовков

Подробнее на вики. Заголовки должны присутствовать перед html кодом иначе, грузятся те, что по умолчанию.

<?php header("HTML 1.1/404 Not found");?>
<?php header("X-Powered-By: non of yuo business");?>
<pre>
<?php print_r(headers_list());?>
</pre>

Переадресация страниц

Page redirection

header("Location: array.php"); # Регистр имеет значение
exit;

как функция

<?php function new_location($page){
header("Location:". $page);
exit;
}
 
$login = $_GET['login'];
if ($login != "1") {
	new_location("function.php");       # если вводим в браузере /redirect.php переходим на function.php
}                                           # если redirect.php?login=1 переходим на www.php.net
else {
	new_location("http://www.php.net ");
}
?>

Буфер вывода

Буфер вывода, нужен для возможности управлять размером данных отдаваемых на обработку php.
output_buffering значение устанавливается в php.ini

Создание форм

метод POST. В отличии от GET запросов, POST запросы не нуждаются в кодирование и декодирование. Все данные вводимые в форму передаются в глобальную переменную $_POST и хранятся в ассоциативном массиве.
Создаем простую html форму.

<form action="form_processing.php" method="post">
		Username: <input type="text" name="username" value="" /><br />
		Password: <input type="password" name="password" value="" /><br />
		<input type="submit" name="submit" value="Submit" />
 
	</form>

form_processing.php

<pre>
 <?php
 print_r($_POST);
 ?>
</pre>

Обнаружение подачи формы

С помощью функции isset

if(isset($_POST['submit'])){
	echo "Form was submited";
}

с помощью тернарного оператора ?:

<?php $username = isset($_POST['username']) ? $_POST['username'] : ""; ?>
<?php $password = isset($_POST['password']) ? $_POST['password'] : ""; ?>

Одностраничная обработка формы

Cоздаем функцию для редиректа.

redirect_to.php
<?php function redirect_to($new_location){
	header("Location: " . $new_location);
	exit;
}?>

Одностраничная обработка формы

form_single.php
<?php 
require_once("redirect_to.php");
if(isset($_POST['submit'])){
	//form was submit
	$username = $_POST["username"];
	$password = $_POST["password"];
	if($username == "user" && $password == "secret"){
	//successful login
		redirect_to("array.php");
	}
	else {
			$message = "There someone errors";
	}
 
}
else {
$username = "";
$message = "Please loggin in.";	
}
 
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>form</title>
</head>
<body>
<?php echo $message;?> <br />
<form action="form_single.php" method="post">
Username: <input type="text" name="username" value="<?php echo htmlspecialchars($username);?>" /><br />
Password: <input type="password" name="password" value="" /><br />
<input type="submit" name="submit" value="Submit" />	
</form>
 
</body>
</html> 
тут_подробнее.txt · Последнее изменение: 2019/10/01 16:13 (внешнее изменение)