2011-12-14 20 views
0

私は誰かのためのウェブサイトを探していて、以前のホスト/ウェブマスターからすべてのファイルを受け取りました。新しいページに渡されたPHP変数が表示されません

サイトにはpaypalによる注文システムがありますが、商品ページhereから注文ページに渡す必要がある2つの変数は表示されません。

注文ページのURLはhttp://www.italian-christmas-cookies.com/orderbelow.php?p=55&service=Angel%20Reading

以下

として正しく渡された変数を持っているように見えますが、彼らは、コードを以下に示します注文ページに

を示されていません。

<b>Personalised 
<? 
echo $service; 
?></b> 
</p> 

<p>Price: &pound;<? 
echo $p; 
?></b> 
</p> 

だから私はそれが

パーソナライズされた天使の読書に

価格を示すために期待すること、すべての与えられた:私が持っているよりも£55

を、私はより多くの経験を持つ人々から任意のポインタをいただければと思います。

おかげ グレン

UPDATE:

おかげで誰もが、すべての記事を助け、それが私の進捗状況、および教育のビットを与えています。元の著者がこのコードを書いて、どれくらい前にそこに古風な方法があるか分かりません。

フォームがユーザー入力をキャプチャし、$ dateofbirthなどの変数名を割り当て、後で所有者に電子メールで使用されるコードで、同様の原則が適用されます。現時点では、他の言葉では出産や他のフィールドの日付が電子メールに含まれていない

<p>Date of Birth <i>(dd/mm/yyyy)</i><br /><input name="dateofbirth" value="<? echo $dateofbirth;?>" type="text" style="width: 350px;" /></p> 


<p><br /><input type="hidden" name="service" value="<? 
echo $service; 
?>" /> 

<input type="hidden" name="p" value="<? 
echo $p; 
?>" /> 
<input type="submit" value="Order now" /></p> 
</form> 

送信する電子メールのコードが古い、古風上記のコードは、要約すると、ここで

$emailtext = "From: " . $clientname . "\r\n"; 
$emailtext .= "Service ordered: " . $service . "\r\n"; 
$emailtext .= "Price to pay: £" . $p . "\r\n"; 
$emailtext .= "Date of birth: " . $dateofbirth . "\r\n"; 
$emailtext .= "Questions:\r\n\r\n" . $questions . "\r\n\r\n"; 
$emailtext .= "Comments:\r\n\r\n" . $comments . "\r\n\r\n"; 
$emailtext .= $email; 

されていますサポートされておらず、機能させるために近代化が必要なのでしょうか?

ありがとうございました。

+1

を使用してください。これは長期間使用されなくなった機能であり、非常に安全ではありません。代わりに、 '$ _GET ['var']または' $ _POST ['var'] 'を使用してください。 –

+0

皆様、ありがとうございました。すべての投稿が助けてくれました。それは私に進歩と少しの教育を与えました。 – user1098813

答えて

1
<p> 
    <b>Personalised <?php echo $_GET['service']; ?></b> 
</p> 

<p> 
    <b>Price: &pound;<?php echo $_GET['p'];?></b> 
</p> 

$ _GET変数を呼び出すように指定する必要があります。また<?phpだけではなく、<?

2

あなたはこのような$_GET配列からそれを取得する必要がありますGETパラメータを使用するを使用してください:

$_GET['service'] 

はXSSやその他の攻撃の可能性を防ぐために表示する前に$_GET['service']をサニタイズすることを忘れないでください。どうやら

<b>Personalised 
<? 
echo $_GET['service']; 
?></b> 
</p> 

<p>Price: &pound;<? 
echo $_GET['p']; 
?></b> 
</p> 
1

あなたはURLからパラメータを取得するために$_GET['service']$_GET['p']を使用する必要があります.globals.php)はあなたのPHP設定ではオフになっています。

あなたには2つの可能性があります:「登録グローバル」を有効にするか(理由がないと推奨されなくなります)。または、以下の方法でGETパラメータにアクセス:

<b>Personalised 
<? 
echo $_GET["service"]; 
?></b> 
</p> 

<p>Price: &pound;<? 
echo $_GET['p']; 
?></b> 
</p> 
2

、 "グローバルを登録" 機能(http://www.php.net/manual/en/security:

0

私はあなたがURLから渡されたパラメータをエコーする必要があります理解しています。もしそうならうまくいけば、あなたがリクエストパラメータのグローバルスコープ変数を作成し `register_globals`、と呼ばれるPHPの古い機能に依存していない$ _GET配列

<b>Personalised 
<? 
echo $_GET['service']; 
?></b> 
</p> 

<p>Price: &pound;<? 
echo $_GET['p']; 
?></b> 
</p> 
関連する問題