Помогите пожалуйста разобраться с кодом

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

diegos

Постоялец
Регистрация
5 Дек 2008
Сообщения
63
Реакции
12
Есть такой код после дезендера

PHP:
<?php
ini_set('display_errors',1);
include( "config.php" );
include( "common.php" );
if ( isset( $_GET['cur'] ) )
{
	$cur = intval( $_GET['cur'] );
}
if ( isset( $_REQUEST['search'] ) )
{
	$search = $_REQUEST['search'];
}
if ( isset( $_REQUEST['age_min'] ) )
{
	$age_min = intval( $_REQUEST['age_min'] );
}
if ( isset( $_REQUEST['age_max'] ) )
{
	$age_max = intval( $_REQUEST['age_max'] );
}
if ( isset( $_REQUEST['height_min'] ) )
{
	$height_min = intval( $_REQUEST['height_min'] );
}
if ( isset( $_REQUEST['height_max'] ) )
{
	$height_max = intval( $_REQUEST['height_max'] );
}
if ( isset( $_REQUEST['weight_min'] ) )
{
	$weight_min = intval( $_REQUEST['weight_min'] );
}
if ( isset( $_REQUEST['weight_max'] ) )
{
	$weight_max = intval( $_REQUEST['weight_max'] );
}
if ( isset( $_REQUEST['gender'] ) )
{
	$gender = intval( $_REQUEST['gender'] );
}
if ( isset( $_POST['country'] ) )
{
	$country = intval( $_POST['country'] );
}
if ( isset( $_POST['region'] ) )
{
	$region = intval( $_POST['region'] );
}
if ( isset( $_POST['city'] ) )
{
	$city = intval( $_POST['city'] );
}
$ages = range( 18, 85 );
$heights = range( 130, 220 );
$weights = range( 40, 150 );
$strSQL = "SELECT DISTINCT id, name FROM COUNTRY_SPR GROUP BY id ORDER BY name ";
$rs = $dbconn->execute( $strSQL );
$i = 0;
$spr_arr = array( );
while ( !$rs->EOF )
{
	$row = $rs->getrowassoc( false );
	$spr_arr[$i]['id'] = $row['id'];
	$spr_arr[$i]['name'] = stripslashes( $row['name'] );
	$rs->movenext( );
	$i++;
}
$smarty->assign( "countries", $spr_arr );
if ( isset( $cur ) )
{
	if ( isset( $_SESSION['Search']['search'] ) )
	{
		$search = $_SESSION['Search']['search'];
	}
	if ( isset( $_SESSION['Search']['age_min'] ) )
	{
		$age_min = $_SESSION['Search']['age_min'];
	}
	if ( isset( $_SESSION['Search']['age_max'] ) )
	{
		$age_max = $_SESSION['Search']['age_max'];
	}
	if ( isset( $_SESSION['Search']['height_min'] ) )
	{
		$height_min = $_SESSION['Search']['height_min'];
	}
	if ( isset( $_SESSION['Search']['height_max'] ) )
	{
		$height_max = $_SESSION['Search']['height_max'];
	}
	if ( isset( $_SESSION['Search']['weight_min'] ) )
	{
		$weight_min = $_SESSION['Search']['weight_min'];
	}
	if ( isset( $_SESSION['Search']['weight_max'] ) )
	{
		$weight_max = $_SESSION['Search']['weight_max'];
	}
	if ( isset( $_SESSION['Search']['country'] ) )
	{
		$country = $_SESSION['Search']['country'];
	}
	if ( isset( $_SESSION['Search']['region'] ) )
	{
		$region = $_SESSION['Search']['region'];
	}
	if ( isset( $_SESSION['Search']['city'] ) )
	{
		$city = $_SESSION['Search']['city'];
	}
	if ( isset( $_SESSION['Search']['gender'] ) )
	{
		$gender = $_SESSION['Search']['gender'];
	}
}
if ( !isset( $cur ) )
{
	$cur = 1;
}
$result = false;
$errors = array( );
if ( array( ) )
{
	if ( isset( $search, $age_min ) && $age_min && isset( $age_max ) && $age_max && $age_max < $age_min )
	{
		$errors[] = $lang['error']['age_error'];
	}
	if ( isset( $height_min ) && $height_min && isset( $height_max ) && $height_max && $height_max < $height_min )
	{
		$errors[] = $lang['error']['height_error'];
	}
	if ( isset( $weight_min ) && $weight_min && isset( $weight_max ) && $weight_max && $weight_max < $weight_min )
	{
		$errors[] = $lang['error']['weight_error'];
	}
	if ( count( $errors ) == 0 )
	{
		$result = true;
		$_SESSION['Search'] = array( );
		if ( isset( $search ) )
		{
			$_SESSION['Search']['search'] = $search;
		}
		if ( isset( $age_min ) )
		{
			$_SESSION['Search']['age_min'] = $age_min;
		}
		if ( isset( $age_max ) )
		{
			$_SESSION['Search']['age_max'] = $age_max;
		}
		if ( isset( $height_min ) )
		{
			$_SESSION['Search']['height_min'] = $height_min;
		}
		if ( isset( $height_max ) )
		{
			$_SESSION['Search']['height_max'] = $height_max;
		}
		if ( isset( $weight_min ) )
		{
			$_SESSION['Search']['weight_min'] = $weight_min;
		}
		if ( isset( $weight_max ) )
		{
			$_SESSION['Search']['weight_max'] = $weight_max;
		}
		if ( isset( $country ) )
		{
			$_SESSION['Search']['country'] = $country;
		}
		if ( isset( $region ) )
		{
			$_SESSION['Search']['region'] = $region;
		}
		if ( isset( $city ) )
		{
			$_SESSION['Search']['city'] = $city;
		}
		if ( isset( $gender ) )
		{
			$_SESSION['Search']['gender'] = $gender;
		}
		$sql_query = "";
		if ( isset( $age_min ) && $age_min )
		{
			$sql_query .= " AND (b_date='0000-00-00' OR (FLOOR((TO_DAYS(CURRENT_DATE()) - TO_DAYS(b_date))/365.25)) >=".$age_min.") ";
		}
		if ( isset( $age_max ) && $age_max )
		{
			$sql_query .= " AND (b_date='0000-00-00' OR (FLOOR((TO_DAYS(CURRENT_DATE()) - TO_DAYS(b_date))/365.25)) <=".$age_max.") ";
		}
		if ( isset( $height_min ) && $height_min )
		{
			$sql_query .= " AND height>=".$height_min;
		}
		if ( isset( $height_max ) && $height_max )
		{
			$sql_query .= " AND height<=".$height_max;
		}
		if ( isset( $weight_min ) && $weight_min )
		{
			$sql_query .= " AND weight>=".$weight_min;
		}
		if ( isset( $weight_max ) && $weight_max )
		{
			$sql_query .= " AND weight<=".$weight_max;
		}
		if ( isset( $country ) && $country != "" && $country != "0" )
		{
			$sql_query .= " AND CountryID=".$country;
		}
		if ( isset( $region ) && $region != "" && $region != "0" )
		{
			$sql_query .= " AND RegionID=".$region;
		}
		if ( isset( $city ) && $city != "" && $city != "0" )
		{
			$sql_query .= " AND CityID=".$city;
		}
		$col = 10;
		$strSQL = "\tSELECT id\r\n            \t \tFROM USERS WHERE visible='1' AND gender='".$gender."' ".$sql_query." ORDER BY id DESC ";
		$rs = $dbconn->execute( $strSQL );
		$col_str = ceil( $rs->recordcount( ) / $col );
		if ( $col_str == 1 )
		{
			$col_str = 0;
		}
		if ( 1 < $cur )
		{
			$pages_links = "<a href=\"search.php?cur=".( $cur - 1 )."\"><< Previous</a>";
		}
		else
		{
			$pages_links = "";
		}
		$pages_links .= "&nbsp;&nbsp;&nbsp;";
		if ( $cur < $col_str )
		{
			$pages_links .= "<a href=\"search.php?cur=".( $cur + 1 )."\">Next >></a>";
		}
		else
		{
			$pages_links .= "";
		}
		$smarty->assign( "pages_links", $pages_links );
		switch ( $gender )
		{
		case 1 :
			$folder = "men";
			break;
		case 2 :
			$folder = "ladies";
		}
		$rs = $dbconn->execute( "SELECT id, FirstName, LastName, height, weight, b_date\r\n\t\t\t\t            \tFROM USERS WHERE visible='1' AND gender='".$gender."' ".$sql_query."\r\n\t\t\t\t            \tORDER BY id DESC LIMIT ".( $cur - 1 ) * $col.",".$col );
		$num = 0;
		$ladies = array( );
		while ( !$rs->EOF )
		{
			$row = $rs->getrowassoc( false );
			$rs_im = $dbconn->execute( "SELECT id, photo FROM USER_PHOTOS WHERE id_user=".$row['id']." ORDER BY id" );
			$row_im = $rs_im->getrowassoc( false );
			if ( isset( $row_im['photo'] ) && $row_im['photo'] != "" )
			{
				$users[$num]['Image'] = dellastslash( $config['server'] )."/".trimslash( $config['site_root'] )."/image/".$folder."/thumb_".stripslashes( $row_im['photo'] );
			}
			else
			{
				$users[$num]['Image'] = "";
			}
			$users[$num]['id'] = $row['id'];
			$users[$num]['FirstName'] = stripslashes( $row['FirstName'] );
			$users[$num]['LastName'] = stripslashes( $row['LastName'] );
			$users[$num]['Height'] = $row['height'] != "" && $row['height'] != "0" ? $row['height'] : $lang['profile']['not_filled'];
			$users[$num]['Weight'] = $row['weight'] != "" && $row['weight'] != "0" ? $row['weight'] : $lang['profile']['not_filled'];
			if ( $row['b_date'] != "0000-00-00" )
			{
				$users[$num]['Age'] = agefrombdate( $row['b_date'] );
			}
			else
			{
				$users[$num]['Age'] = $lang['profile']['not_filled'];
			}
			$users[$num]['BtnCont'] = false;
			$users[$num]['BtnMail'] = false;
			if ( isset( $_SESSION['ManID'] ) )
			{
				$rs_cont = $dbconn->execute( "SELECT LadyID FROM MEN_CONTACTS WHERE LadyID=".$row['id']." AND ManID=".$_SESSION['ManID'] );
				if ( $rs_cont->recordcount( ) )
				{
					$users[$num]['BtnMail'] = true;
				}
				else
				{
					$users[$num]['BtnCont'] = true;
				}
			}
			$num++;
			$rs->movenext( );
		}
		if ( isset( $users ) )
		{
			$smarty->assign( "users", $users );
		}
	}
}
else
{
	$age_min = $age_max = $height_min = $height_max = $weight_min = $weight_max = $country = $city = 0;
}
if ( isset( $age_min ) )
{
	$smarty->assign( "age_min", $age_min );
}
if ( isset( $age_max ) )
{
	$smarty->assign( "age_max", $age_max );
}
if ( isset( $height_min ) )
{
	$smarty->assign( "height_min", $height_min );
}
if ( isset( $height_max ) )
{
	$smarty->assign( "height_max", $height_max );
}
if ( isset( $weight_min ) )
{
	$smarty->assign( "weight_min", $weight_min );
}
if ( isset( $weight_max ) )
{
	$smarty->assign( "weight_max", $weight_max );
}
if ( isset( $country ) )
{
	$smarty->assign( "country", $country );
}
if ( isset( $city ) )
{
	$smarty->assign( "city", $city );
}
if ( isset( $_SESSION['ErrorsSearch'] ) )
{
	$smarty->assign( "errors_search", $_SESSION['ErrorsSearch'] );
}
$smarty->assign( "ages", $ages );
$smarty->assign( "heights", $heights );
$smarty->assign( "weights", $weights );
if ( isset( $gender ) )
{
	$smarty->assign( "gender", $gender );
}
$smarty->assign( "errors", $errors );
$smarty->assign( "result", $result );
$smarty->display( "search.tpl" );
?>

