Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Авторизация в модальном окне с помощью jQuery (https://javascript.ru/forum/jquery/7050-avtorizaciya-v-modalnom-okne-s-pomoshhyu-jquery.html)

A.N.R.I 12.01.2010 22:13

Авторизация в модальном окне с помощью jQuery
 
Здраствуйте!
Создаю регистрацию в модальном окне. Окно создаю с помощью fancybox.
1. Почему модальное окно работает если в подключаемом файле не подключена библиотека jQuery ::mad24.gif::
2. Почему-то firebug в этом куске выводит не тот текст, который нужен, а код файла

И так:
Файл one.html - файл, где размещено модальное окно:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
<link rel="stylesheet" href="js/fancybox/jquery.fancybox.css" type="text/css" />

<script type="text/javascript" src="blocks/jquery-1.3.2.js"></script>

<script type="text/javascript" src="js/fancybox/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/fancybox/jquery.fancybox-1.2.1.pack.js"></script>

<script type="text/javascript">
$(document).ready(function() {
    $("a.enters").fancybox({"hideOnContentClick" : false});
});

</script>



</head>
<p><li><a  class="enters" href="login3.html">Регистрация</a></li></p>
<body>
</body>
</html>


Файл login3.html - здесь jQuery код авторизации и он подключаеться в окне
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>

<script type="text/javascript">

$(function() {
  $('#submit').click(function(){
		$('#container').append('<img src="images/loading.gif" alt="loading" id="loading" />');
		
		var login=$('#login').val();
		var pass=$('#pass').val();
		
		$.ajax({
			url:'enter.php',
			type:'POST',
			data:'login=' + login + '$pass=' +pass,
			
			success: function(result){
						 console.log(result);
				
				}
				   
		});
		return false;					  
	});
  
  });

</script>
</head>

<body>
<div id="container">
<form action="enter.php" method="post">
Login:<br />
<input name="login" type="text" value="login" id="login" />
<br />
Pasword:<br />
<input name="pass" type="password" value="pass" id="pass"/>

<br />
<input id="submit" name="submit" type="button" value="Send" />
</form>
</div>
</body>
</html>


Файл enter.php - обработчик
<?php include ("blocks/bd.php");
$login=$_POST['login'];
$pass=md5($_POST['pass']);
$query="SELECT login,pass FROM userlist WHERE login='?' AND pass='?'";
$stmt= $bd1->stmt_init();
if ($stmt->prepare($query)){
	$stmt->bind_param('ss',$login,$pass));
	$stmt->execute();
}
$refresh="<meta http-equiv='Refresh' content='0; URL=".$_SERVER['HTTP_REFERER']."'>";


 
 
if(mysql_num_rows($stmt)>0){setcookie('login',$login,time()+3600000);setcookie('pass',$pass,time()+3600000);print $refresh;}else {print "Sorry";}
 
?>


И файл bd.php - файл базы даных:
<?
$bd =mysql_connect ("localhost", "admin", "admin");
mysql_select_db ("work",$bd);

$bd1 = new mysqli('localhost', 'admin', 'admin', 'work'); 

?>


Подключения сделал в 2 версиях, по скольку про вторую я не знаю (на сколько понял - это новые фичи в mysql5, но могу ошибаться) и не умею ими пользоваться.

Если нужно могу сделать скрины, что выводит firebug или же дать все файлы.


Кстати, почему-то, если подключать fancybox к готовому проекту - оне не работает. Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="ru">
<head>

<meta http-equiv="Тест" content="text/html; charset=windows-1251" />
<link rel="stylesheet" href="images/style.css" type="text/css" />

<link type="text/css" rel="stylesheet" href="js/fancybox/jquery.fancybox.css"  />
<!-- Назва сторінок-->
<title>
<? 
if ($_GET['action']==news){print $index['news'];}
if ($_GET['action']==interior){print $index['interior'];}
if ($_GET['action']==technology){print $index['technology'];}
if ($_GET['action']==architecture){print  $index['architecture'];}
if ($_GET['action']==about){print $index['about'];}
if ($_GET['action']==admin){print $index['admin-panel'];}
if ($_GET['action']==profile){print $index['profile'];}
if ($_GET['sa']==statPanel){print $index['stats'];}
if ($_GET['sa']==showPosts){print $index['showPosts'];}
if ($_GET['sa']==trackIP){print $index['trackIP'];}
if ($_GET['sa']==showPermissions){print $index['showPermissions'];}
if ($_GET['sa']==account){print $index['account'];}
if ($_GET['sa']==setProfile){print $index['setProfile'];}
if ($_GET['action']==pm){print $index['pm'];}
if ($_GET['sa']==outbox){print $index['outbox'];}
if ($_GET['sa']==send){print $index['send'];}
if ($_GET['topic']){$myrow=mysql_query("SELECT title FROM data WHERE id='$_GET[topic]'");
	$result = mysql_fetch_array ($myrow);
	print " - ".$result["title"]."";
}
if ($_GET['action']==search){print $index['search'];}
if (!isset ($_GET['action']) && !isset($_GET['topic'])) {print $index['main'];}
?>


</title>

	<SCRIPT language=JavaScript>
			function x () {return;}
			function FocusText() {
			document.REPLIER.msg.focus();
			document.REPLIER.msg.select();
			return true; }
			function DoSmilie(addSmilie) {
			var revisedmsgage;
			var currentmsgage = document.REPLIER.msg.value;
			revisedmsgage = currentmsgage+addSmilie;
			document.REPLIER.msg.value=revisedmsgage;
			document.REPLIER.msg.focus();
			return;
			}
			function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
		</SCRIPT>

<!--Скрпит авторизации-->
<script type="text/javascript" src="blocks/jquery-1.3.2.js"></script>
<script src="blocks/jquery.js"></script>

<script type="text/javascript" src="js/fancybox/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/fancybox/jquery.fancybox-1.2.1.pack.js"></script>


<script type="text/javascript">
$(document).ready(function() {
    $("a.enters").fancybox();
});
</script>

<script>


$(function() {
	$("a[rel]").overlay(function() {
		var wrap = this.getContent().find("div.wrap");
		if (wrap.is(":empty")) {
			wrap.load(this.getTrigger().attr("href"));
		}
	});
});

</script>




</head>

<body>
  <p><li><a class='enters' href='images/delete.gif' name='enter'>".$rights['login']."</a></li></p>


В чем проблема - не могу понять. Сайт делаю через 1 файл - то есть подключаю все блоки в index.php. И еще все скрипты, которые нужны для для работы, подлючаю тоже в index файле

Если кто-то уже пробывал сделать - буду рад почитать. Гугл не помог :(

x-yuri 14.01.2010 19:11

Цитата:

Сообщение от A.N.R.I
1. Почему модальное окно работает если в подключаемом файле не подключена библиотека jQuery ::mad24.gif::

потому что он ее использует

Цитата:

Сообщение от A.N.R.I
2. Почему-то firebug в этом куске выводит не тот текст, который нужен, а код файла

в каком, этом?

A.N.R.I 14.01.2010 19:15

Цитата:

Сообщение от x-yuri (Сообщение 40575)
в каком, этом?

В login3.html .Я сначала проверяю работоспособность в подключаемом модальном окне, а потом уже буду подключать.

Может кто-то знает, как сделать авторизацию, как на teasernet.ru ?

x-yuri 14.01.2010 19:41

Цитата:

Сообщение от A.N.R.I
2. Почему-то firebug в этом куске выводит не тот текст, который нужен, а код файла

а что будет если в строке адреса этот URL написать?

A.N.R.I 14.01.2010 19:55

Цитата:

Сообщение от x-yuri (Сообщение 40581)
а что будет если в строке адреса этот URL написать?

О, спасибо, есть ошибка. Дужка была лишней, но все равно не работает. Теперь пишет:
Код:

<!--error--><br /> <b>Warning</b>: mysqli_stmt::bind_param() [<a href='function.mysqli-stmt-bind-param'>function.mysqli-stmt-bind-param</a>]: Number of variables doesn't match number of parameters in prepared statement in <b>Z:\home\localhost\www\latest\enter.php</b> on line <b>7</b><br /> <script language=JavaScript src='/denwer/errors/phperror_js.php'></script><!--error--><br /> <b>Warning</b>: mysql_num_rows(): supplied argument is not a valid MySQL result resource in <b>Z:\home\localhost\www\latest\enter.php</b> on line <b>15</b><br /> <script language=JavaScript src='/denwer/errors/phperror_js.php'></script>Sorry

x-yuri 15.01.2010 17:29

тебе подсказать переводчик?

A.N.R.I 15.01.2010 17:35

Цитата:

Сообщение от x-yuri (Сообщение 40698)
тебе подсказать переводчик?

Нет, но можно подсказать где ошибка. на сколько я понял, переменных не равно количеству параметров. Но не вижу где я боьше написал. Или я где то не прав?

A.N.R.I 19.01.2010 19:00

Пересмотрел еще несколько раз - ничего не заметил :(

Попробывал сделать так:

<?php include ("blocks/bd.php");
$login=$_POST['login'];
$pass=md5($_POST['pass']);
$query=mysql_query("SELECT * FROM userlist WHERE login='$login' AND pass='$pass'");
$stmt = $bd1->stmt_init();

$refresh="<meta http-equiv='Refresh' content='0; URL=".$_SERVER['HTTP_REFERER']."'>";


 
 
if((mysql_num_rows($query))>0){setcookie('login',$login,time()+3600000);setcookie('pass',$pass,time()+3600000);print $refresh;}else {print "Sorry";}
 
?>

x-yuri 19.01.2010 19:46

$query=[B]mysql_query[/B]("SELECT * FROM userlist WHERE login='$login' AND pass='$pass'");
$stmt = $bd1->[B]stmt_init[/B]();

т.е. ты думаешь, что если смешивать mysql и mysqli, то что-то будет работать? Может стоит начать думать?

выбираешь расширение (mysql или mysqli), внимательно читаешь документацию, берешь из нее какой-нибудь пример и переделываешь под свои нужды

A.N.R.I 19.01.2010 19:59

Цитата:

Сообщение от x-yuri (Сообщение 41157)
$query=[B]mysql_query[/B]("SELECT * FROM userlist WHERE login='$login' AND pass='$pass'");
$stmt = $bd1->[B]stmt_init[/B]();

т.е. ты думаешь, что если смешивать mysql и mysqli, то что-то будет работать? Может стоит начать думать?

выбираешь расширение (mysql или mysqli), внимательно читаешь документацию, берешь из нее какой-нибудь пример и переделываешь под свои нужды

Ну я знаю mysql, а второй я просто видел пример. Будет ли скрипт работать с старой версией???

От такой скрипт:

<?php include ("blocks/bd.php");
$login=$_POST['login'];
$pass=md5($_POST['pass']);
$query=mysql_query("SELECT * FROM userlist WHERE login='$login' AND pass='$pass'");


$refresh="<meta http-equiv='Refresh' content='0; URL=".$_SERVER['HTTP_REFERER']."'>";


 
 
if((mysql_num_rows($query))>0){setcookie('login',$login,time()+3600000);setcookie('pass',$pass,time()+3600000);print $refresh;}else {print "Sorry";}
 
?>

Но принажатии Send - Firebug пишет Sorry. Хотя логин и пасс верны

И еще, Хром, при нажатии enter (вместо клика мышкой по Send), напрямую обращаеться к файлу enter.php. Как сделать, что бы выполнялся код jquery??


Часовой пояс GMT +3, время: 16:00.