2014-01-22 36 views
0

我一直在使用电子邮件形式并遇到问题。

<?php 
$to = $_REQUEST['sendto'] ; 
$from = $_REQUEST['Email'] ; 
$name = $_REQUEST['Name'] ; 
$headers = "From: $from"; 
$subject = "Web Contact Data"; 

$fields = array(); 
$fields{"Name"} = "Name"; 
$fields{"Company"} = "Company"; 
$fields{"Email"} = "Email"; 
$fields{"Phone"} = "Phone"; 
$fields{"list"} = "Mailing List"; 
$fields{"Message"} = "Message"; 

$body = "We have received the following information:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 

$headers2 = "From: [email protected]"; 
$subject2 = "Thank you for contacting us"; 
$autoreply = "Thank you for contacting us. Somebody will get back to you as soon as possible, usualy within 48 hours. If you have any more questions, please consult our website at www.oursite.com"; 

if($from == '') {print "You have not entered an email, please go back and try again";} 
else { 
if($name == '') {print "You have not entered a name, please go back and try again";} 
else { 
$send = mail($to, $subject, $body, $headers); 
$send2 = mail($from, $subject2, $autoreply, $headers2); 
if($send) 
{header("Location: http://www.YourDomain.com/thankyou.html");} 
else 
{print "We encountered an error sending your mail, please notify [email protected]"; } 
} 
} 
?> 

我试图运行它,但保持有错误与$name变量。我做了一些调查,发现我也可以使用$$name。我跑过去了,但没有奏效,所以我决定改变脚本的其他部分。我需要知道是否$name$$name。我做了一些研究,发现$$name是一个参考变量,而$name只是一个变量。我需要知道每个人会得到什么结果,以及我应该使用哪一个。

+0

你有什么错误? – showdev

回答

1

看来你想使用一个数组

$fields = array(); 
$fields["Name"] = $_REQUEST['Name']; 
$fields["Company"] = $_REQUEST['Company']; 
$fields["Email"] = $_REQUEST['Email']; 
$fields["Phone"] = $_REQUEST['Phone']; 
$fields["Mailing list"] = $_REQUEST['List']; 
$fields["Message"] = $_REQUEST["Message"]; 

你的脚本现在将正常工作。

如果要包含$ _REQUEST中的数据,请尝试这种方法。

您可以粘贴PHP的形式也一样,我们可以拿出一个更优化的解决方案

+0

对不起,但这不是我想要的。我想知道我应该在脚本中使用哪一个 – nathanleachman

+0

非常感谢。 – nathanleachman

2

这是一个可变的变量:

$x = 'foo'; 
$foo = 'bar'; 
$$x = 'baz'; 
echo "$x $foo"; // outputs 'foo baz', not 'foo bar'; 

$$var基本上是这样说的:“获取$ var的内容,并将该内容用作变量的名称,并分配给该变量”。

0

当你在变量的前面添加$时,你将它变成一个动态变量。如果你想能够在变量之间切换,这很方便。

相关问题