2016-03-23 11 views
0

に渡します。htmlファイルとphpファイルがあります。これは、URLのパラメータの値をphpに渡すことです。例えばのでHTML URLのパラメータをPHP

URLがlocalhost\files\reset_username.html?args=erft5467uio$dだった場合 - その後、erft5467uio$dビットは私のphp$_GET('args')でキャプチャする必要があります。問題は、この値がファイルphpに渡されていないことです。

これはhtmlファイルです:

<html> 
    <form id='setUsername' action='setnewusername.php' method='post'> 
    <label for='username' >New Username: </label> 
    <input type='text' name='usernameInput' id='username' /> 
    <label for='newUsername' >Confirm Username: </label> 
    <input type='text' name='newUsernameInput' id='newUsername' /> 
    <input type='text' name='Submit' value='Change Username' /> 
    </form> 
</html> 

これは私のphpコードです:

<?php 
require "init.php"; 

if(!empty($_GET['args']) && !empty($_GET['usernameInput'])){ 
    $paramOne = $_GET['args']; 
    $paramTwo = $_GET['usernameInput']; 
    echo $paramOne; 
    echo $paramTwo; 
} 
else{ 
    echo "The args was not received"; 
} 

?> 

私は、PHPのプリント"The args was not received"を自分のコードをテストしていました。これは、値erft5467uio$dが渡されなかったことを意味します。

このような値をphpスクリプトに渡すにはどうすればよいですか?

EDIT: 自分のユーザー名を持っているユーザの要求は、彼らがユニークargs値とのリンクを受け取るに変更するたびに。この場合、ユーザは、この場合にはlocalhost\files\reset_username.html?args=erft5467uio$dというリンクを電子メールで受信します。リンクをクリックすると、htmlページが表示されます。同様に、フォーム、コードerft5467uio$dを記入する際usernameInputとしてPHPに

おかげ

を渡す必要があり
+4

* ahem * => 'method = 'post'' –

+1

Fredが指摘したように、' $ _POST [' args '] 'を使うべきです。通常、 '$ _GET'リクエストは' link' – Xorifelse

+2

...または 'method = 'get''によって使用されるか、' action =' setnewusername.php''で追加の引数として渡されます。 'action = 'setnewusername.php?arg ...' ' –

答えて

1

序文:あなたがhref使っている理由は、私が表示されませんこれのためのフォーム。

これを機能させたい場合は、私が次のように書いた内容を理解してください。

サイドノート:submitではなく、textの送信ボタンに間違ったタイプを使用していたことにご注目ください。

<input type='submit' name='Submit' value='Change Username' /> 

まずフォーム/ PHPを:として読んだことがあるはずです

<input type='text' name='Submit' value='Change Username' /> 

(私はもはや適用されないいくつかの行を削除)。

form.html(例えば、ファイル名)

<html> 
    <form id='setUsername' action='setnewusername.php' method='post'> 
    <label for='username' >New Username: </label> 
    <input type='text' name='usernameInput' id='username' /> 
    <label for='newUsername' >Confirm Username: </label> 
    <input type='text' name='newUsernameInput' id='newUsername' /> 
    <input type='submit' name='Submit' value='Change Username' /> 
    </form> 
</html> 

引数を渡したい場合は

は、電子メールを介してユーザーに送信されます、その後どのようなパラメータを持つURLになります。

注:コード全体でいくつかのコメントを参照してください。

setnewusername。PHP

N.B:あなたが<input type='text' name='newUsernameInput' id='newUsername' />の値を使用したい場合は、あなたがPHPに追加する必要があります。私はあなたがそれをどのように使いたいのか分かりません。

<?php 
require "init.php"; 

if(isset($_POST['Submit']) && !empty($_POST['usernameInput'])){ 

    $username = $_POST['usernameInput']; 
    echo $username; 

$user = "erft5467uio"; // This is probably what should be taken from one of your inputs. 

$to = "[email protected]"; 
$subject = "Your subject here"; 
$from_email = "[email protected]"; 

$message = " 

Dear $username, 

Visit the following site to verify your account changes: 

http://www.example.com/from_mail.php?args=$user&usernameInput=$username 

"; 

$headers = "From: $username <$from_email>\r\n"; 

/* or use the below 
$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
*/ 


mail($to, $subject, $message, $headers); 
// mail() or your own mailer 
} 
else{ 
    echo "The args was not received."; 
} 

?> 

http://www.example.com/from_mail.php?args=$user&usernameInput=$username上記の例は次のように一度送られたようなものが生成されます。

http://www.example.com/from_mail.php?args=john&usernameInput=BigBadJohn

を次に、あなたの次のファイルに渡された上記の引数(起動します1からfrom_mail.phpをユーザーが送信したリンクをクリックすると、次のようになります。

<?php 
require "init.php"; 

if(!empty($_GET['args']) && !empty($_GET['usernameInput'])){ 

    $paramOne = $_GET['args']; 
    $paramTwo = $_GET['usernameInput']; 
    echo $paramOne; 
    echo "<br>"; 
    echo $paramTwo; 

// do something else here such as db insertion etc. 
} 
else{ 
    echo "The args was not received"; 
} 

?> 

脚注:

  • 私は、これはあなたによく機能します願っています。もし私が何かを見逃したら、私に知らせてください。私は助けに全力を尽くします。

最後の注意:

従って私は私が何をすべきかわからなかった、erft5467uio$d$dが何のためにあるのかわかりません。

関連する問題