שאלה...

שאלה...

סליחה על הבורות אבל אני ממש מתחיל, אז יש לי שאלה קטנטונת: איך אני מעביר משתנים בכתובת? כלומר:
www.sitename.yeahright/result.php?ads=2​
עכשיו עשיתי את הקישור למשהו כזה בערך בקוד, אבל איך אני "שולף" את זה מהכתובת? תודה מראש!
 

kensaggy

New member
מממ...

בעזרת המערך הגלובלי $_GET לדוגמא אם מישהו נכנס לכתובת http://www.my_web_site.com/mypage.php?myvar=myvalue אתה תוכל לקבל את הערך של המשתנה myvar (שהוא myvalue) ע"י גישה לתא המתאים במערך הגלובלי
$_GET['myvar']​
לשליחת משתנים מרובים התשתמש ב & בין הערך האחרון למשתנה החדש שאחריו. בהצלחה, חן.
 
תודה, אבל זה לא עובד ממש ../images/Emo10.gif

אולי זה קשור לזה שאני משתמש באפאצ'י? ובקצרה זה הקוד שבונה את הקישור:
for ($i=1;$i<count($exp);$i++) { echo ("<a href=".$PHP_DIR."/pollresult.php?ans=".$i.">".$exp[$i]."<br>"); }​
והקישור בסדר גמור... עשיתי את זה בדף שאליו הוא מגיע: <?php $ass = $_GET['ans']; echo ($_GET['ans']); ?> ולא עובד
 
אופס..עשיתי:

בדף שאליו הקוד מגיע עשיתי את זה:
<?php $ass = $_GET['ans']; echo ($_GET['ans']); ?>​
(אין משמעות לשם המשתנה, רציתי לראות אם זה עובד :)
 
אוקיי.. עכשיו עובד.. וזה בגלל ש...

השתמשתי בשיטה יותר ישנה
print $HTTP_GET_VARS["ans"]​
למה הוא לא קולט שיטות חדשות? יכול להיות שהגירסא של ה-PHP שלי לא מעודכנת? ובמקרה ולא, איפה אני יכול להוריד מעודכנת? (אני יודע שבאתר הבית של PHP, אבל יש שם כמה קישורים שאני מסתבך איתם) וגרסא מעודכנת של אפאצ'י גם כן... תודה.
 

דודו431

New member
אם כך,

כמעט בטוח שהבעיה הינה של גירסה קודמת של PHP. בכל אופן יכול להיות ששיחקת עם ההגדרות בphp.ini בחלק של במשתנים הגלובלים. הכי טוב שתוריד גירסה מעודכנת מhttp://www.php.net.
 

Xiao Xiao

New member
נצל"ש - בעיה בהעברת נתונים

שלום, יש לי קובץ html עם טופס פשוט ששולח בשיטת POST ארבע שדות. האקשן שלו הוא קובץ PHP שמכיל שתי שורות:
print $HTTP_GET_VARS["msgTitle"] #print $_GET['msgTitle'];​
שניהם לא עובדים, הודעת השגיאה היא:
Notice: Undefined index: mesTitle in "צונזר מטעמי אבטחה
"​
אשמח לדעת מה הבעיה. תודה, אורן.
 

YuvalCo

New member
לא ממש הבנתי מה אתה רוצה ../images/Emo13.gif

אבל יש לפחות שלושה דברים שזועקים לשמים בשתי שורות קוד האלה
ראשית, אם זה שולח בשיטת post, אז הקוד צריך להיות:
print $_POST[varname]; // or: print $_POST['varname'];
אתה לא יכול לשלוח ב post ולנסות לקרוא עם $_GET. וכמובן שאתה חייב נקודה-פסיק בסוף הפעולה. חוץ מזה, השורה השניה מתחילה ב " # ", כלומר, ה PHP מתעלם מכל מה שכתוב אחרי ה #.. ככה שזו למעשה שורה שלא עושה ולא תעשה כלום... אם השגיאה היא undefined.. mesTitle אז נתת לנו את השורות הלא נכונות, כי בשורות האלו יש רק את המשתנה msgTitle ולא mesTitle
בהצלחה
 

Xiao Xiao

New member
תודה

אכן הפתרון היה $_post לגבי שאר הדברים אלא רק בעיות עיצוב, בקוד הם שונו בהתאם. תודה רבה.
 

N i X

New member
לא ממש נכון...

print $_POST[varname];​
זו שגיאה. הקוד הנכון:
print $_POST['varname'];​
והסיבה:
Why is $foo[bar] wrong? You should always use quotes around an associative array index. For example, use $foo['bar'] and not $foo[bar]. But why is $foo[bar] wrong? You might have seen the following syntax in old scripts: <?php $foo[bar] = 'enemy'; echo $foo[bar]; // etc ?> This is wrong, but it works. Then, why is it wrong? The reason is that this code has an undefined constant (bar) rather than a string ('bar' - notice the quotes), and PHP may in future define constants which, unfortunately for your code, have the same name. It works, because the undefined constant gets converted to a string of the same name automatically for backward compatibility reasons.​
המשך של זה אפשר לקרוא כאן.
 

N i X

New member
זה שזה עובד לא הופך את זה לנכון.

תקרא את ההסבר במנואל של PHP...
 

YuvalCo

New member
לא לזה התכוונתי ../images/Emo70.gif

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