2016-09-24 5 views
1

Ich schreibe PHP-Code für meine Hosting-Webseite.
Ich erstelle eine Such-Domain, die auf der Seite mit $ _GET gefüllt ist, um zu prüfen, ob die Domain verfügbar ist. Ich muss meine $ GET-Funktion im Code schützen.

Die $ GET Code-Suche von einer Domäne zu verarbeiten:

if(isset($_GET['search'])){ 
$domena = ($_GET['search']); 
} 

HTML CODE
Ich habe eine Submit-Button mit POST ACTION FORM und ich erhalte die URL:

www.domain.com/index.php?search=domain.com

Ich muss wissen, ob ich die URL verstecken kann search=domain.com

Hinweis - Ich will nicht benutze AJAX oder eine andere Sprache, nur PHP.

Antwort

2

Wenn Sie den Suchparameter ausblenden möchten, senden Sie ihn per POST-Methode und akzeptieren Sie ihn mit $ _POST anstelle von $ _GET.

if(isset($_POST['search'])){ 
    $domena = ($_POST['search']); 
} 
+0

Auf das Risiko, pingelig zu klingen, "versteckt" die Verwendung von POST stattdessen nicht den Suchparameter, es ist entweder nicht da, als POST jetzt zu verwenden, oder wenn sie immer noch einen Link verwenden irgendwo, das den param setzt dann wird es in der URL zeigen;) – James

2

Haben Sie über die $ _POST-Methode nachgedacht? Die vom Benutzer gesendeten Daten befinden sich in der HTTP-Anfrage und nicht in der URL. Die Methode $ _GET wird in der URL angegeben.

Mozilla macht einen guten Job und erklärt this.

Stellen Sie sicher, Methode $ _POST in Ihrem Formular anzugeben. Zum Beispiel:

<form action="http://foo.com" method="post"> 
    <input name="say" value="Hi"> 
    <input name="to" value="Mom"> 
    <button>Send my greetings</button> 
</form> 

dann Ihre Daten abzurufen, verwenden Sie den gleichen Code, den Sie in Ihrer Frage gestellt, aber sie ändern direkt $ _GET zu $ ​​_POST

-1

zu beantworten, nein können Sie die URL mit PHP nicht verstecken.

Eine andere Möglichkeit, $ GET zu verwenden (und nicht zu $ ​​POST zu wechseln), besteht darin, den GET-Parameter auf eine Sitzung zu setzen und dann umzuleiten.

Es hängt vollständig von Ihrem breiteren Szenario und dem Rest Ihres Code-Setups ab, ob dies lohnenswert ist oder völlig übertrieben ist, um eine Sitzung einzuführen, nur um dies zu tun. Vielleicht verwenden Sie diesen Suchparameter sehr oft von hier an, wobei eine Sitzung nützlich sein könnte, und könnte sie vielleicht auch für den Rest des Formulars verwenden, das Benutzereingabedaten speichert (was üblich ist).

Vielleicht gibt es irgendwo einen Live Link, der bereits den Suchparameter einstellt, und deshalb müssen Sie weiterhin $ GET verwenden, ich weiß es nicht. Wenn es keinen Grund gibt, $ GET weiter zu verwenden, würden die anderen Antworten mit $ POST ausreichen.

So zB (Code nicht getestet)

<?php 

if (isset($_GET['search'])) { 
    $_SESSION['someUniqueRelevantName']['search'] = $_GET['search']; 
    header("Location: www.domain.com/index.php"); 
    exit; 
} 

if (isset($_SESSION['someUniqueRelevantName']['search'])) { 
    // Do your thing with the search query 
} 

Sie könnten session_start() benötigen, nicht sicher, ob Sie es bereits an anderer Stelle verwenden usw.

Auch dies ist eine ältere Art und Weise der Handhabung Dinge und Geräusche Wie Sie brauchen einen insgesamt strukturierteren Ansatz für die Handhabung der Formulardaten.Aber das wäre ein Job für einen anderen Tag :)

Verwandte Themen