Показать сообщение отдельно
  #1 (permalink)  
Старый 17.06.2013, 11:13
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

как сравнить сессию и то, что введено в поле
Всем доброго время суток!
У меня капча и поле , куда ввожу символы на картинке.
Создала для нее валидацию на php, то есть, если кнопка нажата и введенное в поле совпадает с тем, что в сессии,значит все верно,а
если не совпадают, то неверно. Но у меня еще валидация для всей формы на js и мне нужно ее переделать, чтобы там добавилась валидация для капчи, конкретно такая же как и на php.

Вопрос как можно ее прописать на js?
Вот валидация php конкретно для капча:
if(isset($_POST['button'])){
		if($_POST['secret'] == $_SESSION['secret']) {
			echo $_POST['secret'];
			echo $_SESSION['secret'];
			}
		else if($_POST['secret'] != $_SESSION['secret'])
			{
			echo "Введено неправильное число!";
			}
	}



Вот валидация на js для всей формы:
function moderation_0()
{
   alert((document.getElementById('comment').value != '' && document.getElementById('secret').value != '') ? 'Спасибо, Ваш комментарий отправлен на модерацию.' : 'Поля ввода текста не заполнены.');
}

вот весь код php+html
otzyvy.php:
if(isset($_POST['button'])){
		if($_POST['secret'] == $_SESSION['secret']) {
			echo $_POST['secret'];
			echo $_SESSION['secret'];
			}
		else if($_POST['secret'] != $_SESSION['secret'])
			{
			echo "Введено неправильное число!";
			}
	}

<span>Имя</span>
						<form  action="otzyvy.php"  method="POST">
						<input class="author" id="author" type="text" name="author"/><br/>
						<span>Отзыв</span><br />
						<textarea class="com" id="comment" name="comment" cols="30" rows="8"></textarea><br />
						 <?php include ('index.php'); ?><br />
  						 <input class="button" name="button"  type="submit"  onclick="moderation_0()" value="Отправить" />


капча index.php
<?php 
session_start(); 

// набор символов 
$alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
 $secret = "";
 
 // формируем строку из 5 символов, которая будет отображаться на картинке 
 for($i=0; $i<5; $i++)
 {
 	$secret.= $alpha[rand(0,strlen($alpha)-1)]; 
 	
 }

 // сохраняем сгенерированную строку в переменной сессии 
 $_SESSION['secret'] = $secret;
 
 echo $_SESSION['secret'];
 ?>
Введите число на картинке:<br /><input type="text" id="secret" name="secret" size="10"><br />
<img src="img.php"><br />


картинка для капча img.php
session_start(); 

 //Рисуем
 //Устанавливаем тип содержимого
 
//Устанавливаем сообщения об ошибках
 
 header('Content-Type: image/png');
 

 $image = imagecreate(80,31);
 //Выбираем цвет фона
 $grey = imagecolorallocate($image, 246,246,246);
 $red = imagecolorallocate($image, 255, 0, 0);
 $color = imagecolorallocate($image, 0, 0, 255);
 
 imagestring($image,5,10,7,$_SESSION['secret'],$color);
 //Оси координат
 imageline ($image, 20,0,80,3, $red);
 imageline ($image, 0,10,50,0, $red);
 imageline ($image, 90,5,40,31, $red);
 imageline ($image, 0,31,70,0, $red);
  
 //Сохраняем файл в формате png и выводим его
 imagepng($image);
 
 //Чистим использованную память
imagedestroy($image);
Ответить с цитированием