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

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

Tom_l 11-07-09 23:01

בעייה בקבצים שנוצרו בעקבות שינוי גירסאת Wamp
 
בעייה בקבצים שנוצרו בעקבות שינוי גירסאת Wamp,
אוקיי, אז החלפתי מחשב, ושיניתי את המערכת הפעלה ל-Vista, אז החלפתי גם ל-Wamp חדש, ועם המעבר נוצרו כמה בעיות מפגרות עם קבצים...
זאת אומרת, התכנות עצמו עובד, אבל בכל זאת יש שגיאות מיותרות \=

דוגמאות:
כשאני מנותק מהמערכת, השורות ההלו מופיעות:
Undefined index: Username
Undefined index: Username
והשורות לפי הסדר הן:
קוד:

if ($_SESSION['Username']) {
וכשאני מחובר, זה לא מראה את השגיאה.

עוד דוגמא לבעייה שנוצרה, אני מדפיס משהו בעזרת echo <<<html, זוהי השגיאה:
Undefined variable: FullName
השורה:
קוד:

<td colspan="4"><input type="text" class="text" name="FullName" value="{$FullName}" /></td>
וכאמור, הכל עובד, זה סתם שגיאות... הדף עובד הכל כמו שצריך, אבל בכל זאת שגיאות...
אני סבור כי זה נוצר סתם מאי הגדרה נכונה של Wamp? או מה? לא הבנתי...? אולי צריך לשנות משהו בגלל הגירסא, PHP, Wamp...?


אשמח להסבר כמו שצריך :)
תודה רבה.

Elad-A 11-07-09 23:37

בגדול, השגיאות שהצגת נוצרות בגלל שלא הגדרת את המשתנים שניסית להדפיס.
אפשר לבטל את השגיאות הללו עם הפונקצייה error_reporting

AlmogBaku 11-07-09 23:59

עקרונית צריך לכתוב את זה אחרת...

PHP קוד:

if(isset($_var['param'])) echo 'x'

אבל אם אתה מתעקש אפשר גם:
PHP קוד:

if(@$_var['param']) echo 'x'


Daniel 12-07-09 06:47

ציטוט:

נכתב במקור על ידי Baku (פרסם 727303)
עקרונית צריך לכתוב את זה אחרת...

PHP קוד:

if(isset($_var['param'])) echo 'x'

אבל אם אתה מתעקש אפשר גם:
PHP קוד:

if(@$_var['param']) echo 'x'


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

Tom_l 12-07-09 09:20

ציטוט:

נכתב במקור על ידי Baku (פרסם 727303)
עקרונית צריך לכתוב את זה אחרת...

PHP קוד:

if(isset($_var['param'])) echo 'x'

אבל אם אתה מתעקש אפשר גם:
PHP קוד:

if(@$_var['param']) echo 'x'


לגבי Elad-A, תודה, אך איך אני אוכל למנוע ממנו שלא ירשום רק את השגיאות הללו? כי אלו סתם שגיאות בעיקרון... יש לפונקציה הזו כמה פרמטרים, ואני לא רוצה למנוע שלא ירשום דברים שהוא כן צריך לרשום, שגיאות שיעזרו לי הכוונה...

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


תודה.

AlmogBaku 12-07-09 10:15

זה אותו דבר, רק טקסט אחר..
במקרה שלך:

PHP קוד:

if (isset($_SESSION['Username'])) { 


Tom_l 12-07-09 10:18

ציטוט:

נכתב במקור על ידי Baku (פרסם 727344)
זה אותו דבר, רק טקסט אחר..
במקרה שלך:

PHP קוד:

if (isset($_SESSION['Username'])) { 


ומה לגביי השגיאה השנייה:
קוד:

<td colspan="4"><input type="text" class="text" name="FullName" value="{$FullName}" /></td>
תוכל להראות לי דוגמא...?
האמת שנוצרו בעיות מסתם, זה עובד כאילו, אך סתם שגיאות, אלו סתם דוגמאות שהראיתי, יש עוד כמה שגיאות שונות שנוצרו מאותו מאותה הסיבה(שינוי גירסאת ה-Wamp), מה אתה מציע לעשות? לעבור על כל המערכת ולתקן את זה? או פשוט לשתמש בפונקציה error_reporting?

אדיר 12-07-09 13:28

אלה לא סתם שגיאות, אתה עושה שימוש במשתנים לא מוגדרים.

בנוגע לבעיה השנייה תעשה לדוגמה ככה:
PHP קוד:

$FullName = (isset($FullName) ? $FullName null); 

ואז יעשה שימוש במשתנה רק אם הוא מוגדר,
אם הוא לא מוגדר, הוא יקבע כ- null.

(את הפתרון לבעיה הראשונה כבר הביאו לך והוא זהה, תוודא שהמשתנה מוגדר [isset] לפני שאתה משתמש בו)

Tom_l 12-07-09 13:55

ציטוט:

נכתב במקור על ידי xPerfection (פרסם 727373)
אלה לא סתם שגיאות, אתה עושה שימוש במשתנים לא מוגדרים.

בנוגע לבעיה השנייה תעשה לדוגמה ככה:
PHP קוד:

$FullName = (isset($FullName) ? $FullName null); 

ואז יעשה שימוש במשתנה רק אם הוא מוגדר,
אם הוא לא מוגדר, הוא יקבע כ- null.

(את הפתרון לבעיה הראשונה כבר הביאו לך והוא זהה, תוודא שהמשתנה מוגדר [isset] לפני שאתה משתמש בו)

אוקיי הבנתי בעיקרון, אך שוב, בעבר זה לא הראה לי את השגיאות הללו.
תוכל רק לרשום לי את זה במבנה If בבקשה? בגדול הבנתי מה זה מבצע, רק במבנה:
קוד:

if () {
יותר יעזור לי, תודה רבה לך.
ואגב, לגביי השגיאה הזו:
קוד:

Use of undefined constant ID - assumed 'ID'
השורה:
קוד:

<td class="post" style="text-align: center;"><input type="button" class="btn" value="ערוך אתר" name="editSiteBTN" onClick="window.location=('EditProfile-{$result[ID]}')" style="margin: 0px;"></td>
שוב, גם השגיאה הזו נוצרה כתוצאה מהמעבר ל-Wamp שונה \= שעדיין לא הבנתי למה.

Daniel 12-07-09 14:15

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

כאשר לא תתכנת בדרך הנכונה, המערכת תציג שגיאה.
מכיוון שרבים האנשים שלא יודעים לתכנת נכון (מצטער אם זה בגסות גדולה), אז במקום ללמוד לתכנת נכון - מגדירים שהשרתים יתעלמו מהשגיאות שלהם.
אתה לא יכול לקרוא למערך ככה: $results[ID] - אתה צריך לשים גרש/יים מסביב ל-ID.


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

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