Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Передача параметрів між HTML- та PHP- сторінками

Поиск

В РНР- технології виділяють 4 способи передачі даних між сторінками: через файли та бази даних, з допомогою глобальних масивів $_GET[..] та $_POST[..], з допомогою глобального масиву сесій $_SESSION['..']та з допомогою глобального масиву обліку повідомлень $_COOKIE[..].

PHP скрипт отримує параметри запиту з HTML форми Web-браузера для опрацювання і підготовки відповіді з допомогою глобальних асоціативних масивів $_GET та $_POST, наприклад,

$cc = $_GET["creditcard"]; # у запиті метод GET

$username = $_POST["username"]; # у запиті метод POST

Асоціативні масиви $_GET $_POST називаються картами і вони є частиною всіх глобальних масивів сервера: $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, $_SESSION. Кожен з масивів має призначення для зберігання спільних параметрів клієнта та сервера (частина розглядається пізніше).

Для перевірки наявності відповідних параметрів використовується функція перевірки наявності ключа в масиві:

 

if (array_key_exists("creditcard", $_GET)) {

$cc = $_GET["creditcard"];

...

} else {

print("Error, you did not submit a credit card number.");

...

return;

}

Нижче наведені приклади функцій використання глобальних масивів для зберігання, що характреизують процеси з’єднання, підтримки сесії, даних запиту чи сервера тощо.

 

function global_session($var){

if(!array_key_exists($var,$_SESSION))

$_SESSION[$var]='';

$GLOBALS[$var]=&$_SESSION[$var];

}

 

function global_cookie($var){

if(!array_key_exists($var,$_COOKIE))

$_COOKIE[$var]='';

$GLOBALS[$var]=&$_COOKIE[$var];

}

 

function global_server($var){

if(!array_key_exists($var,$_SERVER))

$_SERVER[$var]='';

$GLOBALS[$var]=&$_SERVER[$var];

}

 

function global_files($var){

if(!array_key_exists($var,$_FILES))

$_FILES[$var]='';

$GLOBALS[$var]=&$_FILES[$var];

}

 

function global_env($var){

if(!array_key_exists($var,$_ENV))

$_ENV[$var]='';

$GLOBALS[$var]=&$_ENV[$var];

}

 

function global_request($var){

if(!array_key_exists($var,$_REQUEST))

$_REQUEST[$var]='';

$GLOBALS[$var]=&$_REQUEST[$var];

}

?>

 

Програмні засоби аутентифікації

Розглянемо приклад PHP програми для авторизації користувача ресурсу. Традиційне вікно для заповнення імені та паролю користувача має вигляд (рис.2.1.)

Рис.2.1 Форма для заповнення даних користувача

 

Основною частиною HTML коду даної сторнки є тег форми з відповідними етикетками та елементами керування (введення даних і кнопка надсилання):

<form action="" method="post">

<label>UserName:</label>

<input type="text" name="username"/><br />

<label>Password:</label>

<input type="password" name="password"/><br/>

<input type="submit" value=" Submit "/><br />.

</form>

Програма авторизації на сервері складається з двох частин по два файли (рис.2.2):

 
 

 

 


Рис.2.2 Форма для заповнення даних користувача

 

Скрипт Login.php читання введених текстових даних, пошуку аналогічних даних в базі даних (таблиці) та видачі повідомлення про відсутність реєстрації або про допуск до ресурсу. Скрипт Config.phpпризначений для авторизації користувача бази даних та під єднання до неї.

Друга частина – це скрипт видачі повідомлення та верифікації користувача.

 

Database

MySQL admin table columns id, username, passcode.

CREATE TABLE admin(id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(30) UNIQUE,passcode VARCHAR(30));

Config.php

Database configuration file.

<?php

$mysql_hostname = "hostname";

$mysql_user = "username";

$mysql_password = "password";

$mysql_database = "database";

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)

or die("Opps some thing went wrong");

mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");

?>

Login.php

Contains PHP and HTML code.

>?php

include("config.php");

session_start();

if($_SERVER["REQUEST_METHOD"] == "POST")

{

// ім'я користувача та пароль, присланий з форми

 

$myusername=addslashes($_POST['username']);

$mypassword=addslashes($_POST['password']);

$sql="SELECT id FROM admin WHERE username='$myusername' and passcode='$mypassword'";

$result=mysql_query($sql);

$row=mysql_fetch_array($result);

$active=$row['active'];

$count=mysql_num_rows($result);

// Якщо результат відповідає $myusername and $mypassword, рядок таблиці має бути 1 рядок

 

if($count==1)

{

session_register("myusername");

$_SESSION['login_user']=$myusername;

header("location: welcome.php");

}

else

{

$error="Your Login Name or Password is invalid";}

}

?>

Lock.php

<?php

include('config.php');

session_start();

$user_check=$_SESSION['login_user'];

$ses_sql=mysql_query("select username from admin where username='$user_check' ");

$row=mysql_fetch_array($ses_sql);

$login_session=$row['username'];

if(!isset($login_session))

{

header("Location: login.php");

}

?>

Welcome.php

<?php

include('lock.php');

?>

<body>

<h1>Welcome <?php echo $login_session;?></h1>

</body>

Logout.php

SignOut Destroy the session value.

<?php

session_start();

if(session_destroy())

{header("Location: login.php");

}

?>



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 291; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.72.55 (0.005 с.)