צריך עזרה עם form validation בPHP - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

צריך עזרה עם form validation בPHP


LazyBoy

Recommended Posts

מבחינת עדיף שזה יהיה ב php.

אם זה js אתה יכל לעקוף את זה ע"י הכנה של קובץ פורום אצלך בשרת ולשלוח אילו נתונים שאתה רוצה ללא סינון לדף הפעולה.

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

אני לא יודע בדיוק למה משמש הטופס הזה אבל אם לא קריטי אפשר js.

קישור לתוכן
שתף באתרים אחרים

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

מה?

אני צריך קוד שאוכל לשכפל ליתר השדות כך שבסופו של דבר אקבל משהו כזה:

http://www.finalwebsites.com/demos/form_field_validation.php

לא צריך להשתגע עם AJAX ובדיקות למקור ההפניה.[br]פורסם בתאריך: 22.09.2007 בשעה 23:45:20


והנה הפתרון לכל מי שלא יודע PHP (כמוני)

http://phpfmg.sourceforge.net

פשוט וקל.

קישור לתוכן
שתף באתרים אחרים

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

את ה js הבסיסי שיש שם אתה צריך לדעת וה php שם הוא סינטקס בסיסי ביותר שהיית יכול להסתדר איתו לבד.

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

קישור לתוכן
שתף באתרים אחרים

אני מסכים ש iframe או Ajax או אפילו סתם גאווה סקריפט שיעשה ולידציה לפני ה-POST הם דרכים יותר טובות מבחינת ה UI.

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

בתחילת הדף (השורה הראשונה) תשים את זה:


<?php
header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );

// get posted data into local variables

if (isset($_POST['Email'])){
$Email = Trim(stripslashes($_POST['Email']));
$EmailTo = "youremail@yourisp.com";
$Subject = "AOS contact form";
$FirstName = Trim(stripslashes($_POST['FirstName']));
$LastName = Trim(stripslashes($_POST['LastName']));
$Company = Trim(stripslashes($_POST['Company']));
$Street = Trim(stripslashes($_POST['Street']));
$City = Trim(stripslashes($_POST['City']));
$State = Trim(stripslashes($_POST['State']));
$Zip = Trim(stripslashes($_POST['Zip']));
$Tel = Trim(stripslashes($_POST['Tel']));
$Website = Trim(stripslashes($_POST['Website']));
$Questions = Trim(stripslashes($_POST['Questions']));

// validation
$validationOK=true;
if (Trim($Email)=="") {$err['Email']=1; $validationOK=false;}
if (Trim($FirstName)=="") {$err['FirstName']=1 ;$validationOK=false;}
if (Trim($LastName)=="") {$err['LastName']=1 ;$validationOK=false;}
if (Trim($Company)=="") {$err['Company']=1 ;$validationOK=false;}
if (Trim($Street)=="") {$err['Street']=1 ;$validationOK=false;}
if (Trim($City)=="") {$err['City)']=1 ;$validationOK=false;}
if (Trim($State)=="") {$err['State']=1 ;$validationOK=false;}
if (Trim($Zip)=="") {$err['Zip']=1 ;$validationOK=false;}
if (!is_numeric($Zip)) {$err['$Zipl']=1 ;$validationOK=false;}
if (Trim($Tel)=="") {$err['Tel']=1 ;$validationOK=false;}
if (!is_numeric($Tel)) {$err['Tel']=1 ;$validationOK=false;}
if ($validationOK) {
// prepare email body text
$Body = "";
$Body .= "FirstName: ";
$Body .= $FirstName;
$Body .= "\n";
$Body .= "LastName: ";
$Body .= $LastName;
$Body .= "\n";
$Body .= "Company: ";
$Body .= $Company;
$Body .= "\n";
$Body .= "Street: ";
$Body .= $Street;
$Body .= "\n";
$Body .= "City: ";
$Body .= $City;
$Body .= "\n";
$Body .= "State: ";
$Body .= $State;
$Body .= "\n";
$Body .= "Zip: ";
$Body .= $Zip;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $Tel;
$Body .= "\n";
$Body .= "Website: ";
$Body .= $Website;
$Body .= "\n";
$Body .= "Questions: ";
$Body .= $Questions;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$Email>");
}
}
?>

בחלק של הטופס תשים את זה:


<?php
if (!isset($_POST['Email']) || isset($err)):
?>

<form method="POST" action="<?php print $_SERVER['PHP_SELF'] ?>">
<blockquote>
<p> Fields marked (*) are required </p>
<p>Email:*
<span style="color:#F00; display: <?php print $err['Email']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Email">
</p>
<p>FirstName:*
<span style="color:#F00; display: <?php print $err['FirstName']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="FirstName">
</p>
<p>LastName:*
<span style="color:#F00; display: <?php print $err['LastName']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="LastName">
</p>
<p>Company:*
<span style="color:#F00; display: <?php print $err['Company']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Company">
</p>
<p>Street:*
<span style="color:#F00; display: <?php print $err['Street']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Street">
</p>
<p>City:*
<span style="color:#F00; display: <?php print $err['City']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="City">
</p>
<p>State:*
<span style="color:#F00; display: <?php print $err['State']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="State">
</p>
<p>Zip:*
<span style="color:#F00; display: <?php print $err['Zip']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Zip">
</p>
<p>Tel:*
<span style="color:#F00; display: <?php print $err['Tel']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Tel">
</p>
<p>Website:
<span style="color:#F00; display: <?php print $err['Website']? 'block' : 'none'; ?>">Error message</span><br>
<input type="text" name="Website">
</p>
<p>Questions:
<span style="color:#F00; display: <?php print $err['Questions']? 'block' : 'none'; ?>">Error message</span><br>
<textarea name="Questions" cols='45' rows='10'></textarea>
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</blockquote>
</form>
<?php endif; ?>

<?php
if ($success):
?>
<p>Success Message</p>
<?php endif; ?>

בכל אחד מה Error message תחליף לטקסט אחר מן הסתם... כמו "לא מילת כתובת אי-מייל" או "אנחנו מלא המיקוד שלך ובספרות בלבד" - בהתאם לשדה. וב Success message תודה למשתמש על שליחת הטופס או משהו...

שאלות טענות מענות... נראה איך אפשר לעזור.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...