2012-06-26 114 views
-2

我有一個HTML表單,它運行一個PHP腳本,它將文本字段插入MySQL數據庫。我使用這個數據庫來創建用戶配置文件,但在配置文件中我還需要聲音,視頻和圖片。是否有任何腳本可以在硬盤上創建一個文件夾,並從該表單中插入名稱並將選定的文件存儲在此文件夾中,並將文件路徑插入到MySQL數據庫中?PHP腳本存儲圖像到文件夾和MySQL數據庫的路徑

此外,我需要將它們顯示到搜索結果頁面,並從結果頁面,如果我選擇一個用戶,我需要重定向到一個頁面,以顯示選定的記錄whith它自己的照片,聲音,視頻和文本作爲個人資料頁面或類似的東西。

這裏是形式:

<form action="process.php" method="post" > 
    <label>Όνομα:</label> <input type="text" name="Fname" /><br/><br/> 
    <label>Επώνυμο:</label> <input type="text" name="Sname" /><br/><br/> 
    <label>Είδος:</label> <input type="text" name="Genre" /><br/><br/> 
    <label>Είδικότητα:</label> <input type="text" name="Specialty" /><br/><br/> 
    <label>Βιογραφικό:</label> <input type="text" name="Bio" /><br/><br/> 
    <input type="submit" value="Καταχώρηση"/> 
</form> 

這裏是腳本:

<?php 
$con = mysql_connect("localhost","root","root"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("fasma", $con); 

$sql="INSERT INTO artists2 (Fname, Sname, Genre, Specialty, Bio) 
VALUES 
('$_POST[Fname]','$_POST[Sname]','$_POST[Genre]','$_POST[Specialty]','$_POST[Bio]')"; 

if (!mysql_query($sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 
echo "Registration Successful"; 

mysql_close($con); 
?> 
+0

,如果我用POST數據發送請求,會發生什麼:FNAME ='); DROP TABLE artists2; ? – keymone

+0

它會將您發送的名稱插入數據庫的新條目。 –

+0

Yo dawg!我們聽說你喜歡SQL注入,所以我們在你的網站上得到了Bobby Tables,所以你可以在丟棄表的時候丟棄表。 – Dan

回答

0

當談到發現PHP函數,您應經常檢查PHP手冊:http://php.net/manual/en/index.php

它有很多關於PHP函數的文檔,包括如何在你的服務器上創建文件夾/目錄。

至於上傳和存儲文件,它比你更容易: 首先,在你的表單中,你需要輸入「文件」類型的字段。例如:

<label>Photo:</label> <input type="file" name="uploadImage" id="file" /><br/><br/> 

一旦表單被提交到process.php,這將文件上傳到服務器上的臨時位置。在process.php中,文件和臨時位置可以像這樣訪問:

$_FILES["file"]["tmp_name"]; 

然後,您可以將文件複製到您喜歡的服務器上的任何位置。由於您是決定將文件複製到哪裏的人,因此您可以根據需要將文件路徑插入到數據庫中。

欲瞭解更多信息,請訪問:http://www.w3schools.com/php/php_file_upload.asp

+0

謝謝我的朋友! :)另一個問題,如何從窗體中按下按鈕時運行php腳本,而不會將我重定向到php頁面並向我顯示「註冊成功」。 ? –

+0

除非您通過AJAX提出請求,否則它會將您重定向到該頁面。你可以做的是,一旦登錄成功,php腳本就會將用戶重定向到另一個你喜歡的頁面。在我發佈的PHP手冊鏈接中查找header()函數。 –

+0

注意:在將它作爲數據庫查詢的一部分之前,應該對錶單輸入進行清理。現在,您不需要這樣做,並且可能會導致攻擊者使用SQL注入技術混淆數據庫。更多信息在這裏:http://php.net/manual/en/security.database.sql-injection.php –

相關問題