نقل قول: راهنمایی در مورد فرم ها
نقل قول:
اول میخواستم بدونم این تکه کد اطلاعات رو به کجا میفرسته و یا این تابع چیکار میکنه
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
به همین صفحه
نقل قول:
حالا من وقتی به جای کد پی اچ پی ادرس یک صفحه میدم بدون چک کردن ورودی ها و دادن ارور مستقیم به اون صفحه ارجاع میشه باید چیکار کنم که ابتدا ورودی ها چک و در صورت درست بودن ارجاع داده شود؟/
کد php که قبل از فرم نوشته شده رو بزار تو اون صفحه
نقل قول: راهنمایی در مورد فرم ها
نقل قول:
نوشته شده توسط
bardya918
سلام خدمت دوستان گل یه سوال کوچیک داشتم ممنون میشم راهنمایی کنید
من یه فرم رو دانلود کردم حالا میخوام یک سری ویرایش در اون بدم
این کل کد هست
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check if URL address syntax is valid (this regular expression also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name" value="<?php echo $name;?>">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail: <input type="text" name="email" value="<?php echo $email;?>">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website: <input type="text" name="website" value="<?php echo $website;?>">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
<br><br>
Gender:
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female
<input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
اول میخواستم بدونم این تکه کد اطلاعات رو به کجا میفرسته و یا این تابع چیکار میکنه
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
حالا من وقتی به جای کد پی اچ پی ادرس یک صفحه میدم بدون چک کردن ورودی ها و دادن ارور مستقیم به اون صفحه ارجاع میشه باید چیکار کنم که ابتدا ورودی ها چک و در صورت درست بودن ارجاع داده شود؟
سلام . این قسمت از کدت رو از داخل این صفحه حذف کن و کپیش کن تو یه صفحه ی دیگه مثلا به اسم p.php :
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check if URL address syntax is valid (this regular expression also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
بعد که اینکارو کردی این خط از کدت رو :
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
به صورت پایین تغییر بده :
<form method="post" action="p.php">
فقط توجه داشته باش که p.php که جلوی action نوشته شده باید مطابق با اسم صفحه ای باشه که گفتم کدای حذف شده ی این صفحه رو باید کپی کنی توش
موفق باشی
1 ضمیمه
نقل قول: راهنمایی در مورد فرم ها
خیلی ممنون بابت پاسخگویی من کد رو به همون صفحه انتقال دادم ولی باز این مشکل وجود داره که بدون این که ورودی ها چک شود به صفحه دوم منتقل میشه.
من کد ها رو براتون ضمیمه می کنم ممنون میشم یه نگاه بهشون بندازین و بگین که مشکل از چی هستش و در کجا اشتباه کردم