איך אני נותן פקודת PHP

גדי ב

New member
איך אני נותן פקודת PHP

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

תמר,

New member
אי אפשר לערבב בין צד הלקוח לצד השרת

ה-back הוא פעולה של חזרה אחורה ברשימת ה-history של הדפדפן. הדרך הטובה ביותר היא לעשות את מה שאין לך כוח לעשות (ותוך כדי זה גם למחוק שדות שגויים). דוגמה:
<form action="<?=$PHP_SELF?>" method="POST"> <input type="text" name="field" value="<?=$_POST[´field´]?>"> . . . </form>​
הפונקציה שבודקת את המשתנים יכולה לקרוא לפונקציה שמדפיסה את הטופס, במידה והשדות שגויים. אם הטופס לא מולא, המערך של משתני ה-POST אמור להיות ריק, ולכן תוכל להדפיס אותו בלי לבדוק אם הוא קיים.
 

גדי ב

New member
ואללה...

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

patael

New member
כדאי לך ....

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

matroz

New member
the best way...

the best way is using the following javascript to send him back keeping all the info: <img src=whatever.gif onclick=´history.back(-1)´> it can be an image,link,button .... matty
 

nirdagan

New member
אין בזה כל תועלת

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

nirdagan

New member
לגבי תיקון מילוי טופס...

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

matroz

New member
clarification

send the form to the same page of the form. do a check for validity before the form is displayed, if the something is incorrect, show him the errors prompt, and display the form. to keep all the info he submitted you should do: let´s assume that the field name is ´email´ <input type=text name=email value=<?=$email?> it will keep the info. if the form was o.k , i do a header redirect to the script, which will also help you to avoid users doing ´refresh´. matty
 

גדי ב

New member
תודה + שאלה נוספת

בינתיים אני קצת מתפשר: זה אתר מסחרי והחלטנו להתחיל עם משהו ואחר-כך לשפר, אבל יותר מאוחר אני אשתמש בעצות שלכם וגם בהמשך בניית האתרים שלי. תודה לכם. שאלה נוספת: יש מקרים בהם לחיצה על FTP מסויים (דוגמא: כפתור העלאת הקבצים ב- http://eichut.co.il/ ) פותחת את ה-FTP בתוך הבראוזר, אבל זה לא פועל לגבי FTP שלי, או שאני פשוט לא יודע איך לעשות את זה. מישהו יודע איך לפתוח directory של FTP מסויים ישירות מתוך הבראוזר? תודה לכם.
 

תמר,

New member
לא כל כך ברור מה כוונתך

(כתבתי לך תשובה בעניין ftp בבוני אתרים לפני כמה ימים, אולי זה יענה לך). קישור ל-ftp נעשה בעזרת ftp://domain.nam. ניתן לראות רשימת קבצים בעזרת פרוטוקול http (ע"י מתן אפשרות מתאימה ב-htaccess. או בהגדרות של apache, שאני מניחה שבו אתה משתמש). אם אתה רוצה לאפשר גם העלאת קבצים בעזרת פרוטוקול http, תוכל להתקין מודול בשם mod_dav ל-apache (ואז ניתן לפתוח את הספריה בעזרת IE5 בתפריט file->open, כותבים את שם הדומיין עם //:http ומסמנים את "open as webfolder". יש גם תוכנות מתאימות ל-mac, נראה לי משהו בשם goliath, וכן ב-dreamweaver יש אפשרות מובנית לשימוש בזה)
 

matroz

New member
file uploads in php

there is no need for ftp if you only want to upload a file. name a field as file <input type="file" name="realname" size="20"> the file can be accessed in your php code as follows: $_FILES/$HTTP_POST_FILES[´realname´][´tmp_name´] you can use the copy command : copy(); to copy the file to wherever you want or use the move_uploaded_file($HTTP_POST_FILES[´userfile´][´tmp_name´], "f:\\place\\to\\file\\"); for file moving. this way is the safest way to allow users to upload files. you can read more in the manual. matty
 

matroz

New member
more...

this method will allow you to check more things about the files: $_FILES[´userfile´][´name´] The original name of the file on the client machine. $_FILES[´userfile´][´type´] The mime type of the file, if the browser provided this information. An example would be "image/gif". you can prevent certain files uploads, for security reasons. $_FILES[´userfile´][´size´] The size, in bytes, of the uploaded file. $_FILES[´userfile´][´tmp_name´] The temporary filename of the file in which the uploaded file was stored on the server. $_FILES[´userfile´][´error´]
 
למעלה