Помогите нубу решить проблему со скриптом.

Статус
В этой теме нельзя размещать новые ответы.

Дерзкий

Мой дом здесь!
Регистрация
27 Июн 2009
Сообщения
101
Реакции
403
Вобшем вот код который обрабатывет формы
Код:
if ((isset($_POST['result'])))  
{

	if (isset($_SESSION['save']))
	{
	exit();																	      
	}

	if ((isset($_POST['result'])) && ((isset($_POST['last_name']))))
			{

				$code="324534345345345";
				$hopscheck=$_POST['result'].$code;
				$mdhopscheck=md5($hopscheck);
			}

	if ((isset($_POST['hop'])) && ($mdhopscheck==$_POST['hop']))
		{


 if (($_FILES['myfile1']['error']>1) || ($_FILES['myfile1']['size']=0))
	  {
		 $actual_file1_1_1="";

	  }
	  else
	  {
		$request= "SELECT count(*) FROM fioiq"; 
		$count_rows=mysql_fetch_array(mysql_query($request));  
//		mysql_close();
		$count_rows[0]=$count_rows[0]+1; 

		$actual_file1_1=$path_design.'/'.($count_rows[0]).'.JPG';
  	    $temp_file_1=$_FILES['myfile1']['tmp_name'];
		move_uploaded_file($temp_file_1,$actual_file1_1);
		$actual_file1_1_1=($count_rows[0]).'.JPG';

}
																				      







	
		$iqt=HtmlSpecialChars($_POST['result']);
		$familiyat=$_POST['last_name'];
		$imyat=$_POST['first_name'];
		$otchestvot=HtmlSpecialChars($_POST['middle_name']);
		$aboutme=HtmlSpecialChars($_POST['aboutme']);
		$photo=$actual_file1_1_1;
		if (strlen($aboutme)>200)
			{
			$aboutme=substr ($aboutme,0,200);  
			}

	



		mysql_query(
		"Insert INTO fioiq (iq,familiya,imya,otchestvo,aboutme,photo) VALUES('".
		addslashes($iqt)."','".
		addslashes($familiyat)."','".
		addslashes($imyat)."','".
		addslashes($otchestvot)."','".
		addslashes($aboutme)."','".
		addslashes($photo)."')"
			);

		$_SESSION['save']='yes'; 
		?>
		<br><br><br>


<b><font size=3>Ваш диплом Заполнен<br><br><br>
		Постоянный адрес вашего диплома:<br><br>
	</font>	
<font size=2>
<?
if (!(isset($_SESSION['refuser'])))
{
?>
	<a href="<? echo $urltest;?>sertificat.php?id=<? echo  mysql_insert_id(); ?>"><? echo $urltest;?>sertificat.php?id=<? echo  mysql_insert_id(); ?></a>
<?
}
else
{
?>
<a href="<? echo $urltest;?>sertificat.php?id=<? echo  mysql_insert_id(); ?>&rid=<? echo $_SESSION['refuser'];?>"><? echo $urltest;?>sertificat.php?id=<? echo  mysql_insert_id(); ?>&rid=<? echo $_SESSION['refuser'];?></a>
<?
}

?>

		
		
		
</font>
<b>
		<br>
		<br>
		<br>
		<?

	
		
		} 
else
	{
echo "Внимание !<br>Попытка взлома системы обработана, IP записан, при 10 попытках взлома, автоматически отправляется информационное письмо вашему провайдеру";
	}
}

Проблема в чём если я ему в глобальном массиве $_POST передаю русские символы или спец символы выдаёт echo "Внимание !<br>Попытка взлома системы обработана, IP записан, при 10 попытках взлома, автоматически отправляется информационное письмо вашему провайдеру"

А если только латиницу и спец сиволы срабатывает правильно.

Как его можно подкаректировать что бы он срабатывал правильно и с рускими буквами и с латинскими и спец символами.
 
Возможно дело в кодировке, в этом месте:
$code="324534345345345";
$hopscheck=$_POST['result'].$code;
$mdhopscheck=md5($hopscheck);

if ((isset($_POST['hop'])) && ($mdhopscheck==$_POST['hop']))
 
а хтмл код формы и сам код пополнее тк тут мало понятно еще бы дамп массивов POST и SESSION

так же какая кодировка у скрипта? может косяк в кодировке тк при этом в русском могу оказаться не печатные символы если кодировка неверная
 
ну так смотри сорцы

сначала
PHP:
$code="324534345345345";
$hopscheck=$_POST['result'].$code;
$mdhopscheck=md5($hopscheck);
и потом надпись которая у тебя если
PHP:
// вот это уловие не выолняется
if ((isset($_POST['hop'])) && ($mdhopscheck==$_POST['hop']))
{...}
else { // твоя ошибка 
}
варианта соответственно два : либо не передаешь $_POST['hop'] либо передаешь неверное значение

решать можно по разному - от вырезания этого кода ( т.е. тупое кастрирование ) до разбора в чем дело со стороны клиента ( там по идее должен быть js код который формирует значение hop от вводимых данных )
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху