Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odbieranie danych przez $_GET, Niecodzienny temat
xamrex
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Witam,
Czy jest możliwość przesłania danych, które nie sa znakami asci i zawierają znak & poprzez $_GET

Sprawa wygląda tak. Postawiłem stronę WWW - strona2.php
  1. <?php
  2.  
  3. $myfile = fopen("fota.txt", "w") or die("Unable to open file!");
  4. $txt = $_GET["data"];
  5. fwrite($myfile, $txt);
  6. fclose($myfile);
  7. ?>

I teraz jak wejdę na www.mojastrona.pl/strona2.php?data=123
to później jak wejdę na www.mojastrona.pl/fota.txt
to mam w niej zawartość 123.

Ale co jeśli chciałbym wysłać jakieś dane które nie są znakami ASCI oraz dodatkowo mogą zawierać znaki takie jak . ? &
Wtedy będzie to źle 'zrozumiane' przez serwer i jeśli chciałbym wysłać taką paczkę danych:
Tajne&dane to w pliku fota.txt będę miał tylko tajne
Da się jakoś sprawić, żeby znak & był ignorowany?

Generalnie posiadam moduł Wifi ESP8266, który można fajnie programować i który służy do łączenia się z internetem, i chciałbym wysłać nim dane, ale moga one zawierać znak &, więc musiałbym wymyślić coś innego.
Ktoś wie jak to rozwiązać?
EDIT:
Myślę, że można znaleść jakiś algorytm, który zakodowałbymi dane tak, żeby wynikiem były tylko znaki alfabetu. wtedy mógłbym to przesłać. Czy to dobry pomysł?

Ten post edytował xamrex 19.04.2018, 19:44:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xamrex
post
Post #2





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Witam serdecznie
Udało mi się wysłać dane metodą POST, ale niestety dalej są problemy.
Generalnie moja storna wygląda tak:
  1. <?php
  2. $dane = $_POST['data'];
  3. $myfile = fopen("zdj.jpg", "w") or die("Unable to open file!");
  4. fwrite($myfile, $dane);
  5. fclose($myfile);
  6. echo"Dane przeslano! - ";
  7. $ilosc=strlen($dane);
  8. echo $ilosc;
  9. ?>


I teraz dla testów uzywam oprogramowaia ZOC7terminal i gdy nim wysyłam dane:
  1. POST /jomla/strony.php HTTP/1.1
  2. Content-Type: application/x-www-form-urlencoded
  3. Host: mojastrona.pl
  4. Content-Length: 15
  5.  
  6. data=0123456789

To tworzy się plik zdj.jpg z zawartością : 0123456789.

Problem jest jeśli chce wysłać dane binarne.
Tzn prawie wszystko działa, ale gdy wysyłam 0x26 czyli znak '&' to do pliku zdj.jpg lecą wszystkie dane do momentu wystąpienia tego znaku.

Pomyślałem, że zmodyfikuję nagłówek i puszczę coś takiego:
  1. POST /jomla/strony.php HTTP/1.1
  2. Content-Type: application/octet-stream
  3. Host: mojastrona.pl
  4. Content-Length: 15
  5.  
  6. data=0123456789

ale po czymś takim to w ogóle plik zdj.jpg ma 0 bajtów (nic do niego nie leci)

DOmyślam, się, że winny jest ten nagłowek Content-Type: application/octet-stream i jeśil go ustawię to do $dane = $_POST['data'];nic nie przychodzi
Pomożecie jakoś?

P.S
wiem, ze mogę użyć Base64 tak jak radziliście, ale może da się to jakoś obejść?
Bo chyba da się wysłać dane z pełnym zakresie od 0x00 do 0xff na serwer przez post
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:38