הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איך אני משנה מיקום של דף PHP? (https://hosts.co.il/forums/showthread.php?t=104728)

Tyler 27-07-13 19:40

איך אני משנה מיקום של דף PHP?
 
אז ככה
יש לי קובץ PHP אחד וקובץ HTML
בתוך הHTML רציתי שיהיה לי את הPHP (מערכת התחברות לאתר), אז עשיתי include login.php
סבבה, המערכת בתוך הHTML, רק שהיא מופיעה בראש הדף כי עשיתי את הinclude בהתחלה..

איך אני משנה את המיקום של המערכת לאמצע הדף לאיפה שאני רוצה שהיא תהיה? כי אם אני משנה את השורה של הinclude זה לא מאפשר לי ומוציא לי שגיאה כי יש לי בHTML משהו שם שלא מאפשר לשים include באמצע..

יש עוד הצעות?

הקוד:

קוד:

<?php


include 'config.php';
include 'login.php';


if(MODULE == 'none')
{
        include(LOVE_ROOT . '/system/love_head.php');
        $content = '<h2>  Welcome to my site - Login </h2>
<br>
כאן זה המקום לתוכן הדף כפי ששמתם לב, אך אין לי אפשרות להכניס לפה את הפאנל התחברות.
<br /> <br /> <br />       

';       
        include(LOVE_ROOT . '/system/love_foot.php');
}
else
{
        header('Location: modules/' . MODULE);
}

?>


כפי שאתם רואים, ה"תוכן" של הדף עצמו איפה שאמורה להיות המערכת אמור להיות לאחר הכותרת H2, בתוך המשתנה של $content, אך אני לא יכול לשים שם את פקודת הinclude הרי ייצא שאני משתמש בphp בתוך משתנה, מה שלא מתאפשר לי. לכן הייתי חייב לשים את הinclude בראש הקוד מיד לאחר קריאת הconfig, אך עכשיו זה מציג לי את פאנל ההתחברות בראש הדף.. יש אפשרות להזיז אותו לתוך משתנה הcontent? לאמצע הדף?

תודה רבה לעוזרים.

אדיר 27-07-13 20:04

קרא על MVC ו- Templates - ככל שתתחיל לעבוד נכון מוקדם יותר, יותר טוב.

Tyler 27-07-13 20:13

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880150)
קרא על MVC ו- Templates - ככל שתתחיל לעבוד נכון מוקדם יותר, יותר טוב.


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

אני מכיר את עיקרון הmvc ולא בדיוק הבנתי על מה אתה מדבר כשאתה אומר templates , על מערכות מוכנות?

2 הדברים הללו לא עוזרים לי לפתור את הבעיה.

אדיר 27-07-13 20:45

תגדיר עזרה קצת יותר ממשית...
2 הדברים הללו מיועדים בדיוק לבעיות מהסוג הזה - אתה צריך להפריד בין הלוגיקה לבין התצוגה.

הצורה שבה כתבת את הקוד כרגע לא טובה, זה סתם בלאגן.
אם תעבוד על פי העקרונות של MVC ותעשה שימוש ב- Templates (הסבר בקישורים המצורפים) זה יפתר.
סביר להניח שבהתחלה זה יהיה לך קצת קשה, אלו בד"כ דברים שנוגעים בהם בשלבים מתקדמים יותר - אבל לדעתי עדיף להתחיל עם זה כמה שיותר מוקדם.

הנה כמה קישורים רלוונטים:
http://net.tutsplus.com/tutorials/other/mvc-for-noobs
http://www.1stwebdesigner.com/css/ho...bsite-template
http://coding.smashingmagazine.com/2...php-templating

בהצלחה.

Tyler 27-07-13 21:10

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880154)
תגדיר עזרה קצת יותר ממשית...
2 הדברים הללו מיועדים בדיוק לבעיות מהסוג הזה - אתה צריך להפריד בין הלוגיקה לבין התצוגה.

הצורה שבה כתבת את הקוד כרגע לא טובה, זה סתם בלאגן.
אם תעבוד על פי העקרונות של MVC ותעשה שימוש ב- Templates (הסבר בקישורים המצורפים) זה יפתר.
סביר להניח שבהתחלה זה יהיה לך קצת קשה, אלו בד"כ דברים שנוגעים בהם בשלבים מתקדמים יותר - אבל לדעתי עדיף להתחיל עם זה כמה שיותר מוקדם.

הנה כמה קישורים רלוונטים:
http://net.tutsplus.com/tutorials/other/mvc-for-noobs
http://www.1stwebdesigner.com/css/ho...bsite-template
http://coding.smashingmagazine.com/2...php-templating

בהצלחה.

תודה רבה, ולקחתי לתשומת הלב את מה שאמרת לגבי הבלגון של הקוד.
מה שעשיתי עכשיו זה הפרדתי בין 2 הקודים וניסיתי להשתמש בהשגת הנתונים על ידי משתנה ולאחר מכן לעשות לאותו משתנה echo וכך להציג את פאנל ההתחברות.

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

החלפתי את ה;()ob_end_flush
ב;()out1 = ob_get_contents$
;()ob_end_clean

ולאחר מכן בדף הראשי ניסיתי להציג את הפאנל ע"י echo $out1 , אך שום דבר לא יצא מזה..

אני חושב שיש משהו במשתנה ה$content שאינו מאפשר לי להכניס php לתוך הדף, יש לך מושג?

maor224 28-07-13 03:02

נתעלם לרגע מההצעות של אדיר (אגב הצעה מעולה), ונחזור לקוד המקורי שלך.

PHP קוד:

<?php


include 'config.php';

if(
MODULE == 'none')
{
    include(
LOVE_ROOT '/system/love_head.php');
    
$content '<h2>  Welcome to my site - Login </h2>
<br>
כאן זה המקום לתוכן הדף כפי ששמתם לב, אך אין לי אפשרות להכניס לפה את הפאנל התחברות.
<br /> <br /> <br />     

'
;
        include 
'login.php';
    include(
LOVE_ROOT '/system/love_foot.php');
}
else
{
    
header('Location: modules/' MODULE);
}

?>

לא הבנתי למה משהו כזה לא מתאפשר לך (שים לב ששיניתי את מיקום ה-include)

Tyler 28-07-13 08:48

ציטוט:

נכתב במקור על ידי maor224 (פרסם 880164)
נתעלם לרגע מההצעות של אדיר (אגב הצעה מעולה), ונחזור לקוד המקורי שלך.

PHP קוד:

<?php


include 'config.php';

if(
MODULE == 'none')
{
    include(
LOVE_ROOT '/system/love_head.php');
    
$content '<h2>  Welcome to my site - Login </h2>
<br>
כאן זה המקום לתוכן הדף כפי ששמתם לב, אך אין לי אפשרות להכניס לפה את הפאנל התחברות.
<br /> <br /> <br />     

'
;
        include 
'login.php';
    include(
LOVE_ROOT '/system/love_foot.php');
}
else
{
    
header('Location: modules/' MODULE);
}

?>

לא הבנתי למה משהו כזה לא מתאפשר לך (שים לב ששיניתי את מיקום ה-include)

לא מתאפשרת לי האפשרות שציינתי, להכניס את הinclude login.php לתוך משתנה ה$content בגלל סיבה כלשהי אין לי מושג למה שאלתי בכל מקום אפשרי ישבתי על זה עם הnetbeans עד הלילה ולא מצאתי פתרון.. את הדרך שלך (החלפת מיקום הinclude) וההוצאה שלו מתוך משתנה ה$content ניסיתי, והפאנל התחברות מוצג אך בראש הדף ולא באמצע הדף כפי שאני צריך.

אני פשוט לא מבין מה הבאג פה

----
עריכה:
ניסיתי כרגע לעשות משהו כזה, ועדיין זה לא מציג לי את הפאנל:
קוד:

<?php


include 'config.php';

if(MODULE == 'none')
{
    include(LOVE_ROOT . '/system/love_head.php');
    $content = "
<?php
include 'login.php'; 
?>
<br>
כאן זה המקום לתוכן הדף כפי ששמתם לב, אך אין לי אפשרות להכניס לפה את הפאנל התחברות.
<br /> <br /> <br />     
";

    include(LOVE_ROOT . '/system/love_foot.php');
}
else
{
    header('Location: modules/' . MODULE);
}

?>


אדיר 28-07-13 11:53

אתה לא יכול לשים קוד PHP ככה בתוך HTML...

לפי מה שאני מבין -
אם תעשה את ה- include login אחרי ה include love_head, זה בעצם מה שאתה צריך לא?

Tyler 28-07-13 12:08

ציטוט:

נכתב במקור על ידי אדיר (פרסם 880174)
אתה לא יכול לשים קוד PHP ככה בתוך HTML...

לפי מה שאני מבין -
אם תעשה את ה- include login אחרי ה include love_head, זה בעצם מה שאתה צריך לא?

לא משנה איפה אני שם את הinclude login הוא מופיע לי בראש הדף, כל עוד זה מעל משתנה ה$content זה יופיע בראש הדף.
במידה וזה לאחר משתנה הcontent זה בכלל לא יופיע..

אני צריך לדעת האם אפשרי להכניס את הקוד PHP של הinclude login או איכשהו להכניס את המערכת לתוך משתנה הcontent?

עריכה:

היי , יש לי רעיון. יש לי את הקובץ HTML המקושר לקובץ הCSS באתר. בHTML הזה שהוא בעצם הבסיס לכל הHTML באתר, ניסיתי להכניס את המערכת בקטע הCSS של הCONTENT מבלי לגעת במשתנה.
אך לא הצלחתי, כי כמו שאמרת לא ניתן להכניס קוד PHP לHTML ככה..

זה בעיקרון מה שניסיתי, זה החלק מהקובץ HTML שמקושר למשתנה של הcontent:
קוד:

                        <div class="content">
<?php
include 'login.php'; 
?>
                                {content}
                               
                        </div></div>

אך זה לא עובד, כמו שאמרת הPHP בכלל לא נקלט כי זה לא אפשרי להכניס קוד שכזה לHTML
אני חשוב שמכאן הדרך לפתרון קצרה.. אני אשמח לעזרה.

אבי בר 28-07-13 12:48

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

בכל מקרה אם הלכת על קוד ספגטי לפחות תעשה סדר בין הhtml לphp
ולא ברור למה אתה מכניס הכול למשתנה content?
עשית סלט שלם


כל הזמנים הם GMT +2. הזמן כעת הוא 22:31.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