Это файл search.php

Помгите пожалуйста разобраться какие в этом коде есть явные ошибки? Так как не работает поиск...файл выполняется без ошибок но сам поиск не работает. когда заменяю зашифрованным файлом, то работает. Одним словом в этом коде есть ошибки. ПОМОГИТЕ НАЙТИ ПОЖАЛЙСТА! Кто знает хорошо PHP, думаю Вы сразу заметите!

Заранее благодарю!
 
Выведите на экран все sql запросы ($strSQL) и запостите на форум
 
А что за скрипт в оригинале? Как называется?
 
Выведите на экран все sql запросы ($strSQL) и запостите на форум

А как выводятся sql запросы на экран? Подскажите пожалуйста!

P.S. Сам поиск - очень простенький. Там несколько критериев всего:

Найти: мужчин/женщин
Возраст: мин/макс
Рост: мин/макс
Вес: мин/макс
Страна: выбор
Регион: выбор
Город: выбор

Это простенький скрипт сайта знакомств.

Добавлено через 20 минут
насколько я сталкивался с редактированием кода после дезендера, то вообщем то ошибки в основном очень простые, типо: объединение двух строк в одну с использованием &&, или скобки где то не проставились... А вообщем сам код дезендер декодирует отлично, почти один в один, я думаю ошибка есть только явная, т.е. отклонение от правил построения кода или в такой комбинации, которая не используется для написания кода. Но это может только заметить программист, который пишет PHP.
 
А как выводятся sql запросы на экран? Подскажите пожалуйста!
P.S. Сам поиск - очень простенький. Там несколько критериев всего:
Найти: мужчин/женщин
Возраст: мин/макс
Рост: мин/макс
Вес: мин/макс
Страна: выбор
Регион: выбор
Город: выбор
Это простенький скрипт сайта знакомств.
Добавлено через 20 минут
насколько я сталкивался с редактированием кода после дезендера, то вообщем то ошибки в основном очень простые, типо: объединение двух строк в одну с использованием &&, или скобки где то не проставились... А вообщем сам код дезендер декодирует отлично, почти один в один, я думаю ошибка есть только явная, т.е. отклонение от правил построения кода или в такой комбинации, которая не используется для написания кода. Но это может только заметить программист, который пишет PHP.
ну, ошибки после дезенда могут быть и не такими простыми- может потеряться логика скрипта и ппц.
В данном случае-
PHP:
$result = false; 
$errors = array( ); 
if ( array( ) )
ошибка тут- в условии, ибо всегда будет лож. Что туда ставить-
возможно верно
PHP:
if ($gender) {
если не указан пол (он без всяких условий вставляется в условие поиска), либо что-то другое там должно стаять. В любом случае если условие неверно- поиск не будет работать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху