![]() |
PHP להציב משתנה X שאני לוקח מPOST של PHP אחר
שלום,
יש לי אתר שעליו אני מריץ משחק דפדפן שפועל רק לבעלי אותה הרשת (אנחנו מריצים אותו ברשת של הבית ספר). בכ"מ, בשביל להכנס למשחק המשתמש אמור להרשם ואני אמור לאשר אותו. איך התהליך עובד? הוא נכנס להרשמה, נרשם. המערכת מעניקה לו קוד ייחודי לדוגמא X7X1X1224X, הוא מכניס את הקוד בתיבת ההרשמה . לאחר מכן הקוד נשלח אלי לקובץ שנמצא על השרת עצמו דרך פקודת POST: קוד:
$_POST as $variable => $value) mycode = X7X1X1224X ולאחר שהרבה משתמשים נרשמים, הקובץ טקסט נראה: mycode = xxxxxxx mycode = yyyyyyy mycode = zzzzzzzz mycode = aaaaaaa ועוד המון המון שורות. בקיצור לכל משתמש יש את הקוד שלו וזה מציג לי את כל הקודים בשורה בקובץ טקסט. לאחר מכן אני נכנס לקובץ טקסט (שרק אני יכול לגשת אליו כיוון שאני הוא מקים אתר ובעל הגישה היחידה לROOT), מעתיק את הקוד, ניגש לקובץ PHP אחר שנמצא על המערכת וגלוי רק לי, מדביק בו את הקוד של המשתמש, וכך המשתמש מאושר והופך להיות "משתמש פעיל". ואני אמור לאשר כל אחד, וזה מאוד מעייף, תחשבו שאני אמור לעבור אחד אחד, לעשות העתק - הדבק ולהציב בPHP השני וכך הלאה. זה תהליך מאוד מעייף, ורציתי לדעת האם יש דרך לחבר בין 2 קבצי הPHP בלי המתווך של ה"קובץ TXT" באמצע? כלומר לשלוח בפקודת הPOST מאותו PHP הראשון , ולהציב ישירות בעזרת פקודת GET בPHP השני את הקוד. הרגע ניסיתי להשתמש בייעוץ מחבר: הקובץ AJAX שלי: קוד:
var the_data = 'user_code='+code; קוד:
$handle = fopen("codes.txt", "a");foreach($_POST as $variable => $value) קוד:
user_code = XXXXXXXXXXX עכשיו, הלכתי בעצם לקובץ הAJAX, ושיניתי אותו שבמקום שישלח אותו לקובץ הPOST שיאחסן את הקוד בטקסט, עשיתי: קוד:
var the_data = 'user_code='+code; הלכתי אליו והצבתי את השורות שאמרת לי עם שינויים בהתאם אלי: קוד:
הרי כשאני מריץ אותו ידנית ומציב את הקוד, הוא קורא את הקוד שאני שם בתור "USER_CODE" אז למה כשאני מגדיר את הUSER_CODE בתור ה$CODE ($VALUE) שהוא משיג מהקובץ PHP, זה לא מריץ? אשמח לעזרה, תודה! |
אין צורך בAJAX,
תפרט קצת איך הקובץ שעושה את הפעולה עובד. בכל מקרה, זו השיטה שבה אני הייתי עושה את זה: אני מניח שאתה לא משתמש במחלקות, אז ככה: טבלה במסד נתונים בשם users, הusername, password, email וכו'.. ברורים מאליו. אתה מוסיף עמודה בשם confirmed שתהיה כמובן INT והיא תמיד תהיה על אפס. ככה עובד העמוד שמאשר את המשתמשים: אתה מציג בטבלה את כל המשתמשים שהעמודה confirmed = 0, בטבלה לצד כל שורה, יש checkbox שנראה ככה: (שים לב לערך VALUE) קוד:
<input type="checkbox" name="toconfirm[]" value="MEMBER_ID" /> קוד:
UPDATE users SET confirmed = '1' WHERE id IN(" .$ids. ") איך זה אמור להציג את זה ככה? פשוט מאוד: קוד:
$ids = implode(",", $_POST['toconfirm']); זהו בגדול, בהצלחה. |
ציטוט:
|
ציטוט:
|
ציטוט:
הרי אני לוקח את הקוד ומריץ אותו בלולאת JS, אין פה שום קשר למסד בין הJS. אתה אומר בעצם שאני אצור סוג של "הרשמה" רגילה כמו כמעט בכל אתר שתהיה מקושרת למסד, ואני אסמן בV דרך הCHECKBOX ואז זה אמור לאשר את המשתמש ולסמן לו ערך "1" בעמודת הconfirm אך אני רוצה להריץ את אותו הקוד של המשתמש דרך לולאת JS שבין היתר גם מאשרת אותו וגם עושה פעולות אחרת כמו מצרפת אותו לרשת של בית הספר, מוסיפה חברים וכו' |
אז תעשה את אותה שיטה שאמרתי לגבי הCHECKBOX וברגע שאתה מקבל רשמיה של הקודים של המשתמשים, אתה יכול להציג פלט של JS.
אתה יכול להציג JS בקוד של PHP, אבל לא PHP בקוד של JS. |
ציטוט:
אני מציג JS בקוד של PHP, לא להפך כמובן :) ואני אנסה את מה שאתה אומר למרות שזה נראה די מסובך וקשה לביצוע בעיקר עם כמה וכמה לולאות JS .. ולא בדיוק הבנתי איפה בא כאן הקשר למסד? בכ"מ לסיכום, הרעיון שלך הוא ליצור טבלת USERS במסד לדוגמא, כך שלכל משתמש יהיה את הUSER_CODE שלו במסד. וליצור CHECKBOX בעמוד הPHP שבו יש את הJS שאני רוצה להריץ ברגע שאני מסמן את הCHECKBOX של משתמש כלשהו בV, הוא מריץ את הקוד שלו דרך הJS. זה בתיאוריה? |
ציטוט:
אתה יכול להשאיר את אותה הדרך שבה זה עובד עכשיו, ופשוט להוסיף את השיטה של הCHECKBOX כאשר אתה שומר את הUSER_CODE במקום הid |
ציטוט:
וגם לא הבנתי בדיוק איך לבצע את זה.. אתה הבנת איך המערכת עובדת במצב הנוכחי? בן אדם נכנס > נרשם בטופס הרשמה בקובץ PHP מסוים > מקבל קוד ייחודי > מכניס אותו לתיבת האישור של ההרשמה > הקוד הייחודי הזה נשמר בקובץ TXT > אני נכנס לקובץ TXT ומעתיק את הקוד > מכניס אותו בלולאת JS שנמצאת בקובץ PHP אחר > המשתמש מאושר. איפה נכנס פה הCHECKBOX שייעצת עליה? ומצטער על הNOOBיות.. |
קראתי הכל ואולי בגלל השעה לא הצלחתי להבין את ההיגיון שמאחורי הדברים.
מה בעצם הקוד הזה נותן למשתמש? אם הבנתי נכון לאחר ההרשמה הוא מקבל קוד, שאותו הוא מזין שוב בתהליך ההרשמה? |
כל הזמנים הם GMT +2. הזמן כעת הוא 23:57. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