передача параметров в строке

Discussion in 'PHP' started by j0y, 10 Jun 2005.

  1. j0y

    j0y Elder - Старейшина

    Joined:
    9 Jan 2005
    Messages:
    37
    Likes Received:
    1
    Reputations:
    0
    такая вот проблема: есть участок строки
    HTML:
     "...action=<?$_SERVER['SCRIPT_NAME']?>..." 
    после нажатия на сабмит перегружается скрипт. загружать скрипт без параметров нет смысла. задача стоит в том чтобы при нажатии на сабмит в action передавалось имя скрипта и передовались жизненно важные параметры. как это можно сделать ?
     
  2. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Ты кое-что упустил... Вот так у тебя должно быть:
    Code:
    "...action=<?=$_SERVER['SCRIPT_NAME']?>..."
     
  3. j0y

    j0y Elder - Старейшина

    Joined:
    9 Jan 2005
    Messages:
    37
    Likes Received:
    1
    Reputations:
    0
    так и есть просто напечатал не верно. идея такая: параметры передаются в скрипт из другого скрипта методом get ссылкой например script.php?t=1, но в этом скрипте(script.php) есть кнопка сабмит, которая его перезагружает, т.е. этот скрипт запускается но уже без переданного до этого в ссылке параметра $t=1 а следовательно дальнейшее выполнение не возможно тк теряется этот параметр $t. так вот, как можно сделать так чтобы после нажатия на сабмит при самоперезагрузки в скрипт передавался этот очень нужный параметр, а вернее сказать чтобы не терялся ?
     
    #3 j0y, 10 Jun 2005
    Last edited: 10 Jun 2005
  4. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    В форму вставить следующий код
    <input type=hidden name=t value='<?echo$t;?>' style='display:none;'>
    вроде так.

    [offtop]
    Всем привет, кого давно не видел
    [/offtop]
     
    _________________________
  5. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    А нет :) хидден параметры лучше не делать их любят изменять не добросовестные пользователи =)
    А вопще попробуй добовлять этот параметр в форму что-то типа:
    Code:
    echo "<form name=\"\" method=\"get\" action=\"http://localhost/script.php?t=$t\">
    Пробни...Только проверяй переменную $t.
     
  6. j0y

    j0y Elder - Старейшина

    Joined:
    9 Jan 2005
    Messages:
    37
    Likes Received:
    1
    Reputations:
    0
    пробовал уже так. не работает. после нажатия на кнопку скрипт перегружается, а переменная остаётся пустой строкой. может сделать так чтобы при вызове этого скрипта переменная сохранялась во временный файл, а затем после нажатия на сабмит считывалась из файла и файл удалялся.... хз надо попробовать но я думаю это не лучший вариант

    зы: так а чем же так плохо поле хидден ?
     
  7. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    зы Изменяют его вот чем.
    Не, с файлом будет гимор...
    Лучше уж тогда или куки(херово) или через сессии...
     
  8. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Ну и че? Так же могут изменить параметр в адресной строке, и его, между прочим, изменяют горазлдо чаще =) Это бред. Вставляй хидден и не парься, ибо тебе от этого не уйти. Как бы ты не передавал переменную t, ее все равно можно будет изменить, нужно просто задать ее рамки и все. А через куку или сессию... ну ну. Вперед Сусанин!
     
    _________________________
  9. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Незнаю,я привык считать хидден плохим тоном.
    Ну например я в скриптах передаю важные параметры через сессии...Ну например имя полььзователя..
     
  10. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    Ок, показываю конкретный пример, есть скрипт
    http://www.ru/script.php
    на него передается переменная $t со значением '1', в коде скрипта иммется форма, по сабмиту которой нужно чтобы переменная $t не утерялась. Если вы умудритесь запихать ее в строку при сабмите, то получится что-то типа
    http://www.ru/script.php?t=1
    что тебе мешает изменить ее тут? Или даже при обращении, когда форма генерится первый раз? Ответ - ничего!
    Далее. В самое начало скрипта порписываем
    if(!is_numeric($t)){$t='1';}
    теперь переменная $t может быть только числом и так далее, дорабатывать правила можно долго. Это спор не о чем. Если ты невежа в данном вопросе - пормолчи. Если ты считаешь что переменную в hidden можно изменить... Ну да, плохому танцору яйца мешают. Изменить можно любую передаваемую переменную. Плохой тон? Иди скажи это google.com, yahoo.com, yandex.ru, rambler.ru и так далее.
     
    _________________________
  11. j0y

    j0y Elder - Старейшина

    Joined:
    9 Jan 2005
    Messages:
    37
    Likes Received:
    1
    Reputations:
    0
    без сессий никак ?
    неужели нельзя как-то в action задать чтобы при нажатии на сабмит скрипт перезагружался с передачей этого параметра что-то вроде
    <form method='GET' action="<?=$_SERVER['SCRIPT_NAME']."?t=".$t?> name="frm">
    <input type='submit' name='sbmt' value='submit'>
    </form>
    но это не работает тк после нажатия сабмита значение $t теряется, стало быть строка
    <?=$_SERVER['SCRIPT_NAME']."?t=".$t?> не работает, а вернее работает но со значением $t=""(пустая строка)
     
  12. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    мож конешно я плохо вчитался в смысл..., но почему нельзя referer юзать ?
     
  13. j0y

    j0y Elder - Старейшина

    Joined:
    9 Jan 2005
    Messages:
    37
    Likes Received:
    1
    Reputations:
    0
    зачем реферер ?
    идея такая: допустим имеется страница с постами и над каждым постом ссылка "удалить" вида

    <a href=delete.php?id=1>УДАЛИТЬ</a>.

    это ссылка на скрипт который должен с этой страницы считать удаляемый пост, вывести его на экран с вопросом "Удалить ?" и внизу создать сабмит "удалить !". так вот жмём на ссылку удалить над постом -> открывается скрипт -> выводится вопрос "Удалить ?" -> выводится удаляемый пост -> выводится кнопка сабмит "Удалить !".
    жму на кнопку "Удалить !" дальше должен открыться первый файл, по параметру $id должен найтись требуемый пост и методом замены строк замениться на пустую строку.
    -----------------------------------------------------------------------------------------
    как происходит в результате: я жму на ссылку <a href=delete.php?id=5>УДАЛИТЬ</a>
    открывается скрипт delete.php и в этот скрипт передаётся переменная $id=5, стало быть после этого открывается файл с постами и считывается еужный пост по ид и выводится в на экран с вопросом "Удалить ?" внизу кнопка "Удалить !". жму на неё, происходит перезагрузка скрипта delete.php но параметр $id уже ему не возвращается, после этого выводится ошибка
     
  14. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    ну в переменной referer остаеитья delete.php?id=5, от туда и возюми id
     
Loading...
Similar Threads - передача параметров строке
  1. GAiN
    Replies:
    3
    Views:
    7,541