-
March 20th, 2017, 10:37
#1
متد post
سلام دوستان
من تازه php یاد میگیرم و از متد post میخوام برای ارسال داده استفاده کنم خطای Notice: Undefined index: username in رو میده البته از متد get استفاده میکنم درس کار میکنه الان موندم برای استفاده از متدpost چه کار کنم اینم بگم از isset هم استفاده کردم که این صرفا خطا رو رفع میکنه و داده نمیفرسته
لطفا منو راهنمایی کنین ممنون
-
-
March 20th, 2017 10:37
# ADS
-
March 20th, 2017, 11:48
#2
عضو انجمن
پاسخ : متد post
سلام، اینپوت برای یوزرنیم ایجاد کردید داخل فرمتون؟
کد HTML:
<input type="text" name="username">
-
تعداد تشکر ها از mojtaba05 به دلیل پست مفید
-
March 20th, 2017, 20:40
#3
پاسخ : متد post

نوشته اصلی توسط
mojtaba05
سلام، اینپوت برای یوزرنیم ایجاد کردید داخل فرمتون؟
کد HTML:
<input type="text" name="username">
بله استفاده کردم باgetجواب میده ولی باpostجواب نمیده
<
کد HTML:
form method="post" action="index1.php" class="login">
<p>
<label for="login">Username:</label>
<input type="text" name="login" id="login" value="John Appleseed">
</p>
<p>
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="4815162342">
</p>
<p class="login-submit">
<input type="submit" name="submit" value="Login"> </p>
</form>
[HTML][PHP]<?php
if(isset($_POST['login'])){$login=$_POST['login'];}
if(isset($_POST['password'])){$password=$_POST['password'];
echo $password;}[/PHP]
[/HTML]
البته این برا فرم لاگین است که برا همین هم همون خطا رو میده
ویرایش توسط Nader_Hey : March 20th, 2017 در ساعت 20:59
-
-
March 20th, 2017, 22:22
#4
عضو انجمن
پاسخ : متد post

نوشته اصلی توسط
Nader_Hey
بله استفاده کردم باgetجواب میده ولی باpostجواب نمیده
<
کد HTML:
form method="post" action="index1.php" class="login">
<p>
<label for="login">Username:</label>
<input type="text" name="login" id="login" value="John Appleseed">
</p>
<p>
<label for="password">Password:</label>
<input type="password" name="password" id="password" value="4815162342">
</p>
<p class="login-submit">
<input type="submit" name="submit" value="Login"> </p>
</form>
[HTML][PHP]<?php
if(isset($_POST['login'])){$login=$_POST['login'];}
if(isset($_POST['password'])){$password=$_POST['password'];
echo $password;}[/PHP]
[/HTML]
البته این برا فرم لاگین است که برا همین هم همون خطا رو میده
خطائی که در بالا معرفی کردین مربوط به عدم وجود یوزر نیم
و فرمی که در این نقل قول من گذاشتم شما فیلد یوزرنیم رو معرفی نکردین
بهتره از روش استاندارد استفاده کنید
کد PHP:
<!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>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
پروردگارا مرا فهم ده:: تا متوقع نباشم. دنیا و مردمانش باید مطابق میل من رفتار کنند.
-
-
March 20th, 2017, 23:28
#5
عضو انجمن
پاسخ : متد post

نوشته اصلی توسط
Nader_Hey
سلام دوستان
من تازه php یاد میگیرم و از متد post میخوام برای ارسال داده استفاده کنم خطای Notice: Undefined index: username in رو میده البته از متد get استفاده میکنم درس کار میکنه الان موندم برای استفاده از متدpost چه کار کنم اینم بگم از isset هم استفاده کردم که این صرفا خطا رو رفع میکنه و داده نمیفرسته
لطفا منو راهنمایی کنین ممنون
درود، این خطا رو زمانی میگیرید که یا در فرمتون نام فیلد ورودی رو username نگذاشته باشید (به هر حال از فرم ارسالی با نام username نمیشه) یا مقداری برای این متغیر ست نمیشه ولی راهکار:
شما همیشه باید برای بررسی موجود بودن یک مقدار برای متغیر باید از isset استفاده کنید در غیر اینصورت خطا می گیرید.
بامهر
-
-
March 21st, 2017, 00:16
#6
پاسخ : متد post
کد:
<html>
<body>
<?php
$user=$_POST['username'];
$pass=$_POST['password'];
echo "$user";
?><form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "username" />
pass: <input type = "password" name = "password" />
<input type = "submit" name="sub"/>
</form>
</body>
</html>
کل کد ک نوشتم اینه اینو وقتی باget اجرا میکنم چاپ میکنه در خروجی ولی با post همون خطا رو میده با issetهم امتحان کردم ولی فقط خطا رو مخفی میکنه و در خروجی چیزی نشان نمیده
- - - Updated - - -
- - - Updated - - -

