# زبان های اسکریپتی > PHP >  مشکل با ذخیره و نمایش عکس در php (ذخیره مسیر یا خود عکس)

## xman_dj

با سلام و خسته نباشید
من یک صفحه دارم که مربوط به کالا میشه و تو اون مشخصاتی مثل نام کالا قسمت و .... و در آخر عکس از کاربر میگیرم
-
سوال من اینجا مطرح میشه که
من سورس مربوط به ذخیره عکس تو mysql  رو پیدا کردم و سورس مربوط به نمایش اون
ولی تو سورس نمایش اون تو خط  header ( 'Content-type: image/jpg' ); مشکل پیدا میکنم یعنی سورس تو یک صفحه خالی جواب میده ولی وقتی با کد های اچ تی ام ال ادغام میکنم ایراد پیدا میکنه
فایل آپلود و نمایش اونو آپلود کردم
-
اول از همه میخواستم فقط مسیر عکسو ذخیره کنم و تو نمایش از اون استفاده کنم ولی سورس مربوطه اونو پیدا نکردم تا کمکی بهم بکنه
-

در کل میخوام عکس + چند فیلد رو ذخیره و نمایش بدم ولی اینا چون به صورت کالا هستن میخوام تو یک حلقه این کارو بکنم
از دوستان اگه منو راهنمایی کنن خیلی ممنون میشم کارم واقعا گیره نحوه ذخیره مهم نیست زیاد برام یعنی هم ذخیره مسیر و نمایش از روی مسیر عکس و یا ذخیره و نمایش از پایگاه داده کارمو راه میندازه
این سورس رو که دادم کارش فقط نمایش یک کالاست و وقتی با یک کد html ادغام میشه جواب نمیده اگه اینم حل کنین میشه 
فکر کنم مشکل کد اینجا باشه
header ( 'Content-type: image/jpg' );
نمایش میدم وقتی اینو استفاده نمیکنم ولی اون موقع هم کد عکسو نشون میده بجای عکس مثل اینکه با note pad  باز کردم
 :افسرده:

----------


## morteza_naderloo

من تازه کارم امابه نظرم تنها جایی که مشکل داشت صفحه نمایش بودکه فکر کنم اینجوری درست شد .


<?php

$username = "root";
$password = "123456";
$host = "127.0.0.1";
$database = "dbphp";


@ mysql_connect ( $host , $username , $password ) or die( "Can not connect to database: " . mysql_error ());

@ mysql_select_db ( $database ) or die( "Can not select the database: " . mysql_error ());

$id = $_GET [ 'id' ];

if(!isset( $id ) || empty( $id )){
die( "Please select your image!" );
}else{

$query ="SELECT * FROM tbl_images WHERE id="\$id\" ";
$result = mysql_query ($query);
$out=mysql_fetch_array($result,MYSQL_ASSOC)){
echo $out[image];

}

?> 
بعضی وقتا فوزولی تو اینکارا خوبه ؟

راستی فکر کنم اینجوری SQL INJ بشی .

----------


## xman_dj

داداش سورس درسته ولی وقتی کد html اظافه میکنم کار نمیکنه
راستی اینو همینطوری سیو نمیکنم یعنی تغییر میدم
اگه امکانش هست شما میتونی این کدو بندازی تو یک جدول تا ببینی کار میکنه یا نه من که هر کاری کردم وقتی  کد html نوشتم کار نکرد header ( 'Content-type: image/jpg' ); این قسمت فکر کنم تغییری در صفحه انجام میده
راستی مشکل sql inject  هم نیست چون پروژه دانشگاهه ....آپلود نمیکنم
*************
و یک سوال دیگه هم داشتم تو فرم زیر یک فایلی انتقال میدم از کامپیوترم و در صفحه uploader اسم فایل، نوع فایل و .. رو از روی آرایه $_FILES["file"]["name"]  به دست میارم
سوالم اینجا پیش میاد که اگه بخوام مسیری که عکس از کامپیوتر طرف انتخاب شده رو نیز به دست بیارم باید چیکار کنم تو آرایه بالا اسمی برای این نیز در نظر گرفته شده؟

<html>
<body>

<form action="uploader.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

-----------------------------------------------------------------------------

echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"]. "<br />";;

----------


## xman_dj

کسی نیست یک راهنمایی کنه :افسرده:

----------


## eshpilen

> سوالم اینجا پیش میاد که اگه بخوام مسیری که عکس از کامپیوتر طرف انتخاب شده رو نیز به دست بیارم باید چیکار کنم


فکر نکنم اجازهء این کار رو داشته باشی. از نظر Security و Privacy برای کاربر مشکل داره.
البته اسم خود فایل تاجایی که یادمه ارسال میشه.

----------


## eshpilen

> اگه امکانش هست شما میتونی این کدو بندازی تو یک جدول تا ببینی کار میکنه  یا نه من که هر کاری کردم وقتی  کد html نوشتم کار نکرد header (  'Content-type: image/jpg' ); این قسمت فکر کنم تغییری در صفحه انجام میده


قربونت وقتی هدر Content-type: image/jpg میفرستی یعنی داری به کلاینت میگی چیزی که دریافت خواهد شد بایتهای یک تصویر از نوع jpg هست. توی تصویر JPG هم که دیگه کد HTML نداره!
اگر شما میخوای کد HTML هم بدی باید یک تگ img توی کدهای HTML بذاری و src اون رو به فایل PHP ای که محتوی عکس رو میفرسته تنظیم کنی.

----------


## xman_dj

داداش متوجه نشدم تو مثال بالا که دادم یک صفحه برای نمایش عکس دارم که کد html  هم توش نمیشه نوشت چون هدر فایل از نوع عکس انتخاب شده
الان من باید کدوم صفحه رو تغییر بدم 
اگه میشه یک مثال به صورت سورس بزنین
یک دنیا ممنون

----------


## rezarss

برای درج آدرس عکس در mysql از این کد استفاده کن:
$imgpath="http://yourdomain.com/img/". $_FILES["imageurl"]["name"];

mysql_query("INSERT INTO `dbname`.`table` (

`image url` 
)
VALUES (
`$imgpath`
)");برای نمایش عکس با php هم از این کد استفاده کن:

$data = mysql_query("SELECT * FROM table") 
 or die(mysql_error());

 while($info = mysql_fetch_array( $data ))
 {
$pic=$info['image url'];
echo "<table width=\"856\" height=\"176\" border=\"0\" align=\"center\">\n";
echo "  <tr>\n";
echo "<td width=\"210\"><div align=\"center\"><img src=\"$pic\" width=\"198\" height=\"170\" /></div></td>\n";
</tr>\n";
echo "</table>\n";
}

----------


## parselearn

شما id تصوير رو ارسال ميكنيد به فايل show.php اون خروجي ميده
مثال:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
    <img src="show.php?id=2" />
</body>
</html>

----------

