За последние 24 часа нас посетили 15756 программистов и 1664 робота. Сейчас ищут 811 программистов ...

повторение GET

Тема в разделе "PHP для новичков", создана пользователем codend, 4 ноя 2015.

  1. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    Дорогие друзья, никак не могу разобратся, почему дублируются get ?

    К примеру lala.ru/?lang=lat?lang=ru?lang=lat?lang=ru
    и
    lala.ru/?g=lala&lang=lat&lang=ru&lang=lat&lang=ru


    для главной страницы ?lang=ru, а для других &lang=ru

    Код (PHP):
    1. <?if($_SERVER['REQUEST_URI'] == '/') {?>[url="<?=preg_replace('/(\&\?)lang\=.*$/i', '$1', $_SERVER['REQUEST_URI'])?>&lang=ru"]ru</font>[/url]<?}?>
    Код (PHP):
    1. $l=$_COOKIE['lang'];
    2.  
    3. if(($_GET['lang'] && ($_GET['lang']=='ru' || $_GET['lang']=='lat')) || $_POST['langu']){
    4. $l=$_GET['lang'];
    5. if(!$l){$l=$_POST['lang'];}
    6. setcookie("lang", $l);  
    7.      
    8. }
    9.  
    10. if(!$l){$l='ru';}
    11.  
    12. if ($l=='lat') {
    13.  
    14. $path_html='htmls_lat/';
    15. $arr = array('religion' => ''.$upp['zagalovok_lat'].' lala', 'svadba' => ''.$upp1['zagalovok_lat'].' lalala');
    16.  
    17. $title = isset($arr[$_GET['g']]) ? $arr[$_GET['g']] : 'xxxxxx';
    18.  
    19.  
    20. } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    что передаешь то и отображается.
     
  3. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    Ну это понятно, а как сделать чтобы не плюсовалось и менялось в том же ?lang=lat на ?lang=ru?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не передавать его по пять раз за раз
     
  5. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    Как это сделать? помогите пожалуйста.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    примерно так
    Код (PHP):
    1. //создание cookie
    2. if (!empty($_GET['lang'])) {
    3.     setcookie('lang', $_GET['lang']);
    4. }
    5.  
    6. //проверка существования нужной куки
    7. if (!empty($_COOKIE['lang'])) {
    8.     //значит язык уже выбран
    9.     //Убираем меню выбора языка, и отображаем на экране выбранный язык.
    10.     echo "Выюран язык: " . $_COOKIE['lang'];
    11. } else {
    12.     // язык будет выбран по умолчанию.
    13.     // и будет выведено меню выбора языка
    14.     echo "<a href='?lang=ru'>ru</a><br>";
    15.     echo "<a href='?lang=ru'>en</a><br>";
    16.     echo "<a href='?lang=ru'>lat</a><br>";
    17. }
     
  8. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    а если обратно надо поменять на рус то как?
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ну, выводишь меню, где будет выбор, а выбранный будет selected

    Добавлено спустя 2 минуты 8 секунд:
    Код (PHP):
    1. <select>
    2.     <option value="ru" selected>ru</option>
    3.     <option value="en" >en</option>
    4.     <option value="lat" >lat</option>
    5. </select>
     
  10. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    Да работает, а как сделать чтобы - к примеру я нахожусь на странице /?g=svadba и при смене языка я оставался на той же странице?
     
  11. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    переадрессовать пользователя используя $_SERVER['HTTP_REFERER']
     
  12. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    куда вставить? :)
     
  13. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    внутри условия создания кук после создания кук, кажется. Но вообще, это все будет большой костыль.
     
  14. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    можете показать на коде? пожалуйста

    Добавлено спустя 1 минуту 13 секунд:
    делаю так и выдает ошибку 500

    Код (PHP):
    1. $l=$_COOKIE['lang'];
    2.  
    3. if(($_GET['lang'] && ($_GET['lang']=='ru' || $_GET['lang']=='lat')) || $_POST['langu']){
    4. $l=$_GET['lang'];
    5. if(!$l){$l=$_POST['langu'];}
    6. setcookie("lang", $l);    
    7.      header ("Location: $_SERVER['HTTP_REFERER']");
    8. }
    9.  
    10. if ($l=='ru') {
    11.  
    12. $path_html='htmls/';
    13.  
    14. }
    15.     
    16.  
    17. if ($l=='lat') {
    18.  
    19. $path_html='htmls_lat/';
    20. $arr = array('religion' => ''.$upp['zagalovok_lat'].' | Ora Legendo, Riga', 'svadba' => ''.$upp1['zagalovok_lat'].' | Ora Legendo, Riga', 'exclusive' => ''.$upp2['zagalovok_lat'].' | Ora Legendo, Riga',  'women' => ''.$upp4['zagalovok_lat'].' | Ora Legendo, Riga', 'blog' => 'Ora Legendo | Ювелирная мастерская в Риге, изготовление на заказ [Блог]', 'man' => ''.$upp3['zagalovok_lat'].' | Ora Legendo, Riga', 'contacts' => 'Ora Legendo | Контакты');
    21. $title = isset($arr[$_GET['g']]) ? $arr[$_GET['g']] : 'Ora Legendo ювелирное ателье';
    22.  
    23.  
    24. }
    25.      
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Код (PHP):
    1. header ("Location: {$_SERVER['HTTP_REFERER']}"); 
     
  16. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Включите ошибки. Это раз. Когда массив вставляется внутри строки, индекс не берётся в кавычки - в любом норм. учебнике php написано, их неплохо бы читать.
    Код (PHP):
    1. header ("Location: $_SERVER[HTTP_REFERER]");
    Это два. Ну и три - я же вам чудесную функцию подсказал
     
  17. codend

    codend Новичок

    С нами с:
    22 сен 2015
    Сообщения:
    30
    Симпатии:
    0
    можете показать на коде куда вставить? пожалуйста

    Добавлено спустя 58 секунд:
    все получилось спасибо!!