পিএইচপি - একটি পিএইচপি ফাইল অন্তর্ভুক্ত করুন এবং কোয়েরি পরামিতিগুলি প্রেরণ করুন


89

আমাকে কিছু শর্তের ভিত্তিতে আমার পিএইচপি স্ক্রিপ্ট থেকে একটি পৃষ্ঠা দেখাতে হবে। আমার যদি একটি শর্ত থাকে এবং শর্তটি সন্তুষ্ট হলে "অন্তর্ভুক্ত" করছি।

if(condition here){
  include "myFile.php?id='$someVar'";
}

এখন সমস্যাটি হ'ল সার্ভারের একটি ফাইল "মাইফিল.এফপি" আছে তবে আমি এই ফাইলটিতে একটি আর্গুমেন্ট (আইডি) দিয়ে কল করতে চাই এবং প্রতিটি কলের সাথে "আইডি" এর মান পরিবর্তন হবে।

কেউ দয়া করে আমাকে কীভাবে এটি অর্জন করবেন তা বলতে পারেন? ধন্যবাদ


4
MyFile.php আসলে আপনার ক্ষেত্রে কি করে? আপনি যদি এইচটিটিপি-র উপরে অন্তর্ভুক্তির অনুরোধ না করেন তবে আপনি ফাইলের নামগুলিতে প্যারামিটার যুক্ত করতে পারবেন না, তবে আপনি কোনও ধরণের বিশ্বব্যাপী ভেরিয়েবলের মাধ্যমে এর আচরণকে প্রভাবিত করতে পারেন।
পল ডিকসন

উত্তর:


211

এটি কী হিসাবে অন্তর্ভুক্ত রয়েছে তা কল্পনা করুন: অন্তর্ভুক্ত পিএইচপি ফাইলের সামগ্রীগুলির একটি অনুলিপি এবং পেস্ট করুন যার অর্থ ব্যাখ্যা করা হবে। কোনও সুযোগে কোনও পরিবর্তন নেই, সুতরাং আপনি এখনও অন্তর্ভুক্ত ফাইলটিতে সরাসরি কিছু অংশে অ্যাক্সেস করতে পারবেন (যদিও আপনি শ্রেণিভিত্তিক কাঠামো বিবেচনা করতে পারেন যেখানে আপনি পাস করেছেন $ কিছুটা প্যারামিটার হিসাবে বা কয়েকটি বৈশ্বিক ভেরিয়েবলগুলি উল্লেখ করুন)।


4
এছাড়াও দ্রষ্টব্য: included _GET সমস্ত অন্তর্ভুক্ত ফাইলের জন্য একই হবে। সুতরাং যদি এটি হয় যেখানে আপনার ক্যোয়ারী প্যারামিটারগুলি সঞ্চয় করা থাকে তবে এটি এখনও সেগুলি দেখতে পাবে। এছাড়াও নোট করুন: এটি কোনও শ্রেণিতে ফাংশন নয়।
জোনাথন

49

আপনি যে প্রভাবটি পরে যাচ্ছেন তা অর্জন করতে আপনি এরকম কিছু করতে পারেন:

$_GET['id']=$somevar;
include('myFile.php');

তবে, মনে হচ্ছে আপনি এটি ব্যবহার করছেন এমন কোনও ধরণের ফাংশন কল (যেমন আপনি বারবার বিভিন্ন যুক্তি দিয়ে কল করার কথা উল্লেখ করেছেন) অন্তর্ভুক্ত।

এই ক্ষেত্রে, কেন এটি একবারে অন্তর্ভুক্ত এবং একাধিকবার ডাকা নিয়মিত ফাংশনে পরিণত হবে না?


4
আমি সম্মত, এটি অবশ্যই মনে হচ্ছে এটি অন্তর্ভুক্তের পরিবর্তে কোনও ফাংশন কল হওয়া উচিত।
ব্রেন্টন আলকার 10

আপনি কোড এবং include("myFile.php?id=$somevar");অভিন্ন?
স্ট্যাক করুন

