2014-01-22 25 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

Когда вы добавляете $ перед переменной, вы делаете ее динамической переменной. Это удобно, если вы хотите иметь возможность переключаться между переменными.

Смежные вопросы