לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 20-09-2007, 18:24
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
כיצד לייבא קובץ אך להשאיר אותו במקום שלו - פרטים בפנים...

היי...
אני מנחש שלא הבנתם כלום מהכותרת, זאת מכיוון שהיה לי ממש קשה להסביר את השאלה שלי בשורה.
ולשאלתי:
אני רוצה לייבא קובץ אך עדיין לשמור על הקישורים בדף עצמו.
ואני אסביר ע"י דוגמא:
הקובץ folder/index.php נראה כך:
קוד PHP:
<?
include('../header.php');
?>

הקובץ הזה בסך הכל מייבא את הקובץ header ומציג אותו - פקודת include פשוטה.
הבעיה מתחילה כאשר הקובץ header.php נראה כך:
קוד PHP:
<?
echo "<img src='images/pic.jpg'>";
?>

מכיוון שלא הגדרתי לתמונה קישור מלא, הוא יחפש אותה בתוך התיקיה images.
אך מכיוון שאני קורא לקובץ header מתוך הקובץ index.php שנמצא בתוך התיקיה admin, הדפדפן יחפש את התמונה בכתובת admin/images/pic.jpg - תמונה שבעצם לא קיימת.
מישהו נתקל בבעיה הזאת בעבר ומצא לה פתרון?
אני אשמח לשמוע על כל דרך אפשרית לפתרון הבעיה הזאת.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 20-09-2007, 19:17
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 1 שנכתבה על ידי dardevil שמתחילה ב "כיצד לייבא קובץ אך להשאיר אותו במקום שלו - פרטים בפנים..."

המ.. פתרון אחד פשוט יכול להיות להשתמש במאין קובץ הגדרות משותף לכל האתר:
אתה יוצר לעצמך קובץ, למשל paths.php וסתם לצורך פשטות שם אותו בתקיית ה-root שלך, כדי שאז מכל דף שתזדקק לו תוכל להשתמש ב-
קוד PHP:
 require("/paths.php"); 


הקובץ עצמו שלך פשוט מגדיר לך את כל משתני הכתובות שאתה צריך, ויכול להיות בנוי בצורה הבאה:
קוד PHP:
<?php
if (!defined('HEADER')) { // If the file is accessed without being included by authorized external file. Would require you to add a: define('HEADER','something'); command to the files that include this one.
    
exit("You have no authorization to view this file!");
}

if (!
defined('PATHS_FILE')) {  // Make sure you don't double include
   
define('PATHS_FILE''ON'); 
   
$path_imgs '/images/';
   
$path_functions '/includes/';
   
$path_styles '/css/';
   
$path_website '/html/';
/* and
   so
   on
   and
   so
   forth... */
}
?>


אם לא הבנת את ההערה ליד ה-IF הראשון, אז זה מנגנון אבטחה פשוט שבודק האם הוגדר קבוע בשם HEADER בקובץ מוקדם יותר, כדי למנוע גישה ישירה לקובץ.
אם אין למערכת שלך מבנה כזה, אתה יכול להוריד את ה-IF הראשון. ולשכוח ממנו, זה לא סופר-חשוב.

לאחר שזימנת את הקובץ, אתה יכול עכשיו להשתמש במשתנים הללו לגשת לכל מקום שתזדקק לו באתר שלך, ואם תחליף פתאום תקייה - תוכל לשנות הכל בן רגע.

הקובץ index שלך יראה עכשיו:
קוד PHP:
 define('HEADER''on');
require(
'/paths.php');
include(
$path_website "header.php"); 


וקובץ ה-HEADER שלך יראה:
קוד PHP:
 define('HEADER''on');
require(
'/paths.php');
echo 
"<img src='" $path_imgs "pic.jpg'>"


את כל החלק של ה-DEFINES אתה יכול להוריד אם אתה לא מעוניין בהם...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 21-09-2007, 08:55
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 2 שנכתבה על ידי Dark Knight שמתחילה ב "המ.. פתרון אחד פשוט יכול..."

תודה רבה על התגובה העניינית.
אני עד עכשיו השתמשתי בדרך דומה...
אני הגדרתי בקובץ header.php כמה משתנים קבועים, אחד מהם היה דומיין.
את הדומיין הגדרתי לתיקיה הראשית של האתר, ואז כשהייתי רוצה להוסיף קישורים, זה היה נראה ככה:
קוד PHP:
 echo "<img src='$domain/images/pic.jpg'>"

וזה אותו עיקרון של השיטה שאתה הצגת כאן.
שיטה שהיא בסדר גמור, אבל אני בכל זאת הייתי מעדיף להשאר עם קישורים ללא כתובת מלאה...
אני זוכר שפעם ראיתי פה איזה דיון שנראה לי dcd הציג פה איזו פקודה בhtml שנקראת base root או משהו כזה.
אתה מגדיר את את התיקיה הראשית של האתר בhead אם אני לא טועה ואז אתה יכול להשתמש בקישורים ללא כתובת מלאה ללא כל בעיה.
אם יש פקודה כזאת גם בphp אני אשמח לשמוע עליה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 21-09-2007, 10:54
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 3 שנכתבה על ידי dardevil שמתחילה ב "תודה רבה על התגובה..."

המ.. אולי לא לחלוטין הבנתי אותך, אבל אם תשים לב הפקודות שנתתי יעבדו פשוטו כמשמעו, בלי תוספת (חוץ משינוי התקיות).
הנקודה היא שהוספת ה- / לפני הכתובת, אומר שהשרת יתחיל לחפש את הקובץ החל מה-ROOT.
לדוגמא:
קוד:
/index.php

מכל מקום באתר יציין את הכתובת: http://www.mydomain.com/index.php

אם למשל הקובץ שלך יושב ב-http://www.mydomain.com/lang/heb/main/index.php
ואתה תשים בתוכו קישור ל- <a href="/404.html">my cool 404 error page</a>
הקישור יפנה לכתובת: http://www.mydomain.com/404.html
ככה שאתה לא צריך לדעת מה הוא http://www.mydomain.com


בקשר ל-BASE, אז תוכל לקרא על תג ה-BASE כאן: http://www.w3schools.com/tags/tag_base.asp

כנראה שהתכוונת ל-
קוד:
<base href="/">


שיהיה בהצלחה
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 02:37

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר