Autor Zpráva
PavV
Profil
Program volající moje api mi posílá přes get data ve kterých je text obsahující mezery
&nazevzak=TEST 25.11. -2 opak-2511221042-2022000116-1&dealer=128&

Data čtu pomocí $_GET
while (list($nazev,$hodnota) = each($_GET)){ $$nazev= htmlspecialchars($hodnota);}
ale text se odsekne za první mezerou

Jak postupovat bych dostal celý řetězec?
Dík
Giga
Profil
Nepoužíval bych mezery jako oddělovač.
blaaablaaa
Profil
PavV:
Tohle je špatný přístup, víš, jaké proměnné tvé API očekává a ty přiřaď do proměnných, tohle je fakt nebezpečné.
Navíc funkce each už je od PHP 7.2.0 deprecated a v PHP 8 už není. Mezera v URL nemá co dělat, nahrazuje se za %20.

Dá se to přepsat třeba takto, ale stále je to zbytečná prasárna.
$allowed_params = ['nazevzak', 'dealer'];
foreach ( $allowed_params as $param ) {
  if ( isset($_GET[$param]) ) {
    $$param = $_GET[$param];
  } else {
    die('Chybi parametr '.$param);
  }
} 

Pokud jsou parametry nepovinné, tak třeba takto, jinak normální podmínkou kontrolovat, zda parametry existují.
$nazevzak = $_GET['nazevzak']??null; //pokud parametr chybi dosadi se null
$dealer = $_GET['dealer']??0; //pokud parametr chybi, dosadi se 0

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0