@4Geka
PHP

Проблема с записью Session php mysql?

Проблема такова, есть несколько .phtml страниц, на одной из них выбирается город из списка Mysql, при выборе меняются несколько полей с названием города, но когда захожу на главную страницу, то все поля сбрасываются, в чем я накосячил? Делал с помощью $_SESSION['...'] = $_POST['...'];

Главная страница:

<?php
	session_start();

    ini_set('session.gc_maxlifetime', 3600*24*30);
    ini_set('session.cookie_lifetime', 3600*24*30);

	if(!$_SESSION['locality'])
	{
		$_SESSION['locality'] = $_POST['title'];
    }

?>
<html slick-uniqueid="3">
	<head>
<div class="location col-xs-2">
							<span class="">
								<img alt="#" src="<?=TEMP_DEF?>/images/location_icon.png">
									<span id="simple_txt_n1"><a href="/citylist/">Ваш город: </a></span><a href="/citylist/" class="showMyCity"><?=$_SESSION['locality'] = $_POST['title'];?></a></span>
							</span>
						</div>


Страница выбора городов:

<?   unset($_SESSION['locality']);
session_destroy();
?>

<?
// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='...'; // имя базы данных
$user='...'; // заданное вами имя пользователя
$pswd='...'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");

mysql_set_charset('utf8');

function is_sel($a, $field)
{
	$b = isset($_POST[$field])?$_POST[$field]:NULL;
	if($a == $b) return 'selected="selected"';
}

$res = mysql_query('SELECT * FROM city');
?>
<div class="container">
	<form id="frm" method="post">
		<select name="region" onchange="document.getElementById('frm').submit()" >
			<option value='null'>- Выберите регион -</option>
			<?
			// выводим все строки из столбца name таблицы country
			while($row = mysql_fetch_array($res))
				echo "<option ".is_sel($row['id_record'],'region')." value='" . $row['id_record'] . "'>" . $row['region'] . "</option>\r\n";
			echo "</select>";

			if(isset($_POST['region']))
			{
				$res=mysql_query('SELECT * FROM city WHERE region="'.mysql_real_escape_string($_POST['region']).'"');

				if(mysql_num_rows($res)){

					echo "<select name=\"title\" onchange=\" document.getElementById('frm').submit();\" >
    <option  id=\"title\" value='0'>- Выберите pегион -</option>";

					while($row = mysql_fetch_array($res))
						echo "<option ".is_sel($row['id_record'],'title')." value='" . $row['id_record'] . "'>" . $row['title'] . "</option>\r\n";

					echo "</select>";

				}else{ // выбираю города без учета региона

					$res=mysql_query('SELECT * FROM city');

					echo "<select id=\"title\" name=\"title\" onchange=\"document.getElementById('frm').submit()\" >
    <option  value='0'>- Выберите город -</option>";

					while($row = mysql_fetch_array($res))
						echo "<option ".is_sel($row['id'],'title')." value='" . $row['id'] . "'>" . $row['title'] . "</option>\r\n";

					echo "</select>";

				}

			}

		
			?>
	</form>
	<?
	$city = isset($_POST['title'])?$_POST['title']:NULL;
	if($city && $city !== 0)
	{
		$res=mysql_query('SELECT * FROM city WHERE id_record='.(int)$_POST['title'].' LIMIT 1');
		$row = mysql_fetch_array($res);
		echo "<h1>Ваш город ".$_SESSION['locality']= $row['title']."</h1>";
	}
	?>
</div>


Подскажите в чем не прав
  • Вопрос задан
  • 415 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Это просто каша из символов, нифига неясно потому что глаза можно сломать, и сами теперь разобраться не можете, т.к. код просто нечитаемый и невозможно понять где хвост где грива. Код как будто из середины 90х. mysql_ уже давно никто не использует, т.к. depricated, никто это г разгребать не будет, перепишите нормально если вам хочется чего-либо достичь в программировании. Не мучайте людей такими простынями гкода.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы