Переменные PHP, переданные на новую страницу, не отображаются - PullRequest
0 голосов
/ 15 декабря 2011

Я ищу сайт для кого-то и получил все файлы от предыдущего хоста / веб-мастера.

На сайте есть система заказов через PayPal, но две переменные, которые необходимо передать изстраница продукта здесь к странице заказа не отображается.

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

Буду признателен за любые указателиот людей с большим опытом, чем у меня.

Спасибо Гленн

ОБНОВЛЕНИЕ:

Спасибо всем, все посты помогли, и это дало мне прогресс и немного образования,Я не знаю, как давно первоначальный автор написал код, так что среди них могут быть архаичные способы.

Дальнейшее продолжение приведет к тому, что аналогичные принципы будут применяться позже в коде, где форма захватывает некоторый пользовательский ввод и присваиваетимя переменной, такое как $ 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;

Вкратце, это кодвыше старого, архаичного, неподдерживаемого и нуждающегося в модернизации, чтобы заставить его работать?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 15 декабря 2011

Видимо, функция "register globals" (http://www.php.net/manual/en/security.globals.php) отключена в вашей конфигурации PHP.

У вас есть две возможности: Либо вы включаете "register globals" (что больше не рекомендуется для хорошегопричины) .Или вы получите доступ к параметрам GET следующим образом:

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

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>
2 голосов
/ 15 декабря 2011

Чтобы использовать параметр GET, вы должны извлечь его из массива $_GET следующим образом:

$_GET['service']

Не забудьте очистить $_GET['service'] перед отображением, чтобы предотвратить XSS и другие возможные атаки.

1 голос
/ 15 декабря 2011

Вам нужно использовать $_GET['service'] и $_GET['p'], чтобы получить параметры из URL:

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

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>
1 голос
/ 15 декабря 2011
<p>
    <b>Personalised <?php echo $_GET['service']; ?></b>
</p>

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

Вы должны указать, что вы вызываете $ _GET vars. Также убедитесь, что вы используете <?php, а не только <?

0 голосов
/ 15 декабря 2011

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

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

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...