avatar_Everybody

Регистрация на PHP + AJAX: созданиe формы и скрипта для асинхронной загрузки

Автор Everybody, 2008 Дек. 12, 16:30

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Ключевые слова [SEO] phpajaxmysql

Everybody

Регистрация с использованием AJAX.
Оригинал статьи здесь
Форма запроса регистрационной информации

Для начала создадим форму ввода регистрационной информации и подключим скрипт из внешнего файла, содержащий необходимые функции (XMLHttpRequest и др.)

<script src="ajax_framework.js" language="javascript"></script><br><br><!-- Show Message for AJAX response --><br><div id="login_response"></div><br><br><!-- При отправке формы вызывается функция login() из ajax_framework.js --><br><form action="java script:login()" method="post"><br><input name="emailLogin" type="text" id="emailLogin" value=""/><br><input name="pswLogin" type="password" id="pswLogin" value=""/><br><input type="submit" name="Submit" value="Login"/><br></form>
Обработчик ajax_framework.js:
/* ------------------------ */<br>/*  XMLHTTPRequest Enable  */<br>/* ------------------------ */<br>function createObject() {<br>var request_type;<br>var browser = navigator.appName;<br>if(browser == "Microsoft Internet Explorer"){<br>request_type = new ActiveXObject("Microsoft.XMLHTTP");<br>}else{<br>request_type = new XMLHttpRequest();<br>}<br>return request_type;<br>}<br><br>var http = createObject();<br><br><br>/* ----------------------- */<br>/*  LOGIN    */<br>/* ----------------------- */<br>/* Переменная nocache содержит случайное число, добавляемое в запрос <br>  для предотвращения кеширования браузером запроса */<br>var nocache = 0;<br>function login() {<br> // Отображаем соощение в области ID ajax_response<br> document.getElementById('login_response').innerHTML = "Loading..."<br>    // Проверяем, что все поля не пустые. Используем encodeURI() для кодирования недопустимых символов в запросе.<br>var email = encodeURI(document.getElementById('emailLogin').value);<br>var psw = encodeURI(document.getElementById('pswLogin').value);<br> // Получаем случайное число<br>nocache = Math.random();<br> // Pass the login variables like URL variable<br>http.open('get', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);<br>http.onreadystatechange = loginReply;<br>http.send(null);<br>}<br>function loginReply() {<br>if(http.readyState == 4){ <br>var response = http.responseText;<br> if(response == 0){<br>// if login fails<br>  document.getElementById('login_response').innerHTML = 'Login failed! Verify user and password';<br>// else if login is ok show a message: "Welcome + the user name".<br>  } else {<br>document.getElementById('login_response').innerHTML = 'Welcome'+response;<br>  }<br>}<br> }
На предыдущем шаге функция login() получила и отправила в login.php две переменных (email and psw) для проверки наличия пользователя в базе данных.
Проверку осуществляет login.php:
<!-- Include Database connections info. --><br><?php include('config.php');<br><br>// Verify if user exists for login<br>if(isset($_GET['email']) && isset($_GET['psw'])){<br><br>$email = $_GET['email'];<br>$psw = $_GET['psw'];<br><br>$getUser_sql = 'SELECT * FROM USER WHERE email="'. $email . '" AND psw = "' . $psw . '"';<br>$getUser  = mysql_query($getUser_sql);<br>$getUser_result =  mysql_fetch_assoc($getUser);<br>$getUser_RecordCount = mysql_num_rows($getUser);<br><br>if($getUser_RecordCount < 1){ echo '0';} else { echo $getUser_result['nick'];}<br>}<br>?>
config.php
<?php<br>// Connection's Parameters<br>$db_host="localhost";<br>$db_name="database_name";<br>$username="database_username";<br>$password="database_password";<br>$db_con=mysql_connect($db_host,$username,$password);<br>$connection_string=mysql_select_db($db_name);<br>// Connection<br>mysql_connect($db_host,$username,$password);<br>mysql_select_db($db_name);<br>?>

Похожие темы (5)