Php में शामिल (फ़ाइल) का उपयोग कर चर और परिभाषाओं का उपयोग करते समय त्रुटि

मुझे पता है कि इस सवाल से कई बार पूछा गया है, मैं उनमें से ज्यादातर के माध्यम से चला गया लेकिन कोई भी समाधान मेरे लिए काम नहीं कर रहा है। मुझे मुख्य रूप से तीन फाइलें शामिल करना है, जिनमें सभी शामिल हैं/connect_db, फ़ंक्शन और कॉन्फ़िगरेशन शामिल हैं। कॉन्फ़िगरेशन में मैंने परिभाषित किया है (dir_somefile, 'include/filename') और मैंने कुछ फ़ंक्शन का उपयोग/function.php से भी किया है। लेकिन यह हमेशा मुझे अपरिभाषित चर या पते कहने में त्रुटि देता है। यदि कोई उन्हें चाहता है तो मैं मुख्य पृष्ठ, कॉन्फ़िगरेशन, कनेक्ट और फ़ंक्शंस के कोड संलग्न कर रहा हूं।

मुख्य पृष्ठ:

<?php
    include("includes/config.php");
    include(DIR_DB_CONNECT_SITE);
    include(DIR_DB_FUNCTION_SITE);
    $sqlabout="select aboutus_id,title,content from ".TABLE_ABOUTUS." order by aboutus_id";
    $resultabout=exec_query($sqlabout,"Get About Details");
?>



<head>

config.php:

$runon=1;
date_default_timezone_set("Asia/Calcutta");
$DBHOST="localhost";
    $DBNAME="brainsan_mjmp";
    $DBUSER="root";
    $DBPASSWORD="";
    define('DIRPATH',$_SERVER['DOCUMENT_ROOT']."/mjmp/property_images");
    define('THUMB_PATH',$_SERVER['DOCUMENT_ROOT']."/mjmp/property_images/thumbnail");
     //define('DIRPATH',$_SERVER['DOCUMENT_ROOT']."/mjmp/member_images");

// define the directories details used in Front section
  define('DIR_DB_CONNECT_SITE', 'includes/connect_db.php');      //for db connection
  define('DIR_DB_FUNCTION_SITE', 'includes/function.php');       //for reusable functions
  define('DIR_DB_CLASSES_SITE', 'includes/classes.php');         //(file/image) upload class
  define('DIR_DB_SECURE_SITE', 'includes/secure.php');           //secure login file
  define('DIR_DB_MEMBER_SECURE_SITE', 'includes/member-secure.php');           //secure login file
  define('DIR_MEMBER_IMAGES_SITE','member_images/');          //uploaded member images
  define('DIR_PROPERTY_IMAGES_SITE','property_images/');      //uploaded property images
  define('DIR_THUMB_IMAGES_SITE','property_images/thumbnail/');                     //uploaded images home dir path
  define('DIR_ADS_SITE','advt/');                              //uploaded advertisement images

connect_db.php:

<?php
$link = mysql_connect($DBHOST,$DBUSER,$DBPASSWORD) or die("DataBase Connection Error!");
$connection = mysql_select_db($DBNAME,$link) or die(" DataBase Select Error!".mysql_error());
?>

function.php:

<?
//function to execute a query
function exec_query($sql,$title)
{
    $result=mysql_query($sql);
    if($result)
    {
        return $result;
    }
    else
    {
        echo "Error in $title 
".$sql."
". mysql_error(); exit(); } }

ये फ़ाइलें बहुत बड़ी हैं लेकिन मैंने केवल उस हिस्से को जोड़ा है जिसे मैंने सोचा था कि प्रासंगिक था। कृपया मुझे बताएं कि क्या ज़रूरी है। फाइलें: mainpage.php शामिल/connect_db.php, function.php, confg.php
त्रुटियों:
अपरिभाषित निरंतर DIR_DB_CONNECT_SITE का उपयोग - माना जाता है 'DIR_DB_CONNECT_SITE'
चेतावनी: शामिल करें (DIR_DB_CONNECT_SITE): स्ट्रीम खोलने में विफल: ऐसी कोई फ़ाइल या निर्देशिका नहीं
घातक त्रुटि: अपरिभाषित फ़ंक्शन exec_query पर कॉल करें ()

0
आपका सर्वर शामिल funcion में चर प्राप्त करने के लिए कॉन्फ़िगर नहीं किया गया है
जोड़ा लेखक StaticVariable, स्रोत
आप किस सर्वर का उपयोग कर रहे हैं?
जोड़ा लेखक StaticVariable, स्रोत
वैंप आइकन पर क्लिक करें और PHP सेटिंग और allow_url_include पर जाएं
जोड़ा लेखक StaticVariable, स्रोत
तो मैं इसे शामिल करने के लिए इसे कैसे कॉन्फ़िगर कर सकता हूं? क्या आप मुझे मार्गदर्शन कर सकते हैं? धन्यवाद।
जोड़ा लेखक user2718964, स्रोत
मैं WAMP 2.4 का उपयोग कर रहा हूँ। ऑनलाइन चलाने पर बीटीडब्ल्यू यह कोड ठीक काम करता है।
जोड़ा लेखक user2718964, स्रोत
मैंने अंत में त्रुटियों को जोड़ा है।
जोड़ा लेखक user2718964, स्रोत
StaticVariable, allow_url_include के बाद कुछ भी नहीं बदला। धन्यवाद।
जोड़ा लेखक user2718964, स्रोत
क्या आप त्रुटि संदेश का एक उदाहरण जोड़ सकते हैं?
जोड़ा लेखक Zippp, स्रोत

1 उत्तर

यह PHP में भ्रमित हो सकता है, क्योंकि कुछ वास्तव में समझते हैं कि include_path कैसे काम करता है।

एक समाधान जो मैंने पाया है, बहुत से लोगों के लिए काम करता है अपने पथ को ठीक करना है ताकि PHP उनके प्रोजेक्ट की मूल निर्देशिका खोज सके।

config/config.php

/* fix up include paths */
$include_path = ini_get('include_path');
$include_path = sprintf("%s%s%s", $include_path, PATH_SEPARATOR, realpath(__DIR__ . '/../'));
ini_set('include_path', $include_path);
$include_path = ini_get('include_path');
define('APPROOT', realpath(__DIR__ . '/../'));

index.php

require_once("config/config.php");//once this is called, you can use relative paths
require_once("config/database.php");//like this
require_once(APPROOT . "/config/memcached.php");//or use APPROOT like this

गहरा/नेस्ट/index.php

require_once("../../config/config.php");//once this is called, you can use relative paths
require_once("config/database.php");//like this
require_once(APPROOT . "/config/memcached.php");//or use APPROOT like this
0
जोड़ा
मैं PHP के लिए काफी नया हूँ, क्या मुझे यह कोड मुख्य पृष्ठ पर जोड़ना है ?? धन्यवाद।
जोड़ा लेखक user2718964, स्रोत
इसके अलावा मुझे लगता है कि config.php को सफलतापूर्वक शामिल किया जा रहा है क्योंकि मुझे इसके लिए कोई त्रुटि नहीं है, लेकिन जब मैं कॉन्फ़िगरेशन में चर/परिभाषाओं का उपयोग करता हूं तो मुझे इसे अपरिभाषित माना जाता है।
जोड़ा लेखक user2718964, स्रोत
यदि config.php में चर अपरिभाषित हैं, तो आप शायद इसे ठीक से शामिल नहीं कर रहे हैं। शायद include_path के साथ खेलने के लिए सिर्फ एक नमूना प्रोजेक्ट बनाएं जब तक कि आप इसे थोड़ा बेहतर समझ न लें।
जोड़ा लेखक Tom Herman, स्रोत
मेरे उदाहरण में, आप config.php के सापेक्ष पथ का उपयोग करते हैं, जो आपके अनुप्रयोग रूट को include_path में जोड़ता है। इसके बाद, आप भविष्य में शामिल होने के लिए अपने आवेदन रूट से संबंधित पथों का उपयोग कर सकते हैं। यह अच्छा और साफ और समझने में आसान बनाता है। संदेह में, निर्देशिका को खोजने के लिए getcwd() का उपयोग करें जिसमें आपकी स्क्रिप्ट निष्पादित हो रही है।
जोड़ा लेखक Tom Herman, स्रोत