Привет всем, имеется вот такая форма: Спойлер: форма <form action="gorod.php" method="post"> <select name="city_select"> <option value="0" selected>Выберите свой город для покупки товара</option> <option value="1"> Город1 </option> <option value="2"> Город2</option> </select> <input type="submit" value="Нажать для перехода"/> </form> Суть в том, что выбрав город, человека должно редиректить на index.php и прописывать в спан выбранный им город по кукам <span class="city_selected"></span> Содержимое gorod.php: Спойлер: gorod.php <?php $cities = array( "Выберите...", " Абаза ", " Абакан ", " Яхрома " ); if (isset($_POST['city_select'])) // обработка селекта { $city_id = (int) $_POST['city_select']; if ($city_id>0) { //$query = "SELECT `name` FROM `cities` WHERE `id` = '{$city_id}'"; //$result = mysql_query($query); //if ($row = mysql_fetch_assoc($result)) { if (isset($cities[$city_id])) { //$city_name = $row['name']; $city_name = $cities[$city_id]; setcookie('city_select', $city_name); setcookie('city_select_id', $city_id); header("Location: /?/".$city_id); die(); } } } ?> <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post"> <select name="city_select"> <option value="0"<?php if (!(isset($_COOKIE['city_select']))) echo " selected"; ?>>Выберите свой город </option> <?php $i = 1; //while($row = mysql_fetch_assoc($result)) while(isset($cities[$i])) { echo "<option value="{$i}""; if (isset($_COOKIE['city_select_id'])) { if ($_COOKIE['city_select_id']==$i) echo " selected"; } echo ">{$cities[$i]}</option>"; $i++; } ?> </select> <input type="submit" value="Нажать для перехода"/> </form> Т.е выбрав например Город1 должно кидать на ссылку такого вида index.php/?/1 и с прописанным по кукам <span class="city_selected">Город1</span> но ничего не происходит Выдаёт вот такую ошибку: Parse error: syntax error, unexpected '{', expecting ',' or ';' in Z:\home\test2.ru\www\gorod.php on line 46 Помогите пожалуйста разобраться
PHP: echo "<option value="{$i}""; Кавычки экранировать надо: PHP: echo "<option value=\"{$i}\""; или PHP: echo '<option value="'.$i.'"'; p.s. новичок а спойлерами пользоваться умет, круто!
Спасибо), но теперь денвер начал ругаться вот так: Спойлер Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test2.ru\www\gorod.php:1) in Z:\home\test2.ru\www\gorod.php on line 28 Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test2.ru\www\gorod.php:1) in Z:\home\test2.ru\www\gorod.php on line 29 Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test2.ru\www\gorod.php:1) in Z:\home\test2.ru\www\gorod.php on line 30 На эти вот строки: Спойлер setcookie('city_select', $city_name); setcookie('city_select_id', $city_id); header("Location: /?/".$city_id); Не подскажете как это исправить?
gorod.php - этот файл на первой строке начинает вывод информации, а заголовки (setcookie, header) нужно отправлять до вывода информации. Denwer лучше замени на хостинг с SSH или на виртуальный сервер с linux. Хочешь дальше мучатся, то поставь хотя бы Open-Server.ru с PHP7.