PDA

View Full Version : راهنمایی در مورد فرم ها



bardya918
یک شنبه 12 دی 1395, 00:37 صبح
سلام خدمت دوستان گل یه سوال کوچیک داشتم ممنون میشم راهنمایی کنید
من یه فرم رو دانلود کردم حالا میخوام یک سری ویرایش در اون بدم
این کل کد هست

<!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"]);?>

حالا من وقتی به جای کد پی اچ پی ادرس یک صفحه میدم بدون چک کردن ورودی ها و دادن ارور مستقیم به اون صفحه ارجاع میشه باید چیکار کنم که ابتدا ورودی ها چک و در صورت درست بودن ارجاع داده شود؟

numberone1
یک شنبه 12 دی 1395, 14:03 عصر
اول میخواستم بدونم این تکه کد اطلاعات رو به کجا میفرسته و یا این تابع چیکار میکنه
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>




به همین صفحه

حالا من وقتی به جای کد پی اچ پی ادرس یک صفحه میدم بدون چک کردن ورودی ها و دادن ارور مستقیم به اون صفحه ارجاع میشه باید چیکار کنم که ابتدا ورودی ها چک و در صورت درست بودن ارجاع داده شود؟/
کد php که قبل از فرم نوشته شده رو بزار تو اون صفحه

pouyaaaa20
دوشنبه 13 دی 1395, 14:46 عصر
سلام خدمت دوستان گل یه سوال کوچیک داشتم ممنون میشم راهنمایی کنید
من یه فرم رو دانلود کردم حالا میخوام یک سری ویرایش در اون بدم
این کل کد هست

<!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 نوشته شده باید مطابق با اسم صفحه ای باشه که گفتم کدای حذف شده ی این صفحه رو باید کپی کنی توش

موفق باشی

bardya918
پنج شنبه 16 دی 1395, 20:20 عصر
خیلی ممنون بابت پاسخگویی من کد رو به همون صفحه انتقال دادم ولی باز این مشکل وجود داره که بدون این که ورودی ها چک شود به صفحه دوم منتقل میشه.
من کد ها رو براتون ضمیمه می کنم ممنون میشم یه نگاه بهشون بندازین و بگین که مشکل از چی هستش و در کجا اشتباه کردم