|
|
|
| Здравствуйте!
собрал для примера форму регистрации, эту тему размещаю для того чтобы Вы посмотрели нет ли ошибок и как пример взаимодействия ajax,php,mysql
проверку джавой-скриптом полей опускаю, также как механизм заноса информации в базу.
регистрация:
<form name="form1" method="POST" action="" >
Адрес<input type=text name="email" onchange='getName()'
value="<?echo ($_POST['email'])?>"><div id="from_ajax"> </div> <br>
Поле<input type=text name="field" value="<?echo ($_POST['field'])<br>
<input type="submit" value="Вперед!">
|
файл js:
var req;
function getName()
{
url = 'http://localhost/ajax/name.php?email=';
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req)
{
req.onreadystatechange = processReqChange;
req.open("GET", url+form1.email.value, true);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send();
}
}
function processReqChange()
{
ab = window.setTimeout("req.abort();", 5000);
if (req.readyState == 4)
{
clearTimeout(ab);
// only if "OK"
if (req.status == 200)
{
// document.form1.email.value =(req.responseText); document.getElementById("from_ajax").innerHTML = (req.responseText);
}
else
{
alert("Error:\n" + req.statusText);
}
}
}
|
файл php
<?php
# источник:
# GeorgeIV
# mechanic
#http://softtime.ru/forum/read.php?id_forum=1&id_theme=55228
header("Content-type: text/html; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
$email=$_GET[email];
require_once("configuration.php");
$query = "SELECT * FROM users
WHERE email LIKE '$email' ";
$ath = mysql_query($query);
if($ath)
{
if(mysql_num_rows($ath)>0)
{
echo "Адрес $email есть.";
}
else
{
echo "Адрес $email нет.";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: ronin
(17.07.2008 в 15:32)
| | если я вобью ручками в форму email=a' or '1'='1 как у тебя отреагирует проверка? я не вижу проверки полученного $email перед передачей в запрос. | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 15:40)
| | дополнение в файл php:
if (!get_magic_quotes_gpc())
{
$email= trim(mysql_escape_string($email));
}
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
echo "<LI>некорректный адрес - введите e-mail в виде:<i>something@server.com</i>";
exit();
}
|
| |
|
|
|
|
|
|
|
для: ronin
(17.07.2008 в 16:19)
| | лучше не exit, а перенаправить на страницу с вводом логина, человек может просто ошибиться и каждый раз открывать страницу ему может и не захотеться | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 16:30)
| | это php страница и не показывается!!!
человек видит только страницу с формой, а результат из php файла в том числе просьбу исправить адрес выдает аджакс,
Значительная часть скрипта базируется на Вашем сообщение
[url]
http://softtime.ru/forum/read.php?id_forum=1&id_theme=55228
[/url]
:) | |
|
|
|
|
|
|
|
для: ronin
(17.07.2008 в 16:36)
| | понял, у тебя же аякс :-) | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 16:38)
| | странное дело залил все это на сервер - и пошла потеха:
т.е в файле js если путь прописан как www.site.ru то срабатывает, не срабатывает если зайти site.ru
Плюс скрипт срабатывает только раз, повторно только после перезагрузки!
Я видимо что не так сделал в файле js так как как скрипт не работает в FF как сервере так и на локалхосте:) | |
|
|
|
|
|
|
|
для: ronin
(17.07.2008 в 17:40)
| | если www.site.ru и site.ru обрабатываются по разному, значит так настроен сервер | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 17:43)
| | Я видимо что не так сделал в файле js так как как скрипт не работает в FF как сервере так и на локалхосте:) | |
|
|
|
|
|
|
|
для: ronin
(17.07.2008 в 17:49)
| | а вчем нибудь работает? | |
|
|
|
|
|
|
|
для: GeorgeIV
(17.07.2008 в 17:53)
| | на локалхосте в IE - супер! А на сервере в том же IE - только при первом обращении, потом нужно перезагружать страницу. | |
|
|
|
|
|
|
|
для: ronin
(18.07.2008 в 09:58)
| | кусок с формой приведи | |
|
|
|
|
|
|
|
для: GeorgeIV
(18.07.2008 в 10:41)
| |
<form name="form1" method="POST" action="newaccount.php?<?echo $SID?>&action=send" onsubmit="return Validator(this)">
<table class=table border="0" align="center" >
<tr>
<td >Мыло:</td><td ><input type=text name="email" onchange='getName()' value="<?echo ($_POST['email'])?>"><div id="from_ajax"> </div> <br>
<script language="javascript">
editor_generate('email');
</script></td><td> </td>
</tr>
<tr>
<td >Картинка:</td><td><img src="random_image.php?<?echo $SID?>" border="0"></td>
<td><input type="text" name="code" value="<?echo htmlspecialchars(stripslashes($_POST['code']))?>"></td>
</tr> </div>
<tr>
<td colspan=2 align="center"><input type="submit" value="Зарегистрироваться!"></td>
</tr>
</table>
</form>
|
| |
|
|
|
|
|
|
|
для: ronin
(18.07.2008 в 11:47)
| | проблема может быть в кэшировании | |
|
|
|
|
|
|
|
для: GeorgeIV
(18.07.2008 в 11:59)
| | http://softtime.ru/forum/read.php?id_forum=1&id_theme=55228
вернулся к первоисточнику - он тоже не работает в FF | |
|
|
|
|
|
|
|
для: ronin
(18.07.2008 в 12:24)
| | Все пробую - не помогает!
http://softtime.ru/forum/read.php?id_forum=4&id_theme=53317 | |
|
|
|
|
|
|
|
для: ronin
(18.07.2008 в 13:08)
| | УРА!!! Нашел!!!
там где джава-скрипт
нужно поменять на :
:) | |
|
|
|