it-swarm.com.de

Warum erhält Jinput nur einen von zwei Werten aus der URL?

Ich versuche mit Jinput zwei Werte aus der URL zu extrahieren.

Meine URL ist:

http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&[email protected]&subscribers_name=test&encoding=UTF-8

Ich benutze den folgenden Code:

$jinput = JFactory::getApplication()->input;
$name = $jinput->get('subscribers_name','none','raw');
$email = $jinput->get('subscribers_email','none','raw');

echo $name;
echo $email;

Das Problem ist, dass ich nur den letzten Wert erhalte; Mit anderen Worten, ich bekomme:

$name = 'test';
$email = 'none'; // (should be [email protected])

Irgendeine Idee, was ich falsch mache und wie ich das beheben soll?

1
Omri

Ich denke, dein Problem ist das zweite Fragezeichen, das der Link sein sollte

http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&id=45&[email protected]&subscribers_name=test&encoding=UTF-8

1
Marko D

Ihre fehlerhafte URL-Abfrage ist schuld - insbesondere der zweite ?, Der & Sein sollte.

Demo :

$url = 'http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&[email protected]&subscribers_name=test&encoding=UTF-8';

parse_str(parse_url($url, PHP_URL_QUERY), $array);

var_export($array);

Ausgabe:

array (
  'option' => 'com_content',
  'view' => 'article',
  'id' => '[email protected]',
  'subscribers_name' => 'test',
  'encoding' => 'UTF-8',
)

Sie sehen, das Querystring-Parsing ist abhängig vom ersten Auftreten ?, Um den Beginn der Daten zu bestimmen. Die Schlüssel-Wert-Paare sind mit = Verbunden und durch & Von anderen Paaren getrennt.

Infolge Ihrer Tippfehler werden der Schlüssel und der Wert subscribers_email An den Wert id angehängt.

1
mickmackusa