View file index_telinfo.php

File size: 6.23Kb
<?php
include('config.php');
include('functions.php');
// прелог
echo $top;
echo '</head><body>';
$action="";
if(isset($_GET['action'])) $action=trim(htmlspecialchars($_GET['action']));
switch($action)
{
	case 'myphone':
	// определение телефона посетителя
	$browser=explode("/",htmlspecialchars($_SERVER['HTTP_USER_AGENT']));
	$browser=$browser[0];
	// $browser="SIE-CX65";
	$sql="SELECT `ua`";
	foreach($data_names as $index=>$value)
	{
		$sql.=", `$index`";
	}
	$sql.=" FROM `top_models_data` WHERE `ua`='$browser' LIMIT 1;";
	$result=mysql_query($sql);
	$row_array=mysql_fetch_array($result);
	if(empty($row_array))
	{
		$xml_data=get_xml(@$HTTP_SERVER_VARS["HTTP_X_WAP_PROFILE"]);
		if($xml_data['http_code']==200)
		{
			$telinfo_array=array();
			// получение данных
			$data=$xml_data['page'];
			$data=str_replace("<rdf:li>","",$data);
			$data=str_replace("</rdf:li>","",$data);
			$data=str_replace("<rdf:Bag>","",$data);
			$data=str_replace("</rdf:Bag>","",$data);
			$data=str_replace("\r\n","",$data);
			// обработка
			$xml_parser=xml_parser_create();
			// установка функций обработки
			xml_set_element_handler($xml_parser,"startElement","endElement");
			// начального, конечного тега и данных
			xml_set_character_data_handler($xml_parser,"CharacterData");
			if(!xml_parse($xml_parser,$data))
			{
				// начало разбора и обработка ошибок
				die(sprintf("ошибка : %s строка %d",xml_error_string(xml_get_error_code($xml_parser)),xml_get_current_line_number($xml_parser)));
			}
			// освобождение обработчика событий
			xml_parser_free($xml_parser);
			$sql="INSERT INTO `top_models_data` VALUES ('$browser'";
			foreach($data_names as $index=>$value)
			{
				$sql.=", '".$telinfo_array[$index]."'";
			}
			$sql.=");";
			mysql_query($sql);
			// заголовок
			echo '<b>Характеристики Вашего телефона:</b><br>';
			foreach($data_names as $index=>$value)
			{
				if($index=='bitsperpixel')
				{
					if($telinfo_array[$index]==0) echo $value.": n/a<br>";
					else echo $value.": ".pow(2,$telinfo_array[$index])."<br>";
				}
				else echo $value.": ".$telinfo_array[$index]."<br>";
			}
		}
		else
		{
			echo 'Телефон не обнаружен!<br>';
			echo '<a href="index_telinfo.php">Назад</a><br>';
		}
	}
	else
	{
		// заголовок
		echo '<b>Характеристики Вашего телефона:</b><br>';
		// Вывод информации из базы
		foreach($data_names as $index=>$value)
		{
			if($index=='bitsperpixel')
			{
				if($row_array[$index]==0) echo $value.": n/a<br>";
				else echo $value.": ".pow(2,$row_array[$index])."<br>";
			}
			else echo $value.": ".$row_array[$index]."<br>";
		}
	}
	break;
	default:
	// вывод всех телефонов из базы
	$firm="";
	if(isset($_GET['f'])) $firm=trim(htmlspecialchars($_GET['f']));
	$model="";
	if(isset($_GET['m'])) $model=trim(htmlspecialchars($_GET['m']));
	// заголовок
	if(empty($_GET['m']))
	{
		echo '<b>Характеристики мобильных телефонов</b><br>';
		echo 'Данный сервис построен на основе автоматического заполнения данными от производителя,<br>';
		echo 'то есть - если Вашего телефона нет в этой базе, то просто попробуйте перейти по ссылке <br>';
		echo '<a href="index_telinfo.php?action=myphone">AUTO-Определение характеристик Вашего телефона</a> и если операция пройдет успешно,<br>';
		echo 'Ваши данные телефона окажутся в данной базе!<br>';
	}
	if($model!="" && $firm!="")
	{
		echo '<b>Характеристики выбранной модели:</b><br>';
		$result=mysql_query("SELECT * FROM `top_models_data` WHERE (`model`='".$model."' AND UPPER(`vendor`)='".strtoupper($firm)."')");
		$row_array=mysql_fetch_array($result);
		if(!empty($row_array))
		{
			// Вывод информации
			foreach($data_names as $index=>$value)
			{
				if($row_array[$index]=="") $row_array[$index]="n/a";
				if($index=='bitsperpixel')
				{
					if($row_array[$index]==0) echo $value.": n/a<br>";
					else echo $value.": ".pow(2,$row_array[$index])."<br>";
				}
				else echo $value.": ".$row_array[$index]."<br>";
			}
		}
		else echo 'По данной модели нет данных!<br>';
	}
	echo '<br>';
	// дерево телефонов
	echo '<b>Выберете производителя:</b><br>';
	$vendor_result=mysql_query("SELECT DISTINCT CONCAT(UPPER(SUBSTRING(`vendor`,1,1)),LOWER(SUBSTRING(`vendor`,2,LENGTH(`vendor`)-1))) FROM `top_models_data` WHERE 1;");
	$count_vendor_rows=mysql_num_rows($vendor_result);
	for($i=0;$i<$count_vendor_rows;$i++)
	{
		$vendor_array=mysql_fetch_row($vendor_result);
		if(!empty($vendor_array))
		{
			$models_count_result=mysql_query("SELECT COUNT(DISTINCT UPPER(`model`)) FROM `top_models_data` WHERE UPPER(`vendor`)='".strtoupper($vendor_array[0])."'");
			$count_model=mysql_fetch_row($models_count_result);
			if($firm==$vendor_array[0])
			{
				$models_result=mysql_query("SELECT DISTINCT UPPER(`model`) FROM `top_models_data` WHERE UPPER(`vendor`)='".strtoupper($vendor_array[0])."'");
				echo '<img src="img/minus.png" alt=""> '.$vendor_array[0].'('.$count_model[0].')<br>';
				$count_model_rows=mysql_num_rows($models_result);
				$phone_pict="phone.png";
				for($j=0;$j<$count_model_rows;$j++)
				{
					if($j==$count_model_rows-1)
					$phone_pict="phone_end.png";
					$models_array=mysql_fetch_row($models_result);
					if($model==$models_array[0])
					echo '<img src="img/'.$phone_pict.'" alt=""> '.$models_array[0].'<br>';
					else echo '<img src="img/'.$phone_pict.'" alt=""> <a href="index.php?f='.$vendor_array[0].'&m='.$models_array[0].'">'.$models_array[0].'</a><br>';
				}
				echo '<br>';
			}
			else echo '<img src="img/plus.png" alt=""> <a href="index.php?f='.$vendor_array[0].'">'.$vendor_array[0].'</a>('.$count_model[0].')<br>';
		}
		else echo 'Категории отсутствуют!<br>';
	}
}
echo '</body></html>';
?>