Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 03.05.2012, 10:27
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Serg_pnz,
не хочу использовать jquery, внутренне отторжение к нему) Хочу на чистом js писать. Хотя знаю, что там это все делается без геморроя
=========
Сейчас прочитал про сессии(написано: При использовании сессий данные сохраняются во временных файлах на сервере.), вопрос: насколько они сохраняются?
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 03.05.2012 в 10:38.
Ответить с цитированием
  #22 (permalink)  
Старый 03.05.2012, 10:29
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Сообщение от Serg_pnz
И да - посмотреть бы все файлы.
если хочешь весь код увидеть, пожалуйста:
<body>
<form action='login.php' method='POST'>
<input type='text' value='<?php echo $_POST['login'] ?>' name='login'>
<input type='text' name='pass' value='<?php echo $_POST['pass'] ?>' >
<input type='submit' value='Зайти'>
</form></body>
<?php 
function senn() {
$login = $_POST['login'];
$pass = $_POST['pass'];
$conn = mysql_connect('localhost', 'gmoryes_login', '*********');
if(mysql_select_db('gmoryes_login', $conn))
{
	$res = mysql_query("SELECT `name`,`pass` FROM `users` WHERE `name` = '$login' AND `pass` = '$pass'");
	$row = mysql_fetch_assoc($res); 
		if($row['name']!='' && $row['pass']!= '')
		{
			if($row['avatar']!='')
			{
			echo "у вас уже есть аватар, это: ".$row['avatar'];
			}
		else {  
			echo "
			<script>
 			document.body.innerHTML = ''
			</script>
			";
			echo "
			<input type='text' id='avatar'>
			<input type='button' onclick='ava()' value='Установить аватар'>
			<script>
			function ava() {
			var ava = document.getElementById('avatar').value
			ava = encodeURIComponent(ava)
			var r = new XMLHttpRequest(); // создаем запрос
			r.open('POST', 'login.php', true) // открываем
			r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // устанавливаем заголовок
			r.send('ava='+ava) // что посылаем
			}
			</script>
			";
			function s(){
			$ava = (isset($_POST['ava'])) ? $_POST['ava'] : false;
			
			if ($ava) {
			echo 'ava is '.$ava;
			echo $row['name'].'<hr>'.$row['pass'];
  			$query = "UPDATE `users` SET `avatar`='%s' WHERE `name`='%s' AND `pass`='%s'";
  			$query = sprintf($query, mysql_real_escape_string($ava), mysql_real_escape_string($row['name']), mysql_real_escape_string($row['pass']));
		 	mysql_query($query) or die('Error:' . mysql_error());
  			}	
			else {
			echo 'else';
			}
			}
			if($_SERVER['REQUEST_METHOD']=='POST') s();
		     }
		}
}
}
if($_SERVER['REQUEST_METHOD']=='POST') senn();
?>
__________________
оляля, ололо
Ответить с цитированием
  #23 (permalink)  
Старый 03.05.2012, 11:12
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

о жизни сессии

код конечно... . Старайся сразу отделять логику от вывода. js файлы отдельно должны идти.

Не работает потому что при аяксе ты не передаешь
$login = $_POST['login'];
$pass = $_POST['pass'];


и включи в php.ini
error_reporting = E_ALL
, много полезного будешь видеть
Ответить с цитированием
  #24 (permalink)  
Старый 03.05.2012, 13:23
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

micscr,
Сообщение от micscr
код конечно...
поверь это еще не самый) А вообще это пока только первые php скрипты, в будущем надеюсь будет лучше
Сообщение от micscr
Не работает потому что при аяксе ты не передаешь
$login = $_POST['login'];
$pass = $_POST['pass'];
так я же их не при аяксе передавал, это я принимал формой
Сообщение от micscr
и включи в php.ini
error_reporting = E_ALL
, много полезного будешь видеть
погуглил, оказывается мой хостинг, как я понял не предоставляет возожности редактировать php.ini
__________________
оляля, ололо
Ответить с цитированием
  #25 (permalink)  
Старый 03.05.2012, 15:06
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

функцией уровень ошибок можно выставить:
http://php.net/manual/en/function.error-reporting.php

да, у тебя там вообще чепуха. В функции s() вот этому:
$row['name']
неоткуда взяться. В пыхе переменные сами не ищутся выше, как в js.
По идее надо сделать
function s($name, $pass)
, а эти данные при аякс запросе, в скрипте неоткуда брать. Ты их не передаешь.

Последний раз редактировалось micscr, 03.05.2012 в 15:10.
Ответить с цитированием
  #26 (permalink)  
Старый 04.05.2012, 13:42
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

micscr,


9xakep,
тут запроси id юзера в базе и пихни его в сессию
$res = mysql_query("SELECT `name`,`pass` FROM `users` WHERE `name` = '$login' AND `pass` = '$pass'");


А позже сделаешь отбор по id, хранящегося в сессии
"UPDATE `users` SET `avatar`='%s' WHERE `id`=".$_SESSION['user_id'];
Ответить с цитированием
  #27 (permalink)  
Старый 04.05.2012, 18:53
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

micscr,
Serg_pnz,
спасибо за советы, обязательно воспользуюсь
Но пока решил потренироваться, и не могу понять в чем проблема, точнее как правильно сделать, задача:
передать данные с текстового поля, на эту же страницу с помощью ajax:
[php]
<?php 
echo "
<input type='text' value='' id='text'><input type='button'  onclick='send()' value='send'>
<script>
function send() {
var text = document.getElementById('text').value
var r = new XMLHttpRequest;
r.open('GET', 'ex-1.php?text='+encodeURIComponent(text), true)
r.send(null)
}
</script>
";
$text = $_GET['text'];
echo $text;
?>
[/php]
[IMG]http://s019.radikal.ru/i616/1205/8f/7e0bff4880e6.png[/IMG]
[IMG]http://s019.radikal.ru/i643/1205/d3/f323295d027a.png[/IMG]
Данные отправляются, и по 2ому скриншоту видно, что они приходят(или я не прав?), но на страницу они не добавляются, что не так-то? :-E

Ура!!! У меня получилось
<?php 
$con = mysql_connect('localhost', 'gmoryes_login', '****');
mysql_select_db('gmoryes_login', $con);
echo "
<input type='text' value='' id='text'><input type='button'  onclick='send()' value='send'>
<script>
function send() {
var text = document.getElementById('text').value
var r = new XMLHttpRequest;
r.open('GET', 'ex-1.php?text='+encodeURIComponent(text), true)
r.send(null)
}
</script>
";
$text = $_GET['text'];
mysql_query("INSERT INTO `users` (avatar) VALUES ('$text')");
?>
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 04.05.2012 в 19:31.
Ответить с цитированием
  #28 (permalink)  
Старый 04.05.2012, 21:02
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Почему ничего не выводит?
<?php 
error_reporting(E_ALL); // докладываем обо всех ошибках, спасибо микскр
echo "
Введите свой логин: <input type='text' value='' id='login'><br>
Введите свой пароль: <input type='text' id='pass'><br>
<input type='button' value='Войти' onclick='logIn()'>
<script>
function logIn() {
var login = document.getElementById('login').value
login = encodeURIComponent(login)
var pass = document.getElementById('pass').value
pass = encodeURIComponent(pass)
var r = new XMLHttpRequest;
r.open('GET', 'login.php?login='+login+'&pass='+pass, true)
r.send(null)
}
</script>
";
$connect = mysql_connect('localhost', 'gmoryes_login', '*****'); // заходим
$login = (isset($_GET['login'])) ? $_GET['login'] : false; // проверяем есть логин и пароль(отправлены ли они)
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : false;
mysql_select_db('gmoryes_login', $connect); // конектимся к таблице
if($login) {
if($pass) {
$res = mysql_query("SELECT `name`, `pass` FROM `users` WHERE `name` = '$login' AND `pass` = '$pass'");
$res = mysql_fetch_assoc($res);
if($res['name']!='' && $res['pass']!= '') {
echo '<b>good</b>'; // почему это не попадет на страницу??
} else {
echo '<b>bad</b>'; // и это тоже? 
}
}
}
?>

Что надо написать? Поскольку в ответе от сервера все в порядке(не считая проблем с кодировками)
__________________
оляля, ололо
Ответить с цитированием
  #29 (permalink)  
Старый 05.05.2012, 09:24
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

Цитата:
// почему это не попадет на страницу??
// и это тоже?
Ну смотри что ты делаешь:
1) запрашиваешь страницу. Если в адресной строке нет ни login ни pass, то то, что в цитате не выводится.
2) ты вводишь данные в поля и жмешь кнопку. Но ты забыл поставить обработчик r.onreadystatechange, в котором обработаешь ответ, который на картинке. Естественно в этом ответе html тот не нужен, а только 'good' или 'bad'.

AJAX - это уже на загруженной странице, js запросил данные с сервера и обработав полученный ответ, что то сделал, изменил dom, например.

И насчет твоего sql-запроса, такие вещи решаются запросами вида:
select count(*) from users where ...
и проверяется полученное число, 0 или более.

Последний раз редактировалось micscr, 05.05.2012 в 09:26.
Ответить с цитированием
  #30 (permalink)  
Старый 05.05.2012, 09:43
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

micscr,
даже если я его ставлю, он пишет Undefined
<?php 
error_reporting(E_ALL);

echo "
Введите свой логин: <input type='text' value='' id='login'><br>
Введите свой пароль: <input type='text' id='pass'><br>
<input type='button' value='Войти' onclick='logIn()'>
<script>
function logIn() {
var login = document.getElementById('login').value
login = encodeURIComponent(login)
var pass = document.getElementById('pass').value
pass = encodeURIComponent(pass)
var r = new XMLHttpRequest; // создать запрос
r.onreadystatechange = function () {   
if(r.readyState==4 && r.status == 200) {
alert(r.responceText) // выводит undefined??
}
}
r.open('GET', 'login.php?login='+login+'&pass='+pass, true)
r.send(null)
}
</script>
";
$connect = mysql_connect('localhost', 'gmoryes_login', 'mishan11235');  // конектимся к БД
$login = (isset($_GET['login'])) ? $_GET['login'] : false;
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : false;
mysql_select_db('gmoryes_login', $connect); // выбираем таблицу
if($login) {
if($pass) {
$res = mysql_query("SELECT `name`, `pass` FROM `users` WHERE `name` = '$login' AND `pass` = '$pass'");
$res = mysql_fetch_assoc($res);
if($res['name']!='' && $res['pass']!= '') {
echo "good"; // все, это на странице не выводиться!
} else {
echo "bad"; // как и это!
}
}
}
?>
__________________
оляля, ололо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из JS в PHP - что не так? Rokugan Общие вопросы Javascript 16 30.09.2011 18:52
Передача переменной из JS в PHP методом ajax skalka jQuery 7 28.08.2010 12:05
Передача переменной с JS в PHP и обратно kamushek Общие вопросы Javascript 2 22.08.2010 16:12
Как передать массив из PHP в js (AJAX) Александр Иванов Общие вопросы Javascript 7 10.09.2009 10:22
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36