اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم.

بعد تصحيح الأخطاء ومراجعة التحذيرات تظهر الرسالة التالية . مرفق صور الجداول المذكورة

SELECT * FROM _user_groups WHERE `ID` = ? ORDER BY ID ASC LIMIT 0, 1 SELECT * FROM _setting_admin WHERE `var` = ? LIMIT 0, 1

_setting_admin.jpg

_user_groups.jpg

تم التعديل في بواسطة Marwan Elatta

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

ما هي الرسائل التي تظهر لك ؟

حيث الذي قمت بتوضيحه هو الإستعلامات query لديك .

إذا لم ترد أن تظهر يجب عليك حذف السطر الذي تقوم فيه بطباعتها وسيكون السطر شئ كهذا :

echo $query; 

أما إذا كان يظهر لك رسالة خطأ أو تحذير يرجى إرفاقها.

  • 0
نشر

ليس هنالك خطأ.

لكن الموقع لا يفتح وتظهر هذه الرسالة.

الموضع الذي وجدت به ;echo $query  في ملف class-db.php هو التالي، وعندما اقوم بحذفه يحذف الاستعلام ولكن تبقى الصفحة فارغة ولا تنتقل الى صفحة الموقع:

public function prepare( $query, $generic = false ){

echo $query;

$run = parent::prepare( $query );

$this->__log(array(

"query" => $query,

"__cf" => "prepare",

"safe" => 1,

"generic" => $generic ? 1 : 0,

));

return $run;

}

  • 0
نشر
بتاريخ 2 دقائق مضت قال Marwan Elatta:

ليس هنالك خطأ.

لكن الموقع لا يفتح وتظهر هذه الرسالة.

الموضع الذي وجدت به ;echo $query  في ملف class-db.php هو التالي، وعندما اقوم بحذفه يحذف الاستعلام ولكن تبقى الصفحة فارغة ولا تنتقل الى صفحة الموقع:

public function prepare( $query, $generic = false ){

echo $query;

$run = parent::prepare( $query );

$this->__log(array(

"query" => $query,

"__cf" => "prepare",

"safe" => 1,

"generic" => $generic ? 1 : 0,

));

return $run;

}

إذا ليس هناك مشكلة أو خطأ . يبدوا أنه يوجد لديك في الكود مكان تقوم فيه بإستخدام exit أو die لهذا لا يتم إكمال تنفيذ الإسكريبت ولا يتم إظهار أى شئ .

لهذا إذا قمت في أى مكان بكتابة exit أو die فيبدوا أنك لم تقم بحذفه لذلك يجب البحث عن أى منهما وحذف ذلك لأنه حاليا لا يوجد أى مشكلة.

  • 0
نشر
بتاريخ 8 دقائق مضت قال Marwan Elatta:

ليس هنالك خطأ.

لكن الموقع لا يفتح وتظهر هذه الرسالة.

الموضع الذي وجدت به ;echo $query  في ملف class-db.php هو التالي، وعندما اقوم بحذفه يحذف الاستعلام ولكن تبقى الصفحة فارغة ولا تنتقل الى صفحة الموقع:

public function prepare( $query, $generic = false ){

echo $query;

$run = parent::prepare( $query );

$this->__log(array(

"query" => $query,

"__cf" => "prepare",

"safe" => 1,

"generic" => $generic ? 1 : 0,

));

return $run;

}

الخطأ غير واضح، تفقد سجلات الخادم الـ Error Log هل يوجد بها خطأ ظاهر؟

أيضًا ما الغرض من السكريبت؟ هل من المفترض أن يعرض بيانات معينة في الواجهة؟ أم عليك أنت كتابة ذلك؟ حاول استخدام الكود التالي وتفقد هل يتم طباعة نتيجة أم لا، وإن تم ذلك فالسكريبت يعمل بشكل سليم:

$stmt = $this->prepare("SELECT * FROM _user_groups WHERE ID = ?", true);
$stmt->execute([1]); 
while ($row = $stmt->fetch()) {
    echo "Host: " . htmlspecialchars($row['db_host']) . "<br>";
    echo "User: " . htmlspecialchars($row['db_user']) . "<br>";
    echo "Password: " . htmlspecialchars($row['db_pass']) . "<br>";
}

 

  • 0
نشر
بتاريخ 46 دقائق مضت قال محمد عاطف17:

إذا ليس هناك مشكلة أو خطأ . يبدوا أنه يوجد لديك في الكود مكان تقوم فيه بإستخدام exit أو die لهذا لا يتم إكمال تنفيذ الإسكريبت ولا يتم إظهار أى شئ .

لهذا إذا قمت في أى مكان بكتابة exit أو die فيبدوا أنك لم تقم بحذفه لذلك يجب البحث عن أى منهما وحذف ذلك لأنه حاليا لا يوجد أى مشكلة.

هل يمكن ان تكون هنا المشكلة

<?php

if ( !defined( "root" ) ) die;

class db extends mysqli {

protected $cache = array();

public $debug = false;

public $log = false;

public function __construct( $loader ){

$this->loader = $loader;

// Try to connect to DB

parent::__construct( db_host, db_user, db_pass, db_name );

if( mysqli_connect_errno() ) {

echo "Failed to connect to Database <br>\n";

echo "You have to run the installer or edit app/config.php and put in the right database information";

throw new exception(mysqli_connect_error(), mysqli_connect_errno());

exit;

die;

}

parent::set_charset("utf8mb4");

}

  • 0
نشر
بتاريخ 2 دقائق مضت قال Marwan Elatta:

هل يمكن ان تكون هنا المشكلة

 

نعم من الممكن أن تكون هنا المشكلة .

فإذا لم يتم تعريف ثابت بإسم root سيتم إنهاء تنفيذ الإسكريبت ولن يتم إستكماله .

بتاريخ 3 دقائق مضت قال Marwan Elatta:

if ( !defined( "root" ) ) die;

لذلك يمكنك طباعة root قبل هذا السطر والتأكد من وجوده . 

أو التأكد من أى مكان أخر يتم إستخدام die به .

  • 0
نشر
بتاريخ منذ ساعة مضت قال Mustafa Suleiman:

الخطأ غير واضح، تفقد سجلات الخادم الـ Error Log هل يوجد بها خطأ ظاهر؟

أيضًا ما الغرض من السكريبت؟ هل من المفترض أن يعرض بيانات معينة في الواجهة؟ أم عليك أنت كتابة ذلك؟ حاول استخدام الكود التالي وتفقد هل يتم طباعة نتيجة أم لا، وإن تم ذلك فالسكريبت يعمل بشكل سليم:

$stmt = $this->prepare("SELECT * FROM _user_groups WHERE ID = ?", true);
$stmt->execute([1]); 
while ($row = $stmt->fetch()) {
    echo "Host: " . htmlspecialchars($row['db_host']) . "<br>";
    echo "User: " . htmlspecialchars($row['db_user']) . "<br>";
    echo "Password: " . htmlspecialchars($row['db_pass']) . "<br>";
}

 

الاسكربت لموقع موسيقي لرفع ومشاركة ملفات صوتية.

عند استخدام الكود الذي ذكرته فالنتيجة هي:

Fatal error: Uncaught Error: Call to undefined method loader::prepare() in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php:2 Stack trace: #0 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_loader.php(60): require_once() #1 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/loader.php(22): loader->_require_core_files('db') #2 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/index.php(6): require_once('/home/vol17_1/i...') #3 {main} thrown in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php on line 2

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...