2016-04-02 12 views
-1

Ich reiche die s Variable zu page.php von einem Eingabeformular auf einer anderen Seite.echo php Variable Zeichenfolge abgeschnitten nach Ampersand

Die URL hat die vollständige Zeichenfolge mit dem kaufmännischen Und, wenn ich versuche, die Variable zu echo, wird die Zeichenfolge nach dem Et-Zeichen abgeschnitten.

Form:

<form action="page.php" method="get"> 

<input type="text" name="s" id ="s" /> 

</form> 

Variable ist:

search & search 

URL:

page.php?s=search+%26+search&var2=variable 

variable Echos als:

search 

Ich habe versucht:

1-urlencode():

echo htmlspecialchars($_GET['s']); 
    echo htmlentities($_GET['s']); 
    echo urldecode($_GET['s']); 
+0

Wie ist die Zeichenfolge, die enc ist ded? Ich denke, dass Sie mit 'search% 20% 26% 20search' bessere Ergebnisse erzielen werden (mit'% 20' werden Leerzeichen anstelle von '+' dargestellt) – andrew

+0

Ich habe versucht, in page.php? S = search% 20% 26% 20search einzutippen und es gibt immer noch nicht die vollständige Variable – user3312792

+0

Möchten Sie tatsächlich die GET-Methode verwenden? – Fil

Antwort

0

Sie (mindestens) 3 verschiedene Möglichkeiten, dies archieve verwenden könnte die Zeichenfolge zu kodieren für diese Funktion im Ort verwenden, sollten Sie die URL generieren URL-Format

2 - %26 verwenden (ohne "+");

3 - Verwenden Sie $_SERVER['QUERY_STRING']: Wenn Sie nur einen Parameter haben, können Sie alle query_string auf diese Weise erhalten.

UPDATE:

I.E:

$url = "page.php?s=".urlencode('search & search')."&var2=".urlencode('variable'); //or urlencode($variable) 

Dann nutzen: urldecode(), um die differents zu analysieren $ _GETs.

0

Ich nehme an, Sie haben einen Code ähnlich wie diese,

<a href="http://localhost/example/page.php?s=search+%26+search"> 

Diese Art, führt nur die search, nachdem Sie versuchen, es zu Echo.

auf diese Weise versuchen,

<a href="http://localhost/example/page.php?s=<?php echo urlencode("search+%26+search") ?>"> 

es ist eine bequeme Möglichkeit, eine Abfrage Teil der URL zu kodieren.

und auch versuchen, diese ein, um ein Beispiel aus der offiziellen PHP-Dokumentation

<?php $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); 
     echo '<a href="mycgi?' . htmlentities($query_string) . '">'; 
?> 

und weitere Informationen zu diesem Bitte beziehen. http://php.net/manual/en/function.urlencode.php

+0

Ich nehme nur zu ähnlichen Prozess, und Sie können das gleiche Ergebnis, das Sie auf diese Weise suchen auch kommen oder eine Variable zuweisen – Fil

+0

Sie wollen nicht URL-Codierung "" search +% 26 + Suche "' das ist schon Eine URL-codierte Zeichenfolge, URL-Codierung "Suche und Suche" 'wäre aber in Ordnung – andrew

0

Ich habe gerade versucht, was Sie sagten, und das Problem scheint nicht die Codierung von URL zu sein.

Versuchen Sie dies https://www.google.co.in/?q=search+%26+search, Google sucht nach search & search, möglicherweise gibt es ein Problem auf page.php, wo Sie versuchen, die Variable zu echo.

Zusätzlich, um zu beweisen, dass Google nichts Besonderes macht, habe ich nur zwei Dateien mit dem Namen index.php und page.php gemacht und das Ergebnis war wie erwartet.

index.php

<html> 
    <body> 
     <form action="1.php" method="get"> 
      <input type="text" name="s" id="s"> 
     </form> 
    </body> 
</html> 

page.php

<?php 
    echo $_GET['s']; 
?> 

Ausgang:
search & search

versuchen, Ihren Code auf page.php zu debuggen, wo Sie die Variable Echo versuchen oder fügen Sie den ganzen Code hier ein.

0

Versuchen Sie, diese ich es aber lokal testen, hier ist der Code

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Problem</title> 
    </head> 
    <body> 
    <form action="page.php" method="get"> 
     <input type="text" name="s" id ="s" /> 
     <input type="text" name="var2" id ="d" /> 
     <input type="submit" name="name" value="submit"> 
    </form> 
    </body> 
</html> 

und page.php

<?php 
if (isset($_GET['s'])) { 
    echo $_GET['s'] .' '. $_GET['var2']; 
} 
?> 

, wenn Sie es zu Ihrem Browser ausführen, wird es zwei Eingabeformular angezeigt werden und ein vorlegen Taste.

wird der Ausgang würde helfen

search & search variable

Ich versuche auch in der URL

page.php?s=search+%26+search&var2=variable&name=submit

I führen die gleiche

Ich hoffe, das Einfügen

sein