الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

يارب اجد حد يساعدنى

بدأه themuslim2007 في 28 مايو 2008 · 3 رد · 663 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ياجماعه ياناس ياخلق انا عند خطا بظهر لى هو ده

Warning: fopen("", "r") - Result too large in c:\apache\htdocs\host\cms-add.php on line 9

Warning: Supplied argument is not a valid File-Handle resource in c:\apache\htdocs\host\cms-add.php on line 10

Article 'ahmed' added Your files is successfully store in database

الخطا بظهر فى الكود ده

<?php
if ($_POST['save'])
{
if(isset($_POST['save']))
{
if ($_POST['MAX_FILE_SIZE'] >= $_FILES['file']['size']) {
 $title   = $_POST['title'];
 $content = $_POST['content'];
	 $photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"),
		$_FILES['file']['size']));
 if(!get_magic_quotes_gpc())
 {
  $title   = addslashes($title);
  $content = addslashes($content);

 }
 include 'library/config.php';
 include 'library/opendb.php';

 $query1= sprintf("INSERT INTO news(Image, FileType, title, content) VALUES
	   ('%s', '%s','$title', '$content')",$photo ,$_FILES['file']['type']);


	 if (mysql_query($query1)) {
			$messages[] = "Your files is successfully store in database"; 
		   } else {
			$messages[]= mysql_error();
		   } 
}else {
		   $messages[]="The file is bigger than the allowed size please resize";
		  }
 include 'library/closedb.php';

 echo "Article '$title' added";
 }

}
?>
<html>
<head>
<title>Add An Article</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.box {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 12px;
 border: 1px solid #000000;
}
-->
</style>
</head>

<body>


<form method="post">
  <table width="700" border="0" cellpadding="2" cellspacing="1" class="box" align="center">
	<tr> 
	  <td width="100">Title</td>
	  <td><input name="title" type="text" class="box" id="title"></td> 
</tr>
   <? 
	  if (isset($messages)) { 
		foreach ($messages as $message) {
		 print $message ."<br>";
		} 
	  }
	  ?>  
<tr>	  
<td width="100">Image</td>
	  <td><input type="file" name="file">
	  <input type="hidden" name="MAX_FILE_SIZE" value="96000000">
	  </td>

</tr>
	<tr> 
	  <td width="100">Content</td>
	  <td><textarea name="content" cols="50" rows="10" class="box" id="content"></textarea></td>

</tr>
	<tr> 
	  <td width="100"> </td>
	  <td> </td>
	</tr>
	<tr> 
	  <td colspan="2" align="center"><input name="save" type="submit" class="box" id="save" value="Save Article"></td>
		</tr>
  </table>
	  </form>
</body>
</html>

عاوز اعرف ليه الخطا ده بيظهر وايه الحل علما بانى لسه مبدا فى البى اتش بى

راسلونى هنا themuslim0@yahoo.com

تم تعديل هذه المشاركة بواسطة محمد معاشر في 28 مايو 2008 في 09:16

#2

أخي الكريم من الخطأ في السطر التاسع لاحظ أن المسار فارغ (أول باراميتر) تأكد منه جيداً ...

#3

ممكن استاذ خالد اتاكد من حاجة هو الكود ده خاص بعمل رفع للصور وياريت لو توضح الجزء دة

<?php
if ($_POST['save'])
{
if(isset($_POST['save']))
{
if ($_POST['MAX_FILE_SIZE'] >= $_FILES['file']['size']) {
$title   = $_POST['title'];
$content = $_POST['content'];
	 $photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"),
		$_FILES['file']['size']));
if(!get_magic_quotes_gpc())
{
  $title   = addslashes($title);
  $content = addslashes($content);

انا فاهمة الجزء اللي تحت هوحضرتك بتدخل صور في

data base

ولك جزيل الشكر

تم تعديل هذه المشاركة بواسطة محمد معاشر في 29 مايو 2008 في 11:05

#4
if ($_POST['save'])
{

هذا الشرط لكي نعرف أن المستخدم قد ضغط على زر الذي اسمه save ونوعه submit ، كلما حدثتي الصفحة أو دخلت إليها سينفذ كود php الخاص برفع الصورة لذلك وضعنا هذا الكود في هذا الشرط أي سينفذ فقط عندما يضغط المستخدم على زر save

if(isset($_POST['save']))
{

نفذ الشرط السابق إذا أن تابع isset يأخذ متحول كباراميتر ويفحصه هل يحوي قيمة أم لا ، فإذا كان يحوي قيمة إذن المستخدم ضغط على زر save ، هذا الشرط لا داعي له إذ يكفي الشرط الأول أو الثاني فالشرطان لهما نفس المهمة

if ($_POST['MAX_FILE_SIZE'] >= $_FILES['file']['size']) {

للتأكد من أن حجم الملف الموضوع في حقل مخفي

<input type="hidden" name="MAX_FILE_SIZE" value="96000000">

هو أكبر من حجم الملف المراد رفعه ، بعنى آخر حجم الملف المراد رفعه أصغر من الحجم الأقصى الموضوع في الحقل المخفي السابق

$title = $_POST['title'];
$content = $_POST['content'];

خزن العنوان والمحتوى الذين كتبهما المستخدم في حقول html في متحولات ، فقط للسهولة وللأمان ، فإذا أردنا تغيير العنوان مثلاً سنغير على النسخة التي وضعناها $title ولن نغير في الأصلي $_POST['title']

$photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"),$_FILES['file']['size']));

يجب تقسيم هذا التابع لعدة خطوات كي يسهل فهمه:

fopen($_FILES['file']['tmp_name'], "r")

افتح الملف الذي رفعناه ، حيث يخزن اسمه ومساره بشكل تلقائي في المتحول $_FILES['file']['tmp_name']

fread(fopen($_FILES['file']['tmp_name'], "r"),$_FILES['file']['size'])

تابع القراءة هذا يأخذ بارامترين الأول هو الملف الذي فتحناه والثاني هو حجم الملف ، فمهمة هذا التابع أن يأخذ اسم الملف والحجم المراد قرائته وفي مثالنا هنا سنقرأ الملف كاملاً إذ مررنا في الباراميتر الثاني حجم الملف إذاً سيقرأ الملف كله، فلو مررنا $_FILES['file']['size']/2 سيقرأ نصف الملف

addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"),$_FILES['file']['size']));

سيأخذ الملف الذي قرأناه و"يصفيه من الشوائب"

وأخيراً بعض المراجع للتوابع التي لم أكرها نظراً لوجود شرح عنها

http://php.net/addslashes

http://www.php.net/get_magic_quotes_gpc

بالتوفيق

ملاحظة مهمة: لا نحتفظ بالصورة في الداتا بيز بل نحتفظ بمسارها

مواضيع مشابهة