|
|
|
สอบถาม Code PHP ในความปลอดภัย ในการ Download File โดยการสอบถาม Password ก่อนจะให้ก่อน Download |
|
|
|
|
|
|
|
คือจะสอบถาม Code PHP ว่า จะทำการสอบถาม Password ก่อนการกด Download ยังไงครับ
เนี่ยครับ พอกดปุ่ม Download ก็จะมีเด้งให้ใส่ Password ที่ใช้ในการ Login เข้ามาอะครับ
ถ้าใส่ถูก File ก็จะถูกดาวโหลด ถ้าผิดก็จะขึ้นว่าใส่ผิดอะครับ
list_files.php
Code (PHP)
<?php
session_start();
?>
<?php
// Connect to the database
$dbLink = new mysqli('localhost', 'root', 'root', 'magicbox');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error());
}
// Query for a list of all existing files
$sql = 'SELECT `id`, `name`, `mime`, `size`, `created` FROM `file`';
$result = $dbLink->query($sql);
// Check if it was successfull
if($result) {
// Make sure there are some files in there
if($result->num_rows == 0) {
echo '<p>There are no files in the database</p>';
}
else {
// Print the top of a table
echo '<table width="100%">
<tr>
<td><b>Name</b></td>
<td><b>Mime</b></td>
<td><b>Size (bytes)</b></td>
<td><b>Created</b></td>
<td><b> </b></td>
</tr>';
// Print each file
while($row = $result->fetch_assoc()) {
echo "
<tr>
<td>{$row['name']}</td>
<td>{$row['mime']}</td>
<td>{$row['size']}</td>
<td>{$row['created']}</td>
<td><a href='get_file.php?id={$row['id']}'>Download</a></td>
</tr>";
}
// Close table
echo '</table>';
}
// Free the result
$result->free();
}
else
{
echo 'Error! SQL query failed:';
echo "<pre>{$dbLink->error}</pre>";
}
// Close the mysql connection
$dbLink->close();
?>
<html>
<head>
<title>User Login</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<table border="0" cellpadding="10" cellspacing="1" width="500" align="center">
<tr class="tableheader">
<td align="center"></td>
</tr>
<tr class="tablerow">
<td>
<?php
if($_SESSION["Username"]) {
?>
Welcome <?php echo $_SESSION["Username"]; ?>. Click here to <a href="index.html" tite="Logout">Logout.
<?php
}
?>
</td>
</tr>
</body>
</html>
login.php
Code (PHP)
<?php
session_start();
mysql_connect("localhost","root","root");
mysql_select_db("magicbox");
$strSQL = "SELECT * FROM member WHERE Username = '".trim($_POST['Username'])."' and Password = '".trim($_POST['Password'])."'";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "Username and Password Incorrect!";
}
else
{
$_SESSION["Username"] = $objResult["Username"];
session_write_close();
header("location:add_file.php");
}
mysql_close();
?>
รบกวนทีนะครับ ว่าจะใช้วิธีไหน ในการดักพาส ที่ใช้ login ก่อนที่จะดาวโหลดไฟล์ได้
ขอบคุณครับ ^_^
Tag : PHP, MySQL, HTML/CSS
|
|
|
|
|
|
Date :
2014-11-10 17:58:59 |
By :
xgabpyz |
View :
2756 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนทีนะครับ ทำยังไงให้ กด Download แล้วขึ้นถามรหัสผ่าน
โดยใช้ รหัสผ่านที่ตั้งขึ้น พร้อมกับการ Upload เพื่อเป็นการ ป้องกันไม่ให้ผู้อื่นมาโหลดได้
|
|
|
|
|
Date :
2014-11-10 20:10:33 |
By :
xgabpyz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือจะเอาวิธีไหนก็ได้ครับ ให้มันมีความปลอดภัยในการ Download File
ไม่ถูกคนอื่น Download ไปได้แบบง่ายง่าย
|
|
|
|
|
Date :
2014-11-10 20:12:56 |
By :
xgabpyz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไมต้องกดโหลดแล้วถึงถามพาสล่ะ
เป็นเราทำเป็นระบบ user ให้ login เข้ามาก่อนถึงจะโหลดได้
ส่วนการโหลดจะไม่เปิดให้โหลดด้วย url ตรงๆ จะให้โหลดผ่าน php
แล้วให้ php stream data ส่งไป (กำหนด content type ด้วย เดี๋ยว client จะไม่รู้ว่าเป็นไฟล์อะไร)
|
|
|
|
|
Date :
2014-11-11 08:41:41 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่าง php ใช้ในการ download file อื่น (ตัวอย่างนี้มีการ add texe resize )
ก็ดูเฉพาะส่วนที่ต้องการเอานะครับ
Code (PHP)
<?php
/// id=65000
/////////////////////////////////////////
session_start();
if(!isset($_SESSION['user'])) exit;
$id=intval($_GET['id']);
$filename = $id.'.jpg';
list($width, $height) = getimagesize($filename);
$newwidth = $width;
$newheight = $height + 20;
// Load
$im = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($im, $source, 0, 0, 0, 0, $newwidth, $height, $width, $height);
////////////////////////////////////////
$code=$_SESSION['user']; // ตัวอย่าง add text
$text_color = imagecolorallocate($im, 200, 255, 0);
$s_size = ImageFtBbox(10, 0, 'arial.ttf', $code, array("linespacing" => 1));
$s_width = $s_size[4];
$s_height = $s_size[5];
imagettftext ( $im, 10, 0, ($width-$s_width)/2, $height-$s_height + 2, $text_color, 'arialbd.ttf', $code);
////////////////////////////////////////
$tmp='tmp_'.$password.'.jpg';
ImageJPEG($im, $tmp,100);
imagedestroy($im);
////////////////////////////////////////
$l=filesize ($tmp);
$contents = fread ($fd = fopen ($tmp, "rb"), $l); fclose ($fd);
unlink($tmp);
///////////////////////////////////////
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$code.'.jpg"');
header("Pragma: no-cache");
header("Content-Type:image/jpeg\n");
header("Content-Transfer-Encoding: binary\n");
header("Content-length: ".$l. "\n");
echo($contents);
?>
|
ประวัติการแก้ไข 2014-11-11 10:55:39
|
|
|
|
Date :
2014-11-11 10:00:52 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ง่ายๆๆคือให้เฉพาะสมาชิกดาวน์โหลดได้หากไม่ใช่สมาชิกจะต้องกลับไปล็อกอินก่อนค่อยโหลดได้
|
|
|
|
|
Date :
2014-11-11 10:03:47 |
By :
LAGO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาม no.5 เลย
file จะเก็บอยู่ใน folder ที่ไม่สามารถเข้าถึงได้ด้วย http (ไม่สามารถพิมพ์ url แล้วโหลดเลยได้)
แล้วให้ php read file แล้ว stream ออกไป
|
|
|
|
|
Date :
2014-11-11 10:49:05 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|