দ্রষ্টব্য: include("myFile.php?...উদ্দেশ্য হিসাবে কাজ করে না।
কলাআকিড

29

একটি অন্তর্ভুক্ত করা ঠিক একটি কোড সন্নিবেশের মতো। আপনি আপনার বেস কোডটিতে ঠিক একই ভেরিয়েবলগুলি আপনার অন্তর্ভুক্ত কোডটিতে পাবেন। সুতরাং আপনি এটি আপনার মূল ফাইলটিতে করতে পারেন:

<?
    if ($condition == true)
    {
        $id = 12345;
        include 'myFile.php';
    }
?>

এবং "মাইফিল.এফপি" তে:

<?
    echo 'My id is : ' . $id . '!';
?>

এটি আউটপুট দেবে:

আমার আইডি 12345!


7

আপনি যদি পিএইচপি ফাইলে এটি ম্যানুয়ালি অন্তর্ভুক্ত লিখতে চলেছেন - ড্যাফের উত্তরটি নিখুঁত।

যাইহোক, আপনার যদি প্রাথমিক প্রশ্নটি করা দরকার তবে তা অর্জনের জন্য এখানে একটি ছোট্ট সাধারণ ফাংশন রয়েছে:

<?php
// Include php file from string with GET parameters
function include_get($phpinclude)
{
    // find ? if available
    $pos_incl = strpos($phpinclude, '?');
    if ($pos_incl !== FALSE)
    {
        // divide the string in two part, before ? and after
        // after ? - the query string
        $qry_string = substr($phpinclude, $pos_incl+1);
        // before ? - the real name of the file to be included
        $phpinclude = substr($phpinclude, 0, $pos_incl);
        // transform to array with & as divisor
        $arr_qstr = explode('&',$qry_string);
        // in $arr_qstr you should have a result like this:
        //   ('id=123', 'active=no', ...)
        foreach ($arr_qstr as $param_value) {
            // for each element in above array, split to variable name and its value
            list($qstr_name, $qstr_value) = explode('=', $param_value);
            // $qstr_name will hold the name of the variable we need - 'id', 'active', ...
            // $qstr_value - the corresponding value
            // $$qstr_name - this construction creates variable variable
            // this means from variable $qstr_name = 'id', adding another $ sign in front you will receive variable $id
            // the second iteration will give you variable $active and so on
            $$qstr_name = $qstr_value;
        }
    }
    // now it's time to include the real php file
    // all necessary variables are already defined and will be in the same scope of included file
    include($phpinclude);
}

?>

আমি এই পরিবর্তনশীল পরিবর্তনশীল নির্মাণটি প্রায়শই ব্যবহার করছি using


4

আপনি যে ফাইলটি অন্তর্ভুক্ত করেছেন তাতে কোনও ফাংশনে এইচটিএমএল জড়ান।

<?php function($myVar) {?>
    <div>
        <?php echo $myVar; ?>
    </div>
<?php } ?>

আপনি যে ফাইলটিকে অন্তর্ভুক্ত করতে চান সেখানে সেই ফাইলটি অন্তর্ভুক্ত করুন এবং তারপরে আপনার পছন্দের প্যারামিটারগুলির সাথে ফাংশনটি কল করুন।


2

আমি জানি এটি কিছুক্ষণ হয়ে গেছে, তবে আমি ভাবছিলাম যে এটি হ্যান্ডেল করার সর্বোত্তম উপায়টি সেশন ভেরিয়েবল (গুলি) ব্যবহার করা হবে কিনা?

আপনার myFile.php এ আপনি থাকবেন

<?php 

$MySomeVAR = $_SESSION['SomeVar'];

?> 

এবং কলিং ফাইলে

<?php

session_start(); 
$_SESSION['SomeVar'] = $SomeVAR;
include('myFile.php');
echo $MySomeVAR;

?> 

এটি কি "প্রস্তাবিত" পুরো প্রক্রিয়াটি কার্যকর করার প্রয়োজন হবে?


আপনি এটিকে একটি ফাংশন করতে চান যাতে আপনি একগুচ্ছ অনুরোধ শুরু করেন না। অন্তর্ভুক্ত পিএইচপি-তে কীভাবে তথ্য পাবেন তা সমস্যা নয় - ওপির পদ্ধতি ইতিমধ্যে এটি অর্জন করে।
নীল

2

আমি একাধিক ফিল্ড সেট অন্তর্ভুক্ত যেখানে অজ্যাক্স ফর্মগুলি করার সময় আমি এটিতে ছুটে এসেছি। উদাহরণস্বরূপ একটি কর্মসংস্থান আবেদন গ্রহণ করা। আমি একটি পেশাদার রেফারেন্স সেট দিয়ে শুরু করি এবং আমার কাছে একটি বোতাম আছে যা "আরও যুক্ত করুন" বলে। এটি ইনপুট সেটটি আবার অন্তর্ভুক্ত করার জন্য etc কাউন্ট প্যারামিটারের সাথে একটি এজাক্স কল করে (নাম, পরিচিতি, ফোন ইত্যাদি)) প্রথম পাতা কলটিতে আমি যেমন কিছু করি ঠিক তেমন এটি কাজ করে:

<?php 
include('references.php');`
?>

ব্যবহারকারী একটি বোতাম টিপুন যা একটি অজ্যাক্স কল করে ajax('references.php?count=1'); তারপরে রেফারেন্স.এফপি ফাইলের ভিতরে আমার কাছে এমন কিছু রয়েছে:

<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>

আমার কাছে অন্যান্য গতিশীলগুলিরও রয়েছে পুরো পরামিতিগুলিতে পুরো সাইট জুড়ে। ব্যবহারকারী চাপলে জমা দেয় এবং ফর্ম ত্রুটি থাকে তখন সমস্যাটি ঘটে। তাই এখন ডুপ্লিকেট কোডগুলি না করার জন্য সেই অতিরিক্ত ক্ষেত্র সেটগুলিকে অন্তর্ভুক্ত করতে যেখানে গতিশীলভাবে অন্তর্ভুক্ত করা হয়েছে, আমি একটি ফাংশন তৈরি করেছি যা উপযুক্ত জিইটি প্যারামের সাথে অন্তর্ভুক্ত সেটআপ করবে।

<?php

function include_get_params($file) {
  $parts = explode('?', $file);
  if (isset($parts[1])) {
    parse_str($parts[1], $output);
    foreach ($output as $key => $value) {
      $_GET[$key] = $value;
    }
  }
  include($parts[0]);
}
?>

ফাংশন ক্যোয়ারী প্যারামগুলির জন্য পরীক্ষা করে এবং স্বয়ংক্রিয়ভাবে এগুলিকে $ _GET ভেরিয়েবলে যুক্ত করে। এটি আমার ব্যবহারের ক্ষেত্রে খুব ভাল কাজ করেছে।

যখন ডাকা হবে তখন ফর্ম পৃষ্ঠায় একটি উদাহরণ রয়েছে:

<?php
// We check for a total of 12
for ($i=0; $i<12; $i++) {
  if (isset($_POST['references_name_'.$i]) && !empty($_POST['references_name_'.$i])) {
   include_get_params(DIR .'references.php?count='. $i);
 } else {
   break;
 }
}
?>

নির্দিষ্ট ব্যবহারের ক্ষেত্রে সামঞ্জস্য করার জন্য গেইটিকভাবে জিইটি প্যারামগুলি অন্তর্ভুক্ত করার আরও একটি উদাহরণ। আশাকরি এটা সাহায্য করবে. দয়া করে নোট করুন যে এই কোডটি সম্পূর্ণ অবস্থায় নেই তবে যে কেউ তাদের ব্যবহারের ক্ষেত্রে খুব ভাল শুরু করতে যথেষ্ট হবে should


2

এটি করার সহজ উপায় এটি

index.php

<?php $active = 'home'; include 'second.php'; ?>

second.php

<?php echo $active; ?>

আপনি "অন্তর্ভুক্ত" ব্যবহার করে 2 টি ফাইল অন্তর্ভুক্ত করার কারণে আপনি ভেরিয়েবলগুলি ভাগ করতে পারেন


0

আপনার প্রশ্নটি খুব পরিষ্কার নয়, তবে আপনি যদি পিএইচপি ফাইলটি অন্তর্ভুক্ত করতে চান (সেই পৃষ্ঠার উত্সটি আপনার সাথে যুক্ত করুন), আপনাকে কেবল নিম্নলিখিতটি করতে হবে:

if(condition){
    $someVar=someValue;
    include "myFile.php";
}

যতক্ষণ না ভেরিয়েবলটির নাম দেওয়া হয় my myFile.php এ কিছু ভার


0

আমি একই পরিস্থিতিতে ছিলাম এবং কিছু পরামিতি প্রেরণ করে আমার একটি পৃষ্ঠা অন্তর্ভুক্ত করা দরকার ছিল ... তবে বাস্তবে আমি যা করতে চেয়েছিলাম তা হল পৃষ্ঠাটি পুনর্নির্দেশ করা ... যদি আপনার ক্ষেত্রে হয় তবে কোডটি হ'ল:

<?php
   header("Location: http://localhost/planner/layout.php?page=dashboard"); 
   exit();
?>

0

যদি অন্য কারও কাছে এই প্রশ্ন থাকে, ব্যবহার করার সময় include('somepath.php');এবং সেই ফাইলটিতে কোনও ফাংশন রয়েছে, সেখানে অবশ্যই ভ্যারিয়ালটি ঘোষণা করতে হবে। অন্তর্ভুক্তি $var=$var;সবসময় কাজ করবে না। এগুলি চালানোর চেষ্টা করুন:

one.php:

<?php
    $vars = array('stack','exchange','.com');

    include('two.php'); /*----- "paste" contents of two.php */

    testFunction(); /*----- execute imported function */
?>

two.php:

<?php
    function testFunction(){ 
        global $vars; /*----- vars declared inside func! */
        echo $vars[0].$vars[1].$vars[2];
    }
?>


-6

এটা কর:

NSString *lname = [NSString stringWithFormat:@"var=%@",tname.text];
NSString *lpassword = [NSString stringWithFormat:@"var=%@",tpassword.text];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://localhost/Merge/AddClient.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"insert" forHTTPHeaderField:@"METHOD"];

NSString *postString = [NSString stringWithFormat:@"name=%@&password=%@",lname,lpassword];
NSString *clearpost = [postString stringByReplacingOccurrencesOfString:@"var=" withString:@""];
NSLog(@"%@",clearpost);
[request setHTTPBody:[clearpost dataUsingEncoding:NSUTF8StringEncoding]];
[request setValue:clearpost forHTTPHeaderField:@"Content-Length"];
[NSURLConnection connectionWithRequest:request delegate:self];
NSLog(@"%@",request);

এবং আপনার insert.phpফাইলে যুক্ত করুন:

$name = $_POST['name'];
$password = $_POST['password'];

$con = mysql_connect('localhost','root','password');
$db = mysql_select_db('sample',$con);


$sql = "INSERT INTO authenticate(name,password) VALUES('$name','$password')";

$res = mysql_query($sql,$con) or die(mysql_error());

if ($res) {
    echo "success" ;
} else {
    echo "faild";
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.