نوشته اصلی توسط
hegza
خطائی که در بالا معرفی کردین مربوط به عدم وجود یوزر نیم
و فرمی که در این نقل قول من گذاشتم شما فیلد یوزرنیم رو معرفی نکردین
بهتره از روش استاندارد استفاده کنید
کد PHP:
<!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>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
دستتون درد نکنه ولی من از این کد هم استفاده کردم همون روش isset هست ک خطا رو مخفی میکنه تو سیستم من همین کد رو ک شما دادین رو کپی کردم ولی جواب نداد ینی در خروچی هیچ چیزی نمایش نمیده من قبلا هم ازisset استفاده کردم مثل این در خروجی چیزی نشان نداد
ویرایش توسط Nader_Hey : March 21st, 2017 در ساعت 00:34
-
-
March 21st, 2017, 01:22
#7
عضو انجمن
پاسخ : متد post

نوشته اصلی توسط
Nader_Hey
کد:
<html>
<body>
<?php
$user=$_POST['username'];
$pass=$_POST['password'];
echo "$user";
?><form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "username" />
pass: <input type = "password" name = "password" />
<input type = "submit" name="sub"/>
</form>
</body>
</html>
کل کد ک نوشتم اینه اینو وقتی باget اجرا میکنم چاپ میکنه در خروجی ولی با post همون خطا رو میده با issetهم امتحان کردم ولی فقط خطا رو مخفی میکنه و در خروجی چیزی نشان نمیده
- - - Updated - - -
- - - Updated - - -
دستتون درد نکنه ولی من از این کد هم استفاده کردم همون روش isset هست ک خطا رو مخفی میکنه تو سیستم من همین کد رو ک شما دادین رو کپی کردم ولی جواب نداد ینی در خروچی هیچ چیزی نمایش نمیده من قبلا هم ازisset استفاده کردم مثل این در خروجی چیزی نشان نداد
بفرمائید اینم کد
کد PHP:
<html>
<body>
<?php
if (isset($_POST['sub'])){
$user=$_POST['username'];
$pass=$_POST['password'];
echo "$user";
}
?>
<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
Name: <input type = "text" name = "username" />
pass: <input type = "password" name = "password" />
<input type = "submit" name="sub"/>
</form>
</body>
</html>
شما اکشنتون کلا غلط بود
بنا بگیریم درست هم بود شما بدون اکو کردن چطور میخواستید اکشن رو در html اعمال کنید؟
ضمنا در اکشن بهتره به شکل زیر بنویسید تا نتونن صفحه شما رو دستکاری کنند
کد PHP:
<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "post">
ویرایش توسط hegza : March 21st, 2017 در ساعت 01:23
پروردگارا مرا فهم ده:: تا متوقع نباشم. دنیا و مردمانش باید مطابق میل من رفتار کنند.
-
-
March 21st, 2017, 09:51
#8
پاسخ : متد post

نوشته اصلی توسط
hegza
بفرمائید اینم کد
کد PHP:
<html>
<body>
<?php
if (isset($_POST['sub'])){
$user=$_POST['username'];
$pass=$_POST['password'];
echo "$user";
}
?>
<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
Name: <input type = "text" name = "username" />
pass: <input type = "password" name = "password" />
<input type = "submit" name="sub"/>
</form>
</body>
</html>
شما اکشنتون کلا غلط بود
بنا بگیریم درست هم بود شما بدون اکو کردن چطور میخواستید اکشن رو در html اعمال کنید؟
ضمنا در اکشن بهتره به شکل زیر بنویسید تا نتونن صفحه شما رو دستکاری کنند
کد PHP:
<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "post">
این کددرسیستم شماکارمیکنه یعنی اکو کرد یوزر رو؟
من این کدی ک دادین رو در phpstormکپی پیست کردم اون خطا رو نمیده ولی هیچی هم اکو نمیکنه صفحه کاملا خالی
آیا این مشکل میتونه از کروم یا براوزر باشه یا اینکه از ورژن php باشه؟واقعا دارم کلافه میشم الان4روزه تو این گیر کردم تمام سایتها رو هم گشتم ولی هیچیزی دستگیرم نشد
-
-
March 21st, 2017, 15:08
#9
عضو انجمن
پاسخ : متد post

نوشته اصلی توسط
Nader_Hey
این کددرسیستم شماکارمیکنه یعنی اکو کرد یوزر رو؟
من این کدی ک دادین رو در phpstormکپی پیست کردم اون خطا رو نمیده ولی هیچی هم اکو نمیکنه صفحه کاملا خالی
آیا این مشکل میتونه از کروم یا براوزر باشه یا اینکه از ورژن php باشه؟واقعا دارم کلافه میشم الان4روزه تو این گیر کردم تمام سایتها رو هم گشتم ولی هیچیزی دستگیرم نشد
سلام
بله جواب میده + بنده هم phpstorm دارم
لوکالت چیه؟ ومپ زمپ ؟
ارور لاگهاشونو نگاه کن
پروردگارا مرا فهم ده:: تا متوقع نباشم. دنیا و مردمانش باید مطابق میل من رفتار کنند.
-
-
March 21st, 2017, 19:03
#10
پاسخ : متد post

نوشته اصلی توسط
hegza
سلام
بله جواب میده + بنده هم phpstorm دارم
لوکالت چیه؟ ومپ زمپ ؟
ارور لاگهاشونو نگاه کن
از زمپ استفاده میکنم به احتمال قوی از این باشه ممنون بابت راهنماییاتون
-