הרשם שאלות ותשובות רשימת חברים לוח שנה חיפוש הודעות מהיום סמן פורומים כנקראו

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 24-11-13, 21:58   # 1
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

Exclamation 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;

  request.open("POST", "post.php", true);
שולח את הDATA (את הקוד) בתור משתנה של "USER_CODE" לקובץ PHP שנקרא POST:

קוד:
$handle = fopen("codes.txt", "a");foreach($_POST as $variable => $value)
 {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>
הקובץ הזה מציב את הקודים בקובץ הטקסט codes.txt בתור תבנית:
קוד:
user_code = XXXXXXXXXXX
הXXXXX זה בעצם משתנה ה$value שמוגדר בקובץ הPOST, שמקבל את הערך של המשתנה עוד מקובץ הAJAX.

עכשיו, הלכתי בעצם לקובץ הAJAX, ושיניתי אותו שבמקום שישלח אותו לקובץ הPOST שיאחסן את הקוד בטקסט, עשיתי:

קוד:
  var  the_data = 'user_code='+code;

  request.open("POST", "run.php", true);
run.php זה בעצם הקובץ PHP שבו אני מריץ את הקודים ידנית.

הלכתי אליו והצבתי את השורות שאמרת לי עם שינויים בהתאם אלי:
קוד:
foreach($_GET as $variable => $value)
 {

if($_POST['variable'] == $variable && $_POST['value'] == $value)

{

user_code = code;

}
}
וזהו מכאן ומטה באות בעצם כל פקודות הJAVA שאמורות להריץ את הUSER_CODE בתור הCODE שהוא מקבל מהקובץ. אך זה לא עובד.


הרי כשאני מריץ אותו ידנית ומציב את הקוד, הוא קורא את הקוד שאני שם בתור "USER_CODE" אז למה כשאני מגדיר את הUSER_CODE בתור ה$CODE ($VALUE) שהוא משיג מהקובץ PHP, זה לא מריץ?

אשמח לעזרה, תודה!
  Reply With Quote
ישן 24-11-13, 22:15   # 2
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

אין צורך בAJAX,
תפרט קצת איך הקובץ שעושה את הפעולה עובד.

בכל מקרה, זו השיטה שבה אני הייתי עושה את זה:
אני מניח שאתה לא משתמש במחלקות, אז ככה:
טבלה במסד נתונים בשם users, הusername, password, email וכו'.. ברורים מאליו. אתה מוסיף עמודה בשם confirmed שתהיה כמובן INT והיא תמיד תהיה על אפס.
ככה עובד העמוד שמאשר את המשתמשים:
אתה מציג בטבלה את כל המשתמשים שהעמודה confirmed = 0, בטבלה לצד כל שורה, יש checkbox שנראה ככה: (שים לב לערך VALUE)
קוד:
<input type="checkbox" name="toconfirm[]" value="MEMBER_ID" />
ברגע שתשלח את זה בתור POST, אתה תקבל בPHP מערך שמכיל את האיידים של כולם, ואז זה פשוט מאוד, השאילתה שלך תהיה כזו:
קוד:
UPDATE users SET confirmed = '1' WHERE id IN(" .$ids. ")
המשתנה $ids בעצם מציג את האיידים של כל אלה שסימנת בcheckbox, כלומר אם סימנת את המשתמש מספר 5 ואת משתמש מספר 7, זה יציג 5,7,
איך זה אמור להציג את זה ככה? פשוט מאוד:
קוד:
$ids = implode(",", $_POST['toconfirm']);
- במידה ולא תסמן כלום, זה יציג שגיאה ככה שתעשה תנאי לפני.

זהו בגדול, בהצלחה.
  Reply With Quote
ישן 25-11-13, 12:53   # 3
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

ציטוט:
נכתב במקור על ידי Haimz צפה בהודעה
אין צורך בAJAX,
תפרט קצת איך הקובץ שעושה את הפעולה עובד.

בכל מקרה, זו השיטה שבה אני הייתי עושה את זה:
אני מניח שאתה לא משתמש במחלקות, אז ככה:
טבלה במסד נתונים בשם users, הusername, password, email וכו'.. ברורים מאליו. אתה מוסיף עמודה בשם confirmed שתהיה כמובן INT והיא תמיד תהיה על אפס.
ככה עובד העמוד שמאשר את המשתמשים:
אתה מציג בטבלה את כל המשתמשים שהעמודה confirmed = 0, בטבלה לצד כל שורה, יש checkbox שנראה ככה: (שים לב לערך VALUE)
קוד:
<input type="checkbox" name="toconfirm[]" value="MEMBER_ID" />
ברגע שתשלח את זה בתור POST, אתה תקבל בPHP מערך שמכיל את האיידים של כולם, ואז זה פשוט מאוד, השאילתה שלך תהיה כזו:
קוד:
UPDATE users SET confirmed = '1' WHERE id IN(" .$ids. ")
המשתנה $ids בעצם מציג את האיידים של כל אלה שסימנת בcheckbox, כלומר אם סימנת את המשתמש מספר 5 ואת משתמש מספר 7, זה יציג 5,7,
איך זה אמור להציג את זה ככה? פשוט מאוד:
קוד:
$ids = implode(",", $_POST['toconfirm']);
- במידה ולא תסמן כלום, זה יציג שגיאה ככה שתעשה תנאי לפני.

זהו בגדול, בהצלחה.
הקובץ PHP השני שבו אני מציב את הקוד, לוקח אותו בתור הערך user_code ומעביר אותו דרך קוד JAVASCRIPT ארוך שעושה לא מעט פעולות..
  Reply With Quote
ישן 25-11-13, 16:06   # 4
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

ציטוט:
נכתב במקור על ידי Tyler צפה בהודעה
הקובץ PHP השני שבו אני מציב את הקוד, לוקח אותו בתור הערך user_code ומעביר אותו דרך קוד JAVASCRIPT ארוך שעושה לא מעט פעולות..
תיישם את השיטה שאמרתי לך..
  Reply With Quote
ישן 25-11-13, 17:35   # 5
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

ציטוט:
נכתב במקור על ידי Haimz צפה בהודעה
תיישם את השיטה שאמרתי לך..
ניסיתי, אך השיטה שלך עם המסד לא יעילה כשמדובר בקוד JS...

הרי אני לוקח את הקוד ומריץ אותו בלולאת JS, אין פה שום קשר למסד בין הJS.

אתה אומר בעצם שאני אצור סוג של "הרשמה" רגילה כמו כמעט בכל אתר שתהיה מקושרת למסד, ואני אסמן בV דרך הCHECKBOX ואז זה אמור לאשר את המשתמש ולסמן לו ערך "1" בעמודת הconfirm

אך אני רוצה להריץ את אותו הקוד של המשתמש דרך לולאת JS שבין היתר גם מאשרת אותו וגם עושה פעולות אחרת כמו מצרפת אותו לרשת של בית הספר, מוסיפה חברים וכו'
  Reply With Quote
ישן 25-11-13, 18:02   # 6
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

אז תעשה את אותה שיטה שאמרתי לגבי הCHECKBOX וברגע שאתה מקבל רשמיה של הקודים של המשתמשים, אתה יכול להציג פלט של JS.
אתה יכול להציג JS בקוד של PHP, אבל לא PHP בקוד של JS.
  Reply With Quote
ישן 25-11-13, 18:26   # 7
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

ציטוט:
נכתב במקור על ידי Haimz צפה בהודעה
אז תעשה את אותה שיטה שאמרתי לגבי הCHECKBOX וברגע שאתה מקבל רשמיה של הקודים של המשתמשים, אתה יכול להציג פלט של JS.
אתה יכול להציג JS בקוד של PHP, אבל לא PHP בקוד של JS.
זה מה שאני עושה
אני מציג JS בקוד של PHP, לא להפך כמובן

ואני אנסה את מה שאתה אומר למרות שזה נראה די מסובך וקשה לביצוע בעיקר עם כמה וכמה לולאות JS ..

ולא בדיוק הבנתי איפה בא כאן הקשר למסד?

בכ"מ לסיכום,
הרעיון שלך הוא ליצור טבלת USERS במסד לדוגמא, כך שלכל משתמש יהיה את הUSER_CODE שלו במסד.

וליצור CHECKBOX בעמוד הPHP שבו יש את הJS שאני רוצה להריץ
ברגע שאני מסמן את הCHECKBOX של משתמש כלשהו בV, הוא מריץ את הקוד שלו דרך הJS.

זה בתיאוריה?
  Reply With Quote
ישן 25-11-13, 19:17   # 8
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

ציטוט:
נכתב במקור על ידי Tyler צפה בהודעה
זה מה שאני עושה
אני מציג JS בקוד של PHP, לא להפך כמובן

ואני אנסה את מה שאתה אומר למרות שזה נראה די מסובך וקשה לביצוע בעיקר עם כמה וכמה לולאות JS ..

ולא בדיוק הבנתי איפה בא כאן הקשר למסד?

בכ"מ לסיכום,
הרעיון שלך הוא ליצור טבלת USERS במסד לדוגמא, כך שלכל משתמש יהיה את הUSER_CODE שלו במסד.

וליצור CHECKBOX בעמוד הPHP שבו יש את הJS שאני רוצה להריץ
ברגע שאני מסמן את הCHECKBOX של משתמש כלשהו בV, הוא מריץ את הקוד שלו דרך הJS.

זה בתיאוריה?
אתה לא חייב לשלב מסד, הקטע של המסד היה הרעיון שלי.

אתה יכול להשאיר את אותה הדרך שבה זה עובד עכשיו, ופשוט להוסיף את השיטה של הCHECKBOX כאשר אתה שומר את הUSER_CODE במקום הid
  Reply With Quote
ישן 27-11-13, 16:17   # 9
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

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

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

וגם לא הבנתי בדיוק איך לבצע את זה..

אתה הבנת איך המערכת עובדת במצב הנוכחי?

בן אדם נכנס > נרשם בטופס הרשמה בקובץ PHP מסוים > מקבל קוד ייחודי > מכניס אותו לתיבת האישור של ההרשמה > הקוד הייחודי הזה נשמר בקובץ TXT > אני נכנס לקובץ TXT ומעתיק את הקוד > מכניס אותו בלולאת JS שנמצאת בקובץ PHP אחר > המשתמש מאושר.

איפה נכנס פה הCHECKBOX שייעצת עליה? ומצטער על הNOOBיות..
  Reply With Quote
ישן 28-11-13, 03:21   # 10
zoharesh
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 600

zoharesh לא מחובר  

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


HIGHDESIGN.co.il עיצוב ובניית אתרים.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

כלים לאשכול
תצורת הצגה

חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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