これが愚かなことであるが、本物の助けを探しているだけなら申し訳ありません。これに苦労しています。
minegem.html
呼び出されたファイルをアップロードするHTMLスクリプトがあります。minegem.php
このスクリプトは、フォームからテーブルにデータをアップロードし、ファイルをディレクトリにアップロードし、ユーザーにそのデータを表示するためのテーブルを提供します。それはすべて非常にうまく機能します。
<?php
//define variables to be used
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';
$database = 'minetech';
$table = 'minegem';
$directory = 'uploads/minegem/';
//This gets all the other information from the form
$name=$_POST['docname'];
$version=$_POST['docver'];
$date=$_POST['docdate'];
$type=$_POST['doctype'];
$author=$_POST['docauth'];
//target directory is assigned
$target = $directory;
$target = $target . basename( $_FILES['uploaded']['name']) ;
//if everything is ok upload the file
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploaded']['name']). " has been uploaded";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
//connect to sql
$con = mysql_connect("$db_host","$db_user","$db_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//connect to database
mysql_select_db("$database", $con);
//insert data from form to database
$sql="INSERT INTO $table (DocName, DocVer, DocDate, DocType, DocAuth, DocLoc)
VALUES
('$name','$version','$date','$type','$author','$target')";
//confirm data entry
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo " and new record added. How cool is that.";
//the following script displays the data for test purposes
//this script will show table data
//retrieve tables values
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
die("Query to show fields from table failed");
}
//build table and define headings
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Version</th>
<th>Upload Date</th>
<th>Type</th>
<th>Uploader</th>
<th>Location</th>
</tr>";
// printing table rows
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['DocName'] . "</td>";
echo "<td>" . $row['DocVer'] . "</td>";
echo "<td>" . $row['DocDate'] . "</td>";
echo "<td>" . $row['DocType'] . "</td>";
echo "<td>" . $row['DocAuth'] . "</td>";
echo "<td>" . $row['DocLoc'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($result);
//close connecition to database
mysql_close($con)
?>`
両方のファイルがにあるC:/wamp/www/
ので、Webブラウザーで実行すると、次のように表示されます。localhost/minegem.php
エンドユーザーに結果を表示するために実際に実行するスクリプトとなる最終的なスクリプトがあります。
<?php
//define variables to be used
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';
$database = 'minetech';
$table = 'minegem';
$type = 'Guideline';
//connect to sql
$con = mysql_connect("$db_host","$db_user","$db_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//connect to database
mysql_select_db("$database", $con);
//this script will show table data
//retrieve tables values
$result = mysql_query("SELECT * FROM $table
WHERE DocType='Guideline'");
if (!$result) {
die("Query to show fields from table failed");
}
//build table and define headings
echo "<table border='1'>
<tr>
<th>Document Name</th>
<th>Version</th>
</tr>";
// printing table rows
while($row = mysql_fetch_array($result))
{
$docname=$row['DocName'];
$docver=$row['DocVer'];
$doctype=$row['DocType'];
$docloc=$row['DocLoc'];
echo "<tr>";
echo '<td><a href='.urlencode($docloc).'>'.$docname.'</a></td>';
echo "<td>$docver</td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($result);
//close connecition to database
mysql_close($con)
?>
私の最初のテーブルは、ファイルの場所をuploads/minegem/test document.pdf
次のように示しています。2番目のテーブルは、リンクがアドレスバーに表示さhttp://localhost/uploads%2Fminegem%2Ftest+document.pdf
れ、ページに
次のように表示されます。The requested URL /uploads/minegem/test+document.pdf was not found on this server.
これはばかげたファイル構造の問題だと思いますが、それは非常に重要です。私はこれをサーバーに配置することになりますので、完全なファイルパッチを保存し、リンクとしてそれを思い出すことができれば素晴らしいでしょう。誰かが正しいファイル構造を設定することで私を正しい方向に向けるのを手伝ってくれることを願っています。ありがとう。