Jak przesłać niewidoczną zmienną?

0

Mam formularz w którym dane są wysyłane poprzez GET. Czy da się przesłać zmienną poprzez formularz tak żeby użytkownik tego nie widział (Znam metoddę POST ale potrzebuję to zrobić poprzez GET) w kodzie strony? Próbowałem to zrobić poprzez input typu hidden ale w kodzie strony i tak jest to widoczna zmienna.

0

Może $.get ? Napisz coś więcej to ułatwi rozwiązanie.

1

Użyj sesji albo zaszyfruj tę zmienną i prześlij normalnie.

1

Idea przesyłania przez GET to właśnie wpisanie danych do URL, więc jedyna opcja która mi przychodzi do głowy to zaproponowane przez @Freja Draco zaszyfrowanie danych przed ich przekazaniem. Natomiast wszystko przesyłane przez GET musi być zawarte w adresie tak, że kopiując adres i odpalając na innym kompie/systemie/przeglądarce powinieneś dostać taki sam wynik. Tak to zostało wymyślone i za wiele z tym nie zrobisz :P

2

Nie ma problemu wyslac jedno i drugie na raz. Okresl w formularzu metode POST, wysylaj zmienne poprzez post formularzem a w url dodaj parametr jaki chcesz
Mozesz tez wysylac parametry w zwyklych linkach <a href="asd.php?id=1>

<form method="post" action="request.php?id=1">
// tutaj zwykle pola formularza dla metody POST

Zawsze mozesz sprawdzac metode poprzez:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
   // ... tutaj sprawdzasz parametr ktory slesz w url. Mozesz to zrobic na instrukcji Switch()
}
0

Chodzi mi o to żeby po kliknięciu przycisku submit który jest w formularzu dołączyć do wszystkich wartości przesyłanych metodą GET jeszcze jedną zmienną która jest ukryta( nie widać jej w źródle kodu).

0

Moze wytlumacz co chcesz uzyskac bo nie da sie (procz rejestracji sesji lub ustawienia cookies) wyslac czegos przegladarka czego nie bedzie widac. Parametr get bedzie jak i post.

2

Jedyna opcja, żeby użytkownik tego nie znalazł, to nie przekazywanie tego na front. Musisz użyć sesji, wtedy użytkownik nie ma dostępu do tej zmiennej. W skrócie:

  1. Przed otworzeniem formularza (np. w pliku form.php) wrzucasz do sesji zmienną, którą chcesz później użyć:
$_SESSION['secretVar'] = 'some secret string';
  1. W pliku, w którym obsługujesz formularz (np. post.php) wyciągasz sobie tą zmienną z sesji:
$secretVar = $_SESSION['secretVar'];
$data = $_POST; // reszta danych z formularza
  1. Profit.

Sesja jest unikalna per użytkownik. To taki pojemnik na dane po stronie serwera, do którego użytkownik nie ma dostępu z przeglądarki. Ukryte pola, przekazywanie zmiennej za pomocą javascript albo cudowanie z szyfrowaniem w mniej lub bardziej skomplikowany sposób pozwala użytkownikowi dobrać się do tej zmiennej. Dwa pierwsze rozwiązania, to śmiech na sali, a przypadku tego ostatniego użytkownik musiałby jakoś odkodować wiadomość... ale po co się tak bawić skoro można użyć sesji.

0

Chyba nie do konca zrozumialem. Dolaczyc zmienna do url mozna tylko po co.

https://stackoverflow.com/questions/3162725/how-can-i-add-get-variables-to-end-of-the-current-url-in-php

0

Na pewno można osiągnąć, to co chcesz osiągnąć, innym sposobem, niż wysyłanie wartości przez formularz.

Skoro znasz wartość jaka ma być przesłana przed wysłaniem formularza, to dlaczego nie możesz jej znać po wysłaniu? Jest generowana losowo? Tylko po co?

Problemem jest to, że nie piszesz o co Ci tak naprawdę chodzi, i ludzie nie wiedzą jak Ci pomóc.

0
TomRZ napisał(a):

Skoro znasz wartość jaka ma być przesłana przed wysłaniem formularza, to dlaczego nie możesz jej znać po wysłaniu? Jest generowana losowo? Tylko po co?

Np. na potrzeby kapcza. W starszych systemach zdarzało się, że wartość z obrazka była przesyłana otwartym tekstem. przez POST jako ukryte pole formularza :)

0

ciekawe odpowiedzi :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1