שלח תשובה

זירת השאלות

341
צפיות
26
תשובות

בעיה אם כתובות דינמיות.

,‏ 4 במאי, 2004

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


<html>

<head>
<title></title>
</head>

<body>

<?php
if(isset($id))
{
print("id is:".$id);
}
?>
<a href="oleg.php?id=2">some</a>
</body>

</html>


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

תגיות:

26 תשובות

  1. jonatan44 הגיב:

    אתה מיתכון….ככה:


    <html>

    <head>
    <title></title>
    </head>

    <body>

    <?php
    $id=$_GET[‘id’];
    if (isset($id))
    {
    echo("id is:".$id);
    }
    ?>
    <a href="oleg.php?id=2">some</a>
    </body>

    </html>

    שים לב לשגיאה – הוא לא ידע מזה ה-$id ולכן הוא לא עשה דבר.
    שים לב לשורה $id=$_GET[‘id’]; ,לא עטפתי את ה – $_GET[‘id’]; במרכאות ביגלל שאם הייתי עושה את זה הוא היה מיתייחס לזה כאל מחרוזת ולא אל קוד.
    בהצלחה!

  2. oleg הגיב:

    tnx
    תודה, אין אולי דרך קומפקטית יותר?

  3. oleg הגיב:

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

  4. jonatan44 הגיב:

    יש דרך
    אתה בונה טבלאה אשר מכילה את הפרטים
    שם משתמש – username
    זמן – entertime
    מספר זיהוי – id
    (אפשר להוסיף עוד פרטים כגון מערכת ההפעלה,ip,דפדפן וכו’..)
    כאשר המשתמש יכנס לדף X אז יפעל סקריפט אשר יבדוק אם קיים ה id של המשתמש במסד,אם לא קיים אז הוא מוסיף את הפרטים שלו טבלאה.אם קיים אז הוא לא עושה כלום (או שפשוט מחכה שהזמן יעבור ואז שוב המסד יתעדכן)

    עכשיו השאלה היא איך לימחוק את הנתונים במיקרה שמישתמש עזב ולא שב,אז הדבר הוא מאוד פשוט – אתה אומר לשרת לימחוק את כל הרשומות שהזמן שלהם עבר
    (למשל אחרי 20 דקות אז אתה אומר לו לימחוק את כל אלא שכר יש להם יותר מ 20)
    בהצלחה

  5. oleg הגיב:

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

  6. oleg הגיב:

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

  7. jonatan44 הגיב:

    אני?מתי הצעתי?
    הרעיון הוא לעשות במסד נתונים עמודה בשם ID אשר תכיל את מספר הזיהוי של ההודעה ולישלוף אותה על ידי מישפט WHERE.
    אותו דבר אתה עושה אם התגובות,אתה עושה בטבלאה של התגובות עמודה בשם MsgID אשר מכילה את מיספר ההודעה שאליה היא שייכת ואתה שולף את כל התגובות שה-MsgID שלהם שווה ל $_GET[‘id’],הבנתה?

  8. jonatan44 הגיב:

    בטח שאפשרי.
    אבל יש בעייה:
    איך הלולאה תדע כמה עוגיות יש?(וככה תגיד כמה מחוברים יש).

    אגב,להבאה שרשר את השאלות שלך כדאי לאפשר לאחרים לישאול שאלות.

  9. oleg הגיב:

    tnx, רק הבהרה קטנה, אם אפשר.
    אם כך, הערך של כמה פריטים בעמודה מסוימת יהיה אותו הערך, בdbm היתה לי בעיה אם הדבר, האם יכול להיות שגם בעודי עובד מול mysql תתעורר אותה הבעיה?.

  10. jonatan44 הגיב:

    לא ניראה לי
    לא עבדתי אם dbm,אבל בהחלט עבדתי אם mySQL ואני לא חושב שכפילויות בעמודות לא ישנו לו

  11. oleg הגיב:

    שאלה על תכונת הWHERE+קוד לבדיקה.
    איך אני מישתמש בתוכנת הWHERE של פונקצית השאיליתה בmysql, אם בכלל.

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

    <?php
    $host="";
    $user="";
    $db="";
    $connect=mysql_connect($host, $user, $pass)or die("ìà äéúä àôùøåú ìäúçáø ìîñã äðúåðéí");
    mysql_select_db($db, $connect) or die("äèáìä ùàìéä ðéñúä ìâùú àéðä ðâéùä");

    if(isset($_GET[show]))
    {
    $show=$_GET[show];
    $idmsg=$_GET[idmsg];
    if !(isset(idmsg))
    print "òìééê ìöééï îæää äåãòä";
    $select_tb_msg=mysql_query(SELECT * FROM massage WHERE id=$id);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print massage[the_massage];
    print"<tr>";
    }
    }
    }
    else
    {
    $select_tb_forum=mysql_query(SELECT * FROM massage);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print "<a href="".$php_self."?show=1&msgid=".$massage[id].""/>".$massage[sub].$massage[user].",".massage[date];
    print"<tr>";
    }
    }
    }

    ?>

    בתודה,
    אולג.

  12. jonatan44 הגיב:

    או.קי.
    1)איך שהישתמשתה – זה לא עבד?
    2)
    א-לא הגדרתה $id אלא פשוט שלפתה אותו
    ב-לא סגרתה את אוסיקט החיבור – דבר מאוד מאוד בזבזני (כן,כן…גם אצל מסד הנתונים האגדי הזה )

  13. oleg הגיב:

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

  14. jonatan44 הגיב:

    לא ניראה לי שהבנתה אותי
    קודם כל בקשר לאחד – אני שאלתי אם השאילתה הזאות לא עובד.
    דבר שני – אני לא חושב שהבנתה איך עובדים אם urlים ,הרעיון הוא להכניס למישתנה את הערך של ה id שמועבר דרך ה url,אם אתה לא יודע איך לבצע את זה גש למדור את הphp>מאמרים>עבודה אם טפסים.

  15. oleg הגיב:

    כמה דברים.
    בעבור התשובה לשאלתי בנוגע לתכנות הwhere אגש לאתר הרישמי של mysql ואבדוק האם התכונה לגיטימית.
    ואני אכן אכסנתי את הערך של מחרוזת הurl במישתנה הבט:

    <?php
    $host="";
    $user="";
    $db="";
    $connect=mysql_connect($host, $user, $pass)or die("ìà äéúä àôùøåú ìäúçáø ìîñã äðúåðéí");
    mysql_select_db($db, $connect) or die("äèáìä ùàìéä ðéñúä ìâùú àéðä ðâéùä");

    if(isset($_GET[show]))
    {
    $show=$_GET[show];
    $idmsg=$_GET[idmsg];
    if !(isset(idmsg))
    print "òìééê ìöééï îæää äåãòä";
    $select_tb_msg=mysql_query(SELECT * FROM massage WHERE id=$id);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print massage[the_massage];
    print"<tr>";
    }
    }
    }
    else
    {
    $select_tb_forum=mysql_query(SELECT * FROM massage);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print "<a href="".$php_self."?show=1&msgid=".$massage[id].""/>".$massage[sub].$massage[user].",".massage[date];
    print"<tr>";
    }
    }
    }

    ?>

  16. jonatan44 הגיב:

    ישר את הקוד לשמאל כדאי שאני אוכל
    ליקרוא אותו.

  17. oleg הגיב:

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


    <?php
    $host="";
    $user="";
    $db="";
    $connect=mysql_connect($host, $user, $pass)or die("ìà äéúä àôùøåú ìäúçáø ìîñã äðúåðéí");
    mysql_select_db($db, $connect) or die("äèáìä ùàìéä ðéñúä ìâùú àéðä ðâéùä");

    if(isset($_GET[show]))
    {
    //שתי השורות הבאות מאכסנות את המחרוזות
    $show=$_GET[show];
    $idmsg=$_GET[idmsg];
    if !(isset(idmsg))
    print "òìééê ìöééï îæää äåãòä";
    $select_tb_msg=mysql_query(SELECT * FROM massage WHERE id=$id);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print massage[the_massage];
    print"<tr>";
    }
    }
    }
    else
    {
    $select_tb_forum=mysql_query(SELECT * FROM massage);
    while($line_db=mysql_fetch_row($select_tb_forum))
    {
    foreach($line_db as $massage)
    {
    print"<tr>";
    print "<a href="".$php_self."?show=1&msgid=".$massage[id].""/>".$massage[sub].$massage[user].",".massage[date];
    print"<tr>";
    }
    }
    }

    ?>

  18. jonatan44 הגיב:

    ממ….
    אני לא מוצא שום דבר רע בקוד.
    דבר שני – הכוונה של "שרשר שאולותיך" היא שתיפתח שירשור אחד ובו תיכתוב את כל ההודעות שלך בימקום ליפתוח הרבה.
    בקשר לicq – יש לי את התוכנה אבל אני כימעט שלא נימצא (ובטח שלא עונה על שאלות שמקומם בפורום,אלא אם אני רואה שלא ממש הצליחו לעזור לאיש).

  19. oleg הגיב:

    הנה סוף-סוף הוא הגיע: שרשור שאלותי.
    בזאת אני מכריז עלשרשור שאולתי, שרשור דאלותי של השואל מס’ 1 בפורום(בהיתייחס לכמות השאלות ולתדירתם) שרשור השאלות שעוד ישבור שיאים באורכו,
    תודה לך יוני, על הסבלנות ועל ההסברים המעמיקים.

  20. oleg הגיב:

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

  21. אוריקס הגיב:

    אני לא יודע אם יש קשר ל MySQL
    אני חושב שזה יותר ב PHP.
    מחיפוש מהיר בגוגל מצאתי כמה קישורים
    1
    2
    3

  22. oleg הגיב:

    שאלה בקשר לשליפת נתונים.
    שתי שאלות בקשר לשליפת מתונים מתוצאותיה של שאילתה.
    1.איך אוכל לשלוף את מספר התוצאות שאעלתה שאליתה?
    2.איך אוכל לגשת לרכיב האחרון, ללא התחשבות במספר התוצאות?
    (כעקרון אם אקבל את התשובה לשאלה הראשונה אוכל לענות על שאלתי השניה בעצמי)

שלח תשובה