הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 28-01-09, 18:37   # 1
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

בדיקת נתונים

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

זה הקוד שתבינו על מה אני מדבר
PHP קוד:
else if (!isset($_POST['name']) == "'.$nametext.'" || null) {
    echo 
"<script>alert('אנא מלאו שם!')</script>";
}

else if (!isset(
$_POST['msg']) == "'.$msgtext.'" || null) {
    echo 
"<script>alert('אנא הכניסו הודעה!')</script>";

זה לא טוב בשבילי, אני יכול לבדוק בעצם עם הערך שיש במשתנים של השליחה name ו msg
הם לא ריקים אם אני שם ב value משהו..
אבל אז אנשים יוכלו לשלוח עם ה value שאני שמתי..
ואני לא רוצה את זה.

המטרה שלי היא לחייב משתמשים לרשום שם משתמש + הודעה ושלא יהיו ריקים או שווים ל value שקבעתי להם מראש.
  Reply With Quote
ישן 28-01-09, 19:24   # 2
sholaman
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 33
הודעות: 323

sholaman לא מחובר  

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

בהצלחה
__________________
  Reply With Quote
ישן 28-01-09, 19:59   # 3
DvirCohen
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 151

DvirCohen לא מחובר  

בלי להעליב, הקוד שלך דפוק בכ"כ הרבה צורות.
דבר ראשון, בשביל מה אתה עושה alert מתוך הקוד PHP?
את הבדיקה בJS תעשה בצד הלקוח בעזרת JS, לא בעזרת PHP.
בדיקה בPHP עושים מאחורי הקלעים ליתר ביטחון במידה והמשתמש עבר את בדיקות הJS.
ברור שעל ההתחלה זה יקפיץ לך את ההודעות, כי משתני הPOST לא קיימים כי לא נשלח טופס.

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

אם כבר אתה רוצה לעשות את הקוד הזה תקין, הוא צריך להיות כך:
PHP קוד:
if ( isset($_POST['name']) && isset($_POST['msg']) )
{
    if ( 
$_POST['name'] != $textname || trim($_POST['name']) == "" || $_POST['name'] == null )
    {
        echo 
"<script>alert('אנא מלאו שם!')</script>"
    }
    elseif ( 
$_POST['msg'] != $txtmsg || trim($_POST['msg']) == "" || $_POST['msg'] == null )
    {
        echo 
"<script>alert('אנא הכניסו הודעה!')</script>"
    }

קודם כל בדקתי שהמשתנים קיימים בכלל אחרת זה תמיד יקפיץ את ההודעה.
לאחר מכן בדקתי אם הערך ללא רווחים בהתחלה ובסוף (trim) ריק או שהוא NULL.

אבל שוב אני אומר, את בדיקות הJS תעשה בצד הלקוח עם JS באמת, ולא סתם ALERT מתוך הקוד PHP.

Last edited by DvirCohen; 28-01-09 at 20:04..
  Reply With Quote
ישן 28-01-09, 20:20   # 4
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

עוד נקודה שיש להבהיר..
בדיקה בשרת חובה לבצע..
אם אתה רוצה לחסוך טראפיק של בקשות HTTP אז תוסיף גם בדיקה ברמת הלקוח
__________________
  Reply With Quote
ישן 28-01-09, 21:23   # 5
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

אוקי, תודה רבה על העזרה.
אני עדיין לא מתקדם ב PHP ולכן הקוד שלי היה ניראה על הפנים, אבל מטעויות לומדים.
ודביר לא הבנתי מזה trim ?

כי לפי הקוד בדקת אם הערכים שווים ל משתנים textname ו textmsg נגיד
או שהם שווים לכלום והוספת לפני המשתני POST trim, הוא שהערכים שלהם NULL
ריקים..

אגב מה ההבדל בין אם אני בודק שהערך שהכניסו במשתנה מסויים יהיה ריק ע"י
PHP קוד:
($_POST['msg']) == "" 
או מה שאתה עשית עם trim

לבין שאם אני עושה NULL?
  Reply With Quote
ישן 28-01-09, 21:51   # 6
Shon12
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 354

Shon12 לא מחובר  

trim - http://www.w3schools.com/PHP/func_string_trim.asp
פשוט - מצמצם רווחים,
כלומר:
shon gefen
יהיה:
shongefen

ואז בודק אם הPOST ריק,כך שגם אם יכניסו רווחים - הם יחשבו לריקים.
__________________
Projector Lamps
  Reply With Quote
ישן 28-01-09, 21:56   # 7
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

טעות ענקית
shon gefen ישאר כמו שהוא
לעומת זאת
" shon gefen "
יהפוך ל
"shon gefen"
__________________
  Reply With Quote
ישן 28-01-09, 22:07   # 8
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

ציטוט:
נכתב במקור על ידי nitsanbn צפה בהודעה
טעות ענקית
shon gefen ישאר כמו שהוא
לעומת זאת
" shon gefen "
יהפוך ל
"shon gefen"
אה, הבנתי..
תודה!
  Reply With Quote
ישן 28-01-09, 22:13   # 9
DvirCohen
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 151

DvirCohen לא מחובר  

trim מקצץ רווחים מתחילתה וסופה של המחרוזת.
כלומר, שאם מישהו יביא לך דבר כזה: " ", לא תתייחס לזה כמחרוזת ריקה.

ומה שבדקתי זה אם הערכים שלהם לא שווים לערכים שהצבת, או שהם שווים למחרוזת ריקה, או לNULL (שזה די מיותר..מחרוזת ריקה תעשה את העבודה).
  Reply With Quote
ישן 29-01-09, 08:16   # 10
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

ציטוט:
או לNULL (שזה די מיותר..מחרוזת ריקה תעשה את העבודה).
מחרוזת ריקה ו NULL זה שני דברים שונים. אם יהיה לך את הדבר הבא:

PHP קוד:
$var '';
$var2 null;

echo isset(
$var) ? "var is set" "var not set"// will print var is set
echo isset($var2) ? "var2 is set" "var2 not set"// will print var2 not set 
  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. הזמן כעת הוא 09:30.

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