Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > include ข้ามไฟล์ยังงี้แล้วมีปัญหาครับ ?? คือผมงงมากครับเคยตั้งกระทู้เกี่ยวกับ include ไปแล้ว



 

include ข้ามไฟล์ยังงี้แล้วมีปัญหาครับ ?? คือผมงงมากครับเคยตั้งกระทู้เกี่ยวกับ include ไปแล้ว

 



Topic : 032915



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมงงมากครับเคยตั้งกระทู้เกี่ยวกับ include ไปแล้ว สองสมาครั้ง แต่ก็ยังไม่เข้าใจสักที ขอรบกวนอีกสักครั้งนะครับ

คือ ผมมีหน้าไฟล์ index.php แลtมีโฟลเดอร์หนึ่งชื่อว่า new แล้วในโฟลเดอร์ new จะมีระบบคล้ายๆ เป็นข่าว

ประชาสัมพันธ์มีรูปภาพเลื่อนไปเลื่อนมาพร้อมกับเนื้อหา ** แล้วที่นี้ผมต้องการไฟล์ ที่เป็นข่าวประชาสัมพันธ์

ไปไว้หน้าแรกที่ index.php ผมจึงใช้คำสั่งของ include คือ <? include("new/index.php"); ?> ,มาแทรกไว้

ในหน้าแรก แต่พอผมแสดงผลดู ไฟล์ที่ include ขึ้นมามันกับไม่แสดงผลเหมือนที่แสดงในหน้า ที่อยู่โฟลเดอร์ new

มันจะเป็นคนละเรื่องที่อยู่ในโฟลเดอร์ new เลยละครับ ผมเลยสงสัยว่า include มันดึงมาแค่ข้อมูลที่โชว์เฉยๆเหรอ

ครับ มันไม่ดึงรูปแบบ หรือค่าข้อมูลปัจจุบันที่แสดงที่อยู่ในโฟลเดอร์ new มาด้วยเหรอครับ มันไม่อ่านค่า css หรือ

พวก script ที่อยู่ใน folder มาด้วยเหรอครับ หรือมันดึงมาหมดแต่ผมทำผิดขั้นตอนเอง หรือมีวิธีดึงที่เอามาโชว์

ในหน้า index.php แบบให้ค่าเหมือนกับไฟล์ที่เราต้องการดึงมา เลยมีไหมครับ ยังไงรบกวนหน่อยนะครับ

ถ้าไม่ได้ผมจะได้เปลี่ยนวิธีเขียนใหม่ครับ ขอบคุณครับผม



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-11 17:07:17 By : the_cop View : 17715 Reply : 18
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ผมเข้าใจว่าโครงสร้างของ path ไม่ถูกต้องครับ ถ้าไม่อยากปวดหัวเรื่อง path ผมแนะนำให้เรียกจาก root (/) ทุกครั้งครับ

Code (PHP)
include("/path/config.php")







Date : 2009-10-11 17:41:42 By : webmaster
 


 

No. 2



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

นอกจากปัญหาเรื่อง include 'path'; ยังมีเรื่องต้องระวังที่ <a href="path">link</a> อีกครับในไฟล์ที่จะ include เข้าไปในไฟล์อื่นเช่น header.php พวกนี้ควรจะตั้ง path ของ href เป็น absolute path เช่นกัน
include-file-using-absolute-path
Date : 2009-10-11 18:30:34 By : num
 

 

No. 3



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ แต่ก็ยังงงอยู่ ดี อิอิ
Date : 2009-10-14 20:38:07 By : the_cop
 


 

No. 4



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

สมมุติว่า c:/testweb/index.php ตรงกันกับ address http://localhost/index.php

มีไฟล์ดังต่อไปนี้
c:/testweb/index.php
c:/testweb/config.php
c:/testweb/page1.php
c:/testweb/admin/page2.php
c:/testweb/functions/database.php

ไฟล์ page1.php และ page2.php จะทำการ include config.php
เพื่อนำค่า PATH มาใช้เพื่อสร้างเป็น absolute path

เมื่อเปิดหน้า http://localhost/page1.php
เมื่อเปิดหน้า http://localhost/admin/page2.php
แม้ว่าทั้งสองไฟล์จะอยู่คนละระดับกัน แต่จะมีลิงค์ไปยังหน้า /index.php ได้ถูกต้องเสมอเพราะใช้ absolute path

และเช่นกัน page1.php และ page2.php จะมีการ include ไฟล์ database.php ได้ถูกต้องเสมอ
เพราะได้นำค่า ROOT มาสร้างเป็น absolute path

ปล. วิธีนี้จะยุ่งยากกว่าการใช้ absolute path แบบธรรมดาๆ เช่น
include '/functions/database.php';
และ <a href="/index.php">LINK</a>

แต่จะสะดวกต่อการเคลื่อนย้าย
ตัวอย่างเช่นเมื่อย้ายไปยัง folder
c:/testweb/blog/index.php
c:/testweb/blog/config.php
c:/testweb/blog/page1.php
c:/testweb/blog/admin/page2.php
c:/testweb/blog/functions/database.php
ทุกๆ ไฟล์และทุกๆ การ include ก็จะยังคงเชื่อมโยงกันอย่างถูกต้องทั้งหมดดังเดิม

<?php
//config.php
define('ROOT',str_replace("\\",'/',dirname(__FILE__)));
define('PATH', ROOT == $_SERVER['DOCUMENT_ROOT']
    ?'' :substr(ROOT,strlen($_SERVER['DOCUMENT_ROOT']))
);
echo ROOT,'<br />';
echo PATH,'<br />';
include ROOT.'/functions/database.php';
?><a href="<?php echo PATH;?>/index.php">LINK</a>


<?php
//page1.php
require_once 'config.php';
echo ROOT,'<br />';
echo PATH,'<br />';
include ROOT.'/functions/database.php';
?><a href="<?php echo PATH;?>/index.php">LINK</a>


<?php
//page2.php
require_once '../config.php';
echo ROOT,'<br />';
echo PATH,'<br />';
include ROOT.'/functions/database.php';
?><a href="<?php echo PATH;?>/index.php">LINK</a>

Date : 2009-10-14 22:54:23 By : num
 


 

No. 5



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับพี่ พอจะมองเห็นภาพแล้วครับ

แต่รบกวนอีกหน่อยนะครับ คืออยากรู้อีกว่าถ้า include

มาแบบปกติมาจากไฟล์อื่น แล้วไฟล์ ที่ถูก include มา

มันยังจะแสดงค่าทุกอย่างเหมือนเดิมกับที่แสดงในหน้าเดิมไหมครับ
Date : 2009-10-17 13:02:00 By : the_cop
 


 

No. 6



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

ไม่รู้ว่าผมเข้าใจคำถามถูกป่าวนะครับ
แต่จะอธิบายเพิ่มเรื่องการ include นะครับ

function include require นั้นจะเอา directory ของไฟล์ที่ถูก request เป็นตัวตั้งในการค้นหา relative path ครับ

สมมุติมีไฟล์ต่อไปนี้
http://localhost/example1/index.php
http://localhost/example1/header.php
http://localhost/example2/couter.php
http://localhost/index.php

ไฟล์ /example1/index.php
<?php require_once('header.php');

ไฟล์ /example1/header.php
<?php echo '[header.php]';
require_once('../example2/counter.php');

ไฟล์ /example2/counter.php
<?php echo '[counter.php'];

เมื่อเราทำการ request http://localhost/example1/index.php
จะได้ผลลัพธ์เป็น [header.php][counter.php]
ซึ่งได้ผลถูกต้อง

แต่เมื่อเราสร้างไฟล์อีกไฟล์นึงชื่อว่า /index.php ที่จะทำการ include header.php มาใช้งาน
มีโค้ด
<?php require_once('example1/header.php');

เมื่อเราทำการ request ไฟล์ http://localhost/index.php

จะปรากฎว่า php เกิด
Warning: require_once(../example2/counter.php) [function.require-once]: failed to open stream: No such file or directory in C:\testweb\example1\header.php on line 2

เนื่องจาก ไฟล์ที่ถูก request คือ /index.php ทำให้ directory หลักที่จะใช้ในการอ้างอิงถึง relative path ก็คือ /
ซึ่งเป็นคนละระดับกับ /example1/header.php จึงไม่สามารถอ้างถึงไฟล์ /example2/counter.php ได้

ในการ request http://localhost/index.php
การ include ../example2/counter.php นี้จะเป็นอ้างไปถึง folder อีกระดับนึงคือ
C:\example2 ซึ่งถ้าในนั้นมีไฟล์ counter.php ก็จะสามารถ include เข้ามาได้ แต่ก็ควรจะใช้เป็น absolute path มากกว่าจะได้ไม่ต้องสร้าง folder และไฟล์ซ้ำซ้อนซึ่งจะทำให้ไฟล์เยอะและเมื่อต้องการแก้ไขต้องไปตามแก้ไขหลายที่ครับ
Date : 2009-10-17 14:35:54 By : num
 


 

No. 7



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

อ่านอีกรอบก็เริ่มเข้าใจว่าหมายถึง html ซะมากกว่า

http://localhost/news/last10.php
http://localhost/news/show.php
http://localhost/news/index.php

สมมุติว่าไฟล์ /news/last10.php
แสดงผล
<a href="show.php?id=1">news1</a>
<a href="show.php?id=2">news2</a>
<a href="show.php?id=3">news3</a>


ในไฟล์ /news/index.php
<?php include 'last10.php';

เมื่อ request http://localhost/news/index.php
ก็จะแสดงผลเหมือนกับ last10.php ทุกประการ สามารถลิงค์ไปหน้า show.php ได้อย่างถูกต้อง

กลับกันถ้า
http://localhost/index.php
<?php include 'news/last10.php';

เมื่อ request http://localhost/index.php
ก็จะแสดงผลลิงค์เหมือนกับ last10.php ทุกประการ ก็จริง
แต่ไม่สามารถลิงค์ไปหน้า show.php ได้อย่างถูกต้อง
เนื่องจากว่าเป็นการลิงค์ show.php นั้นเป็นแบบ relative path ซึ่งใน
http://localhost/ ไม่มีไฟล์ show.php นั่นเองครับ


ถ้าต้องการให้ http://localhost/index.php แสดงผลและสามารถลิงค์ได้ถูกต้องเหมือนกับ
http://localhost/news/index.php ทุกประการ
ในไฟล์ http://localhost/index.php จะต้องใช้วิธีแทรก tag
<iframe src="news/last10.php"></iframe>
และจะต้องแก้ไข target ของ link ในไฟล์ last10.php ด้วยครับไม่งั้นเวลากดลิงค์ก็จะอยู่ที่ iframe ตามเดิม
<a href="show.php?id=1" target="_top">news1</a>
<a href="show.php?id=2" target="_top">news2</a>
<a href="show.php?id=3" target="_top">news3</a>

หรืออาจจะใช้การ include ธรรมดาๆ โดยไม่ใช้ iframe ก็ได้ครับ แต่ลิงค์จะต้องเป็น absolute path
<a href="/news/show.php?id=1">news1</a>
<a href="/news/show.php?id=2">news2</a>
<a href="/news/show.php?id=3">news3</a>

ส่วนเรื่อง css ในกรณีที่ index.php include ธรรมดาโดยไม่ใช้ iframe นั้น
จะเป็นการ merge กันระหว่าง css ที่มีในไฟล์ /news/last10.php กับ css ที่มีในไฟล์ index.php ครับ
แต่ถ้าใน last10.php มีการใช้ tag link ไปยังไฟล์ .css ซึ่งถ้าใช้ relative path ในบางกรณีที่ไฟล์ที่ include ไฟล์ last10.php เข้ามาอยู่กันคนละระดับกับ last10.php ก็จะไม่สามารถดึงไฟล์ .css เข้ามาใช้ได้ครับ
แต่ถ้าใช้ tag link ไปยังไฟล์ .css โดยใช้ absolute path ก็จะเป็นการ merge style กันระหว่างไฟล์ index.php และไฟล์ last10.php ครับ
Date : 2009-10-17 15:06:51 By : num
 


 

No. 8



โพสกระทู้ ( 875 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

สำหรับคนที่ทำ project เล็กๆ อาจไม่จำเป็นนัก แต่พอ project ใหญ่หน่อยหา path กันให้วุ่นวายเห่อๆ
งมมาหลายวันแล้ว หาอยู่พอดี วีธีการแบบนี้ ขอบคุณครับพี่หนุ่ม
Date : 2009-10-18 14:44:50 By : peterxp
 


 

No. 9



โพสกระทู้ ( 1,463 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

php framework ที่ผมเขียนขึ้นใช้เอง แก้ปัญหา path และช่วยในการ reuse program ครับ

# ใช้ ADODB Class และ Smarty 3.0 Class เป็นคลาสหลักของโปรแกรม
# รูปแบบการเขียนแบบ CV Design Pattern
# แบ่งส่วนการแสดงผลเป็น layout และ view ช่วยการปรับเปลี่ยน layout ได้ง่าย
# ระยะเวลาการเขียนรู้ framework ต่ำมากโครงสร้าง folder อิสระเหมือนเขียนเว็บตามปกติ และ preview file ได้ทันทีใน text editor ส่วนใหญ่
# ความสามารถในการรวม folder ต่างระดับชั้นนำมาใช้ร่วมกัน โดยการปรับเปลี่ยนลิงค์ relative path ในไฟล์ template เป็น absolute path ทำให้สามารถ ดึงข้อมูล view ต่างๆ มารวมกันไว้ใน file เดียวแม้อยู่ในคนละ folder ได้โดยไม่ต้องแก้ไข view เก่าเลย
# ปิดการต่อ database ให้โดยอัตโนม้ติ
# ไฟล์ template สามารถแก้ไขใน wysiwyg editor อย่างเช่น dreamweaver ได้
http://www.ziddu.com/download/7950748/webdesigner0.9a.zip.html
Date : 2010-01-04 19:08:20 By : num
 


 

No. 10



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบพระคุณค่ะ,,เป็นประโยชน์มากเลยค่ะ
จะได้ไมาต้องหา path กันให้วุ่นวาย
Date : 2011-10-09 10:16:03 By : SomjuK
 


 

No. 11



โพสกระทู้ ( 280 )
บทความ ( 0 )



สถานะออฟไลน์


มีเรื่องจะถามค่ะ พอใช้คำสั่งinclude ไปแล้ว หน้าdesign ขึ้นหน้าที่เราincldeน่ะค่ะ
แต่preview ไม่ขึ้นค่ะ
<?php include 'cooperative';?>
ใช้รูปแบบคำสั่งนี้น่ะค่ะ
Date : 2017-09-20 11:49:39 By : ning
 


 

No. 12



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ดูนามสกุลไฟล์ดีๆ ครับ
Code
<?php include 'cooperative';?>

ทางที่ดีใส่แบบเต็มน่าจะดูง่ายกว่านะผมว่า
Code (PHP)
<?php include('cooperative.php'); ?>

Date : 2017-09-20 15:01:11 By : arm8957
 


 
เราดึงข้อมูล include มาได้ แต่ว่ารูปภาพที่ใสไว้ในหรืออะไรต่างๆในชื่องานนั้นมันไม่มา เป็นเพราะอะไรค่ะ
Date : 2020-11-27 11:30:02 By : pat
 


 

No. 14



โพสกระทู้ ( 1,458 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

include เป็น independent behavior
Resources inside script need to have a new reference.
Date : 2020-11-27 11:41:51 By : PhrayaDev
 


 
ข้อโค้ดดึงข้อมูลจากโฟลเดอร์อื่นหน่อยยยยยยย
ใช้ php-css
Date : 2020-11-27 14:43:57 By : pat
 


 

No. 16



โพสกระทู้ ( 1,458 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook Blogger

Code (PHP)
<?php 
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/данные/ваш_файл.php";
   include_once($path);
?>


Quote:
Кем бы мы ни были, что бы мы ни делали из себя, это все, что у нас когда-либо будет

Date : 2020-11-27 15:16:39 By : PhrayaDev
 


 
อยากสอบถามว่า เราสร้างโฟลเดอร์มาใหม่แล้วเก็บงานไว้ที่โฟลเดอร์นั้น จากนั้นเราก็ลิ้งหน้าหลักมาหน้าไฟล์ที่อยู่คนละโฟลเดอร์ โดยใช้ script เป็นตัวลิ้งโดยใช้ไอดี เราก็ลิ้งไปได้นะ ในหน้านั้นไม่มีข้อมูลที่เราทำไว้เลยมีแต่หน้าtableที่สร้างมาไว้ แต่ข้อมูลใน table ไม่มีเลย เป็นเพราะอะไรอ่ะ ตอนนี้ งง มาก ดู Google ยิ่งอ่านยิ่ง งง
Date : 2020-12-01 14:27:08 By : pat
 


 

No. 18



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


https://www.thaicreate.com/php/forum/076134.html#00493480
Date : 2020-12-01 15:02:36 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : include ข้ามไฟล์ยังงี้แล้วมีปัญหาครับ ?? คือผมงงมากครับเคยตั้งกระทู้เกี่ยวกับ include ไปแล้ว
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่