Сообщение от laimas
			 
		
	 | 
	
		Еще раз: если механизм сессий работает (сервер стартует сессию, а у клиента включены куки), то браузер сам передает id сессии серверу, таким образом "привязывая" клиента к его сессии. То есть вот это 
 
<?php echo session_name()?>=<?php echo session_id()?> 
 
полная хня, навороченная кем-то не понять для чего. Если сессия умерла, то еще не факт, что по этим генам ее можно воскресить, то есть что она хранила будет утеряно. Значит стартовать новую и для всего. Чей код каптчи используется, свой или же чужой? 
 
Вот это new Date().getTime() для того, что подставляя новое случайное значение в url, заставлять браузер обращаться к серверу, а не к кешу. Если src каптчи, это только код формирующий ее, то важен просто факт обращения к этому скрипту, а session_start() этого скрипта будет продолжать сессию, id которой передает браузер. И вполне достаточно сначала 
 
<img id="captcha" src="./reg/?<?=time()?>"> 
 
и обновления: 
 
$('#reloadcaptcha').click(function() {
        var img = $('#captcha')[0];
        img.src = img.src.replace(/\d+/, new Date().getTime())
})
 
 
session_start() скрипта обрабатывающего прием формы также продолжает сессию, id которой передает браузер, в которой и хранится код коптчи, который в нее пишет скрипт ее формирующий. 
 
unset($_SESSION['captcha_keystring']);  - удаление кода каптчи из сессии должно происходить только после того, как пользователь ввел его правильно. 
 
У вас же где-то все запутано, либо также бездумно где-то unset(), потому и не работает.
	 | 
	
Я сделал по другому.. Но, как сделать так, чтоб данные не отправлялись, если код введен не верно?
Сейчас выводится true, если код верный, и false - если вводишь не верный код.
<form method="post" id="form_reg" action="#">
<p>Enter text shown below:</p>
<p><img id="captcha" src="./reg/?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p id="reloadcaptcha">Показать другой код</p>
<p><input type="text" name="keystring" id="keystring"><?php
if(count($_POST)>0){
	if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']){
		echo "true";
	}else{
		echo "false";
	}
}
unset($_SESSION['captcha_keystring']);
?>
</p>
<p><input type="submit" value="Check"></p>
</form>