РЕДАКТИРОВАТЬ: исправление исправлено - основной проблемой является подключение php / mysql
В попытке узнать, как использовать базу данных MySQL на веб-странице, я следую базовому руководству по подключению кэкземпляр MySQL через PHP (все управляется через WAMP2)
Учебное пособие: http://www.freewebmasterhelp.com/tutorials/phpmysql/4 использует метод PHP_SELF (который, как я понимаю, теперь устарел).
Я пробовал несколько других предложений, которые я нашел, но не нашел решения для следующей ошибки, которую вижу в журнале apache:
(20024)The given path is misformatted or contained invalid characters: Cannot map POST /%3C$SEARCH.PHP%3E HTTP/1.1 to file, referer: http://localhost/search.php
Thisошибка препятствует возвращению HTML-страницы, и в моем браузере появляется ошибка 403
Похоже, что эта строка HTML / PHP является виновником:
<form name="search" method="post" action="<?=$PHP_SELF?>">
Я видел предложениякоторый говорит либо включить short_open_tag (плохая идея согласно некоторым), изменить
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Я не могу заставить работать ни один из этих методов, и подумал, может ли кто-нибудь дать мне знать, какая глупость у меня естьпропустил это время ...
Весь php-файл, который я использую:
<?php
// // This is only displayed if they have submitted the form
if ($searching =="yes")
{
echo "<h2>Results</h2><p>";
//If they did not enter a search term we give them an error
if ($find == "")
{
echo "<p>You forgot to enter a search term";
exit;
}
include("dbinfo.php");
mysql_connect($host,$username,$password);
mysql_select_db("database") or die(mysql_error());
// We preform a bit of filtering
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Now we search for our search term, in the field the user specified
$data = mysql_query("SELECT * FROM main WHERE upper($field) LIKE'%$find%'");
//And we display the results
while($result = mysql_fetch_array( $data ))
{
echo $result['Item1'];
echo " ";
echo $result['Item2'];
echo "<br>";
echo "<br>";
}
//This counts the number or results - and if there wasn't any it gives them a little message explaining that
$anymatches=mysql_num_rows($data);
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
}
//And we remind them what they searched for
echo "<b>Searched For:</b> " .$find;
}
?>
<h2>Search</h2>
<form name="search" method="post" action="<?=$PHP_SELF?>">
Seach for: <input type="text" name="find" /> in
<Select NAME="field">
<Option VALUE="item1">Item1</option>
<Option VALUE="item2">Item2</option>
</Select>
<input type="hidden" name="searching" value="yes" />
<input type="submit" name="search" value="Search" />
</form>