php / php/php-src

if query parameter value processing is different when value is empty or null

Aperta
#12,106 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Extension: standard Feature Status: Needs Triage
Lingua principale
C
Stelle
40.4k
Fork
8.2k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

The following code:

CASE 1:

<?php
$url = "http://localhost:8964/?soap";
CASE1:
parse_url($url);
echo var_dump(parse_url($url));
$query = parse_str(parse_url($url)["query"], $result);
echo var_dump($result);
$http_query  = http_build_query($result);
echo $http_query;

//CASE2 assign query param value to null 

$result["soap"]=null;
echo $http_query;

//CASE 3 - replicate same as case 2 but in other form  and results are different.
$arr = array('test' => null);

echo http_build_query($arr);

?>
array(5) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(8964)
  ["path"]=>
  string(1) "/"
  ["query"]=>
  string(4) "soap"
}
array(1) {
  ["soap"]=>
  string(0) ""
}
soap=soap=

But I expected this output instead:
CASE1: soap=
CASE2: soap
CASE3 soap

PS: if query param value is empty string or null , but query param should be in url.

PHP Version

PHP 8.1.2

Operating System

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci i tre casi usando parse_url(), parse_str() e http_build_query() con l’URL di esempio e gli array. Leggi i test esistenti per queste funzioni e confronta la gestione dei valori mancanti, delle stringhe vuote e dei valori null. Il lavoro è completato quando la rappresentazione prevista della query è documentata dai test e gli output osservati sono coerenti con tale comportamento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php
Ambito
backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.