php / שיעור 2 / הוסיפו כמה טפסים

שיעור 2


הוסיפו כמה טפסים


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

קודם כל בואו ניצור עמוד עם טופס פשוט.


<html>

<body>

<form method="post" action="<?php echo $PHP_SELF?>">

First name:<input type="Text" name="first"><br>

Last name:<input type="Text" name="last"><br>

Address:<input type="Text" name="address"><br>

Position:<input type="Text" name="position"><br>

<input type="Submit" name="submit" value="Enter information">

</form>

</body>

</html>

שימו לב לשימוש ב-PHP_SELF$ שוב. כפי שאמרתי בשיעור 1, אתם יכולים לשים PHP בכל מקום בתוך עמוד HTML. שימו לב גם שכל מרכיב בטופס תואם לשם שדה במאגר המידע. זה לא מחויב, זה פשוט מומלץ כדי שתוכלו לשוטט בקוד שלכם ביתר קלות מאוחר יותר.

ראו שנתתי לכפתור ה"submit" מאפיין name. עשיתי זאת כדי שאוכל לבדוק את קיומו של משתנה בשם submit$. בצורה הזאת, כאשר העמוד נקרא לעלות שוב, אני אדע אם מישהו כבר עשה שימוש בטופס.

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

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


<html>


<body>

<?php

if ($submit) {

// process form

while (list($name, $value) = each($HTTP_POST_VARS)) {

echo "$name = $value<br>\n";

}

} else{

// display form

?>

<form method="post" action="<?php echo $PHP_SELF?>">

First name:<input type="Text" name="first"><br>

Last name:<input type="Text" name="last"><br>

Address:<input type="Text" name="address"><br>

Position:<input type="Text" name="position"><br>

<input type="Submit" name="submit" value="Enter information">

</form>

<?php

} // end if

?>

</body>

</html>

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

<html>


<body>

<?php

if ($submit) {

// process form

$db = mysql_connect("localhost", "root");

mysql_select_db("mydb",$db);

$sql = "INSERT INTO employees (first,last,address,position)
VALUES ('$first','$last','$address','$position')";

$result = mysql_query($sql);

echo "Thank you! Information entered.\n";

} else{

// display form

?>

<form method="post" action="<?php echo $PHP_SELF?>">

First name:<input type="Text" name="first"><br>

Last name:<input type="Text" name="last"><br>

Address:<input type="Text" name="address"><br>

Position:<input type="Text" name="position"><br>

<input type="Submit" name="submit" value="Enter information">

</form>

<?php

} // end if

?>

</body>

</html>

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

אל תדאגו. נגיע גם לזה.



עמוד הבא: הפכו את הטפסים שלכם לחכמים יותר>>




הקדמה
שעור 1
הקדמה PHP ו-MySQL
התקנת MySQL
התקנת PHP
הסקריפט הראשון שלכם
הטענת מאגר המידע
שליפה מחדש
שעור 2
לולאות
השארו מיודעים
קישור חכם
הוסיפו כמה טפסים >
הפיכת טפסים לחכמים
כולם יחד
שעור 3
מקום לכל דבר
אימות פשוט
אמות לא כל כך פשוט
פונקציות
עדות לאום