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

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

Megnum 23-07-08 02:50

שאלה | איך לעשות שהוא יקבל id?
 
שלום, אני מנווט באתר אם swich + case:
יש לי case כזה:
case'?page=articles?edit=$id':

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

daMn 23-07-08 02:51

לא ממש הבנתי מה המטרה שלך אבל מידע אתה יכול להעביר בGET,POST,SESSION,COOKIE
רק תבחר..

Megnum 23-07-08 02:55

כן עשיתי את זה אבל הcase: בתוך הסויצ' לא מקבל את מה שהגדרתי ל$id אפילו ידני.
המטרה היא לערוך את הכתבה שלי והקוד של העריכה נמצא באותו הcase אבל הבעיה ששהוא צריך לדעת לקבל id מהכתבה שאני רוצה לערוך לדוגמא:
page=articles?edit=$id אז בעצם הופך לpage=articles?edit=7 מהמזהה id של אותה הכתבה שלחצתי לעריכה.

snirk 23-07-08 03:39

לא ממש הבנתי אותך אבל,
אין סיבה שבעולם שאם אתה שומר את משתנה edit בסיישן שזה לא יעבוד לך...
אתה לא מבצע את הפעולה שלך נכון או שאתה לא מסביר לנו נכון...

daMn 23-07-08 03:47

ציטוט:

נכתב במקור על ידי Megnum (פרסם 652933)
כן עשיתי את זה אבל הcase: בתוך הסויצ' לא מקבל את מה שהגדרתי ל$id אפילו ידני.
המטרה היא לערוך את הכתבה שלי והקוד של העריכה נמצא באותו הcase אבל הבעיה ששהוא צריך לדעת לקבל id מהכתבה שאני רוצה לערוך לדוגמא:
page=articles?edit=$id אז בעצם הופך לpage=articles?edit=7 מהמזהה id של אותה הכתבה שלחצתי לעריכה.

אני לא חושב שצריכה להיות בעיה לקבל את הid מGET..
אבל אולי תראה את הקוד שלך ונראה מה נוכל לעשות..

Megnum 23-07-08 04:01

החלק הרלוונטי:

PHP קוד:


   
case 'articles?edit=$id':
  
//From Edit
   
echo "<div class='space'><div class='add' ><img src='images/add.gif' alt='' /><a href='?page=articles?new'>הוסף כתבה</a></div><div class='f_img'><img src='images/p2_link.gif' alt='' /></div><div class='f_l'>&nbsp;<a href='?page=articles'>מערכת כתבות</a>  |  עריכת כתבה</div></div>\n";
   echo 
"<div class='hr'></div>\n";

   
$show_article_id ="SELECT * FROM `webadmin_articles` WHERE `id` =$id";
   
$ok_show_id=mysql_query($show_article_id) or die(mysql_error());

   while (
$row_news_id=mysql_fetch_array($ok_show_id) or die(mysql_error())) {
   echo 
"<form method='post' action='?page=articles?edit=ok'>\n";
   echo 
"<table class='table' border='0' width='800px'>\n";
   echo 
"<tr><td width='200px'>שם הכתבה:</td><td><input class='input_type' type='text' name='name' value='$row_news_id[name]'/></td></tr>\n";
   echo 
"<tr><td width='200px'>שם המפרסם:</td><td><input class='input_type' type='text' name='author' value='$row_news_id[author]'/></td></tr>\n";
   echo 
"<tr><td width='200px'>תאריך פרסום:</td><td><input class='input_type' type='text' name='date' value='$row_news_id[date]'/>&nbsp;(יום/חודש/שנה לדוגמא: 22/02/2008)</td></tr>\n";
   echo 
"<tr><td width='200px' valign='top'>תיאור:</td><td width='800px'><textarea class='r' name='description'>$row_news_id[description]</textarea></td></tr>\n";
   echo 
"<tr><td width='200px' valign='top'>תוכן:</td><td width='800px'><textarea class='m' name='content'>$row_news_id[content]</textarea></td></tr>\n";
   echo 
"<tr><td>אפשרויות:</td><td><input class='style_submit' type='submit' value='עדכן כתבה' /><input class='style_submit' type='reset' value='אתחל טופס' /></td></tr>\n";
   echo 
"</table>";
   echo 
"</form>\n";
   }  
   
   break; 

תודה על הרצון לעזור!

Ori The Man 23-07-08 06:35

הגדרת בראש הדף

PHP קוד:

$id=$_GET["id"]; 

?

DavidBD 23-07-08 12:51

אתה עושה רק על EDIT ובעמוד של EDIT אתה מקבל מהGET את הID, את הID אתה מוסיף בקישור עצמו.

Megnum 23-07-08 13:02

לא ממש הבנתי אותם וכן יש לי את ה$_GET
ובכלל זה הגיוני שהקאס יקבל משתנים?? case 'articles?edit=$id': ?

daMn 23-07-08 17:32

ציטוט:

נכתב במקור על ידי Megnum (פרסם 653017)
לא ממש הבנתי אותם וכן יש לי את ה$_GET
ובכלל זה הגיוני שהקאס יקבל משתנים?? case 'articles?edit=$id': ?

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

case "articles?edit=$id"


Ori The Man 23-07-08 18:02

זה לא נותן לך את העריכה?
או נותן ארור כלשהו?

Tomer 23-07-08 19:08

אי אפשר להציב משתנים כאשר יש גרש בפונקצייה (לדוגמא, echo 'hello $name'; לא יעבוד, ויציב את $name כ string).

אתה יכול לעשות echo 'hello '.$name; וזה יעבוד, אבל לא בתוך הגרש.

Megnum 23-07-08 21:18

ציטוט:

נכתב במקור על ידי daMn (פרסם 653080)
כן זה הגיוני, בתנאי שאתה עושה מרכאות ולא גרש, אני כמעט בטוח שזאת הטעות, תנסה ככה.
PHP קוד:

case "articles?edit=$id"


תודה רבה אבל כבר הסתדרתי אם הGET :]

וחבל לפתוח אשכול נוסף, השאלה שלי איך אוכל לאבטח את האתר בצורה מספיק טובה שלא יפרצו לי בקלות? ממש תודה רבה לכם חבר'ה!

daMn 23-07-08 22:58

ציטוט:

נכתב במקור על ידי Megnum (פרסם 653123)
תודה רבה אבל כבר הסתדרתי אם הGET :]

וחבל לפתוח אשכול נוסף, השאלה שלי איך אוכל לאבטח את האתר בצורה מספיק טובה שלא יפרצו לי בקלות? ממש תודה רבה לכם חבר'ה!

אהה..זה פשוט יש פונקציה שים אותה איפשהו ולא יפרצו לך יותר..
PHP קוד:

PlzDontHackMe() 

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

Megnum 25-07-08 14:15

קראתי כמה מאמרים על האבטחה, השאלה אם אני מוריד אם הפונקציה mysql_error(); או מציב במקומה שגיאה משלי זה יאבטח יותר תאתר? ועשיתי אינג'קט SQL באתר שלי ואני לא רואה שהעמוד מקבל שגיאות הוא פשוט נשאר באותו הדף נניח:
PHP קוד:

pages?delete&id

זה אומר שהוא מוגן? כי יש אתרים שעשיתי דבר כזה וזה הראה שגיאות SQL חח..

ASTeam 25-07-08 14:21

ציטוט:

קראתי כמה מאמרים על האבטחה, השאלה אם אני מוריד אם הפונקציה mysql_error();
אה? לא קשור..
ציטוט:

ועשיתי אינג'קט SQL באתר שלי ואני לא רואה שהעמוד מקבל שגיאות הוא פשוט נשאר באותו הדף נניח
במקרה שהראת זה לא אומר כלום...
אתה צריך להציב בערך הזה משהו שידפוק את השאילתה..(יענו המשך של שאילתה) או משהו כזה..
אם זה id(ערך מספרי)
תעשה לפני הבדיקה
PHP קוד:

$id=intval($id); 

ציטוט:

כי יש אתרים שעשיתי דבר כזה וזה הראה שגיאות SQL חח..
כי אצלם, מ הסתם, בשאילתה בסופה יש mysql_error();

Megnum 25-07-08 15:22

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


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

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