2017-01-31 6 views
2

Ich habe den folgenden Code-Schnipsel meiner Felder, die ich in meiner Form habe mit PHP zu bilden:Wie verwende ich Methode, um Eingabewerte erhalten Feld

 <input id="username" type="text" placeholder="E-mail Address" value="" name="username"></input> 

Dies ist, was ich in meinem Eingabefeld habe. Gibt es jemanden, der mir sagen wird, wie man mit einer URL Eingabewerte in das Feld bekommt? z. B. https://mysite?username=ken und es wird "ken" im Eingabefeld angezeigt?

Antwort

1

in Ihrem HTML, fügen Sie das Eingabefeld wie folgt aus:

<input type="text" name="username" value="<?php echo htmlspecialchars($_GET['username']); ?>" /> 

Grundsätzlich muss der Wert Attribut des Textfeld zu setzen:

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

Der Code rechts oben das ist wie würde man eine get Variable in PHP ausgeben, egal ob man sie in ein Textfeld schreibt oder nicht. Für den Zugriff auf Variablen erhalten, verwenden immer:

$_GET['variable_name']; 

Dann können Sie es an Variablen zuweisen oder sie als Funktionsparameter übergeben.

** Ich empfehle jedoch nicht, vertrauliche Informationen wie Benutzernamen und Passwörter über GET-Variablen weiterzuleiten. **

Zunächst einmal konnten Benutzer die URL ändern und somit die Variable ändern. Sie könnten die URL auch versehentlich mit jemandem teilen und anderen Personen Zugriff auf ihr Konto gewähren. Ich würde empfehlen, dass Sie auf ihrem Computer ein Cookie erstellen, das auf eine zufällige ID gesetzt ist, und dann in einer MySQL-Datenbank diese ID mit einem Benutzernamen verknüpfen, damit Sie wissen, dass der Benutzer sein Konto nicht versehentlich teilen oder seinen Benutzernamen ändern kann die URL

+0

@jakelouis Obwohl technisch korrekt, ist dies absolut schrecklich zu tun. Dadurch sind Ihre Besucher für XSS-Angriffe und andere clientseitige Injektionen offen (bösartige Skripts werden nur durch den Besuch einer URL gestartet). Wenn Sie dies zusammen mit einem Kennwort ausführen, protokollieren Sie außerdem den Benutzernamen/das Kennwort für den einfachen Text für die Serverzugriffsprotokolle, da die Abfragezeichenfolge (Parameter abrufen) mit der Anforderung auf dem Server protokolliert wird Hash-Passwörter. –

+0

@ JonathanKuhn ich vollständig verstehe, verwende ID-Nummern aus mysql-Datenbank generiert, so denke ich bin gut und benutze keine Passwörter, nur E-Mail und generierte Codes zur Verifikation :) –

+0

@ JonathanKuhn Ich aktualisierte die Antwort zu htmlspecialchars Funktion enthalten. Bevor Sie diesen Kommentar verließen, hatte ich ihm bereits geraten, GET-Parameter als schlechte Idee zu verwenden. Ich hoffe, er ändert es, aber das liegt ganz bei ihm und ich habe mein Bestes getan, um ihn zu warnen. –

0

Sie können es so machen, machen Sie eine ISset in Ihrem PHP-Formular-Eingang, die Ihre Ken-Variable von GET-Post fangen können, nie vergessen method="get" innerhalb des Formular-Tags und wenn Sie planen auf der gleichen Seite einzureichen Sie können verwenden action="<?php echo $_SERVER['PHP_SELF']; ?>" in Ihrem Formular-Tag .. hoffe, das hilft, hier ist der Code ..^_^

<form id="form" name="form" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 


          <fieldset> 


           <p>Input</p> 
           <div> 
            <input type="text" name="nameoffield" id="nameoffield" value="<?php if(isset($_GET['ken'])){echo $_GET['ken'];} ?>"> <br /> 


           </div> 
          </fieldset> 
          <div> 
           <button type="submit" value="Submit" name="submit"> 
            Submit 
           </button> 
          </div> 
          </form> 
0

der <input> Tag und andere Bereiche der Form in einem <form> Tag sein muss.

<form action = "https://mysite" method = "get"> 
<input id = "username" type = "text" placeholder = "E-mail Address" name = "username" value = "<?php echo $_GET['username']; ?>" /> 
</form> 

In dem obigen Code legt Formular-Tag, dass die Methode der Unterwerfung ist ‚GET‘ und die Aktion, die auf Vorlage genommen wird, ist URL, auf die Ihre Formulardaten übertragen und verarbeitet werden.

Nun vorausgesetzt, dass Ihre form in der gleichen URL ist, an die Sie Ihr Formular senden, erhalten Sie den GET Wert auf der gleichen Seite (oder URL), so im Eingabetextfeld den Wert, der von erhalten wird GET-Methode und verwenden Sie sie.

Alle GET-Schlüssel/Wert-Paare werden in einem assoziativen Array $ _GET gespeichert, mit dem Sie auf den Wert eines bestimmten Schlüssels zugreifen können, indem Sie diesen als Index des Arrays verwenden.

z.B. Der Schlüssel ist username in diesem Fall, also wurde der Benutzername, $_GET['username'] verwendet, um den Wert zu erhalten.

+0

Danke, wirklich geholfen viel !! –

Verwandte Themen