[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передать данные из формы хитрым способом
zusicks438
Всем доброго времени суток.

Имеем обычную HTML-форму: text, password и несколько radiobutton. Проблема в том, что с помощью radiobutton мы должны выбрать, куда именно хотим зайти и свойство формы action заранее предсказать нельзя.

В принципе можно как-нибудь сменить action через JS посредством отслеживания выбора той или иной radiobutton, но это не совсем удобно: работаю со сторонними продуктами, метод GET в них судя по всему не используется. Через POST логин и пароль из формы можно передать без проблем, но на входе они используют разные поля: где-то оно называется "login", где-то "имяпродуктаlogin" и.т.д. Короче говоря, изменять action и id всех элементов формы не совсем удобно.

Нельзя ли как-нибудь сделать следующее:
Цитата
Форма с action-посредником -> скрипт-посредник, через if выбирающий скрипт нужного продукта -> передача логина и пароля методом POST нужному скрипту


Собственно, не знаю, можно ли как-то еще передать данные POST-методом, кроме формы? Или может кто-то подскажет более изящное решение?
inpost
JS, легко и просто.
Или страница-посредник, получила данные, перенаправила на твою страницу. POST ни на грам не безопаснее того же GET, передавай методом GET. Если скрытые пароли, то POST записывай в сессию, и делай переадресацию. На указанной страницы считывай данные с сессии )

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zusicks438
inpost, во-первых спасибо за ответ. А если, допустим, GET - что тогда? Просто я на PHP пишу всякие маленькие скрипты от случая к случаю, может быть просто чего не понимаю. Допустим, есть чужой (закодированный) скрипт, который через POST может принять данные от text id="login" и password id="password", это я уже проверил. А могу ли я как-то передать ему те же данные через GET? Если да, то проблема будет решена, только я не совсем понимаю, как это сделать.
inpost
на левый скрипт, к которому доступа нет - ты можешь данные передать и всё. Для этого используется curl. Если надо не просто передать, но ещё и произвести несколько дополнительных действий, то соккеты.
При этом чужая страница не будет делать то, что ты хочешь. Ты можешь на неё лишь передать POST.

А в целом, лучше более подробно описывать реальные задачи... если это хакерить всякими клонами-вконтакте воровать пароли, то никто не поможет, а если реально стоющая задача, то почему бы не помочь.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zusicks438
Воровать пароли нехорошо smile.gif Просто нужно сделать переключение между несколькими различными панелями управления.

Спасибо, вроде разобрался с curl, сейчас попробую реализовать.
zusicks438
А вот и не разобрался :(

Делаю следующее:
	if ($_POST['panelid'] == 0) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://url/script.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Нужно явно указать, что будет POST запрос
curl_setopt($ch, CURLOPT_POST, true);
//Здесь передаются значения переменных
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login='.$_POST['vlogin'].'&password='.$_POST['vpassword']);
$out = curl_exec($ch);
echo $out;
curl_close($ch);
}

Curl на сервере установлен и судя по всему отправляет запрос вполне себе успешно - в логах нет никаких ошибок, а при добавлении строки "echo 'sucess'" в конец блока она выводится в браузер. Только вот толку от этого немного - данные в панель отправляются, а переход не происходит.

Что в таком случае можно сделать?

UPD: потихоньку модифицирую код, ошибки уже иного рода, но в результате правильно осуществить переход пока что все равно не могу. Пока думаю дальше.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.