PHP XML RSS ошибка xmlParsePI: нет целевого имени

Пожалуйста помоги! Натыкаясь на эту ошибку:
ошибка в строке 11 в столбце 3: xmlParsePI: нет целевого имени.

Строка 11 является тегом atom: link. Я попытался изменить ссылку на фактическое имя файла и получил ту же ошибку. Я запускаю код локально, поэтому я также попытался использовать локальный URL-адрес и все ту же ошибку.

Я новичок в php, и это задание для курса php с тем, что я считаю устаревшим материалом. Любой совет будет полезен!

<?php
require_once('./Includes/connectvars.php');
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
$builddate = gmdate(DATE_RSS, time());
?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Vintage Cars and Trains</title>
<atom:link href="http://<?= $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'] ?>" rel="self" type="application/rss+xml" />
<link>products.php</link>
<description>Vintage cars and trains for lesson 9</description>
<lastBuildDate><?php $builddate ?></lastBuildDate>
<language>en-us</language>

<?

$query = " SELECT * FROM products WHERE productLine = 'Vintage Cars', 'Trains' ORDER BY dateAdded DESC LIMIT 10 ";
$result = mysqli_query($dbc, $query)
or die("Error querying database => $query");

//Loop through and print data
while ($newArray = mysqli_fetch_array($result)) {
$product_code = $newArray[productCode];
$product_name = $newArray[productName];
$product_line = $newArray[productLine];
$product_scale = $newArray[productScale];
$product_vendor = $newArray['productVendor'];
$product_description = $newArray['productDescription'];
$buy_price = $newArray['buyPrice'];

$pubdate = date(DATE_RSS, strtotime($date_added));
?>

<item>
<title><?php echo "$product_code - $product_name"; ?></title>
<description><?php $description ?></description>
<link><link>localhost/PHP/Lesson9/products.php?pid=<?php $product_code ?></link>
<guid isPermaLink="false">localhost/PHP/Lesson9/products.php?pid=<?php $product_code ?><guid>
<pubDate><?php $pubdate ?></pubDate>
</item>

}

</channel>
</rss>

0

Решение

Когда вы выводите переменную php, убедитесь, что вы используете:

<?php echo $variablename; ?>

Если вы хотите объединить две переменные php, убедитесь, что вы используете точку:

<?php echo $variablename1.' - '.$variablename2; ?>

Пожалуйста, не забудьте повторить и поставить точку с запятой в конце каждой строки PHP:

<?php echo something; ?>

Пожалуйста, не забудьте закрыть цикл while с фигурной скобкой там, где заканчивается цикл:

<?php
while (condition) {
do something;
}
?>

Вот очищенный код.

<?php
require_once('./Includes/connectvars.php');
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
$builddate = gmdate(DATE_RSS, time());
?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Vintage Cars and Trains</title>
<atom:link href="http://"<?php echo $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; ?>" rel="self" type="application/rss+xml" />
<link>products.php</link>
<description>Vintage cars and trains for lesson 9</description>
<lastBuildDate><?php echo $builddate; ?></lastBuildDate>
<language>en-us</language>

<?php

$query = " SELECT * FROM products WHERE productLine = 'Vintage Cars', 'Trains' ORDER BY dateAdded DESC LIMIT 10 ";
$result = mysqli_query($dbc, $query)
or die("Error querying database => $query");

//Loop through and print data
while ($newArray = mysqli_fetch_array($result)) {
$product_code = $newArray[productCode];
$product_name = $newArray[productName];
$product_line = $newArray[productLine];
$product_scale = $newArray[productScale];
$product_vendor = $newArray['productVendor'];
$product_description = $newArray['productDescription'];
$buy_price = $newArray['buyPrice'];
}

$pubdate = date(DATE_RSS, strtotime($date_added));
?>

<item>
<title><?php echo $product_code.' - '.$product_name; ?></title>
<description><?php echo $description; ?></description>
<link><link>localhost/PHP/Lesson9/products.php?pid=<?php echo $product_code; ?></link>
<guid isPermaLink="false">localhost/PHP/Lesson9/products.php?pid=<?php echo $product_code; ?><guid>
<pubDate><?php echo $pubdate; ?></pubDate>
</item>

</channel>
</rss>
0

Другие решения

Других решений пока нет …