PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : متد post



Nader_Hey
March 20th, 2017, 10:37
سلام دوستان
من تازه php یاد میگیرم و از متد post میخوام برای ارسال داده استفاده کنم خطای Notice: Undefined index: username in رو میده البته از متد get استفاده میکنم درس کار میکنه الان موندم برای استفاده از متدpost چه کار کنم اینم بگم از isset هم استفاده کردم که این صرفا خطا رو رفع میکنه و داده نمیفرسته
لطفا منو راهنمایی کنین ممنون

mojtaba05
March 20th, 2017, 11:48
سلام، اینپوت برای یوزرنیم ایجاد کردید داخل فرمتون؟

<input type="text" name="username">

Nader_Hey
March 20th, 2017, 20:40
سلام، اینپوت برای یوزرنیم ایجاد کردید داخل فرمتون؟

<input type="text" name="username">

بله استفاده کردم باgetجواب میده ولی باpostجواب نمیده

<
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>




<?php


if(isset($_POST['login'])){$login=$_POST['login'];}
if(isset($_POST['password'])){$password=$_POST['password'];
echo $password;}


?>

البته این برا فرم لاگین است که برا همین هم همون خطا رو میده

hegza
March 20th, 2017, 22:22
بله استفاده کردم باgetجواب میده ولی باpostجواب نمیده

<
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>




<?php


if(isset($_POST['login'])){$login=$_POST['login'];}
if(isset($_POST['password'])){$password=$_POST['password'];
echo $password;}



?>

البته این برا فرم لاگین است که برا همین هم همون خطا رو میده

خطائی که در بالا معرفی کردین مربوط به عدم وجود یوزر نیم
و فرمی که در این نقل قول من گذاشتم شما فیلد یوزرنیم رو معرفی نکردین

بهتره از روش استاندارد استفاده کنید


<!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>

sitetheme
March 20th, 2017, 23:28
سلام دوستان
من تازه php یاد میگیرم و از متد post میخوام برای ارسال داده استفاده کنم خطای Notice: Undefined index: username in رو میده البته از متد get استفاده میکنم درس کار میکنه الان موندم برای استفاده از متدpost چه کار کنم اینم بگم از isset هم استفاده کردم که این صرفا خطا رو رفع میکنه و داده نمیفرسته
لطفا منو راهنمایی کنین ممنون
درود، این خطا رو زمانی میگیرید که یا در فرمتون نام فیلد ورودی رو username نگذاشته باشید (به هر حال از فرم ارسالی با نام username نمیشه) یا مقداری برای این متغیر ست نمیشه ولی راهکار:
شما همیشه باید برای بررسی موجود بودن یک مقدار برای متغیر باید از isset استفاده کنید در غیر اینصورت خطا می گیرید.
بامهر

Nader_Hey
March 21st, 2017, 00:16
<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 - - -


خطائی که در بالا معرفی کردین مربوط به عدم وجود یوزر نیم
و فرمی که در این نقل قول من گذاشتم شما فیلد یوزرنیم رو معرفی نکردین

بهتره از روش استاندارد استفاده کنید


<!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 استفاده کردم مثل این در خروجی چیزی نشان نداد

hegza
March 21st, 2017, 01:22
<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 استفاده کردم مثل این در خروجی چیزی نشان نداد

بفرمائید اینم کد


<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 اعمال کنید؟
ضمنا در اکشن بهتره به شکل زیر بنویسید تا نتونن صفحه شما رو دستکاری کنند


<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "post">

Nader_Hey
March 21st, 2017, 09:51
بفرمائید اینم کد


<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 اعمال کنید؟
ضمنا در اکشن بهتره به شکل زیر بنویسید تا نتونن صفحه شما رو دستکاری کنند


<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "post">




این کددرسیستم شماکارمیکنه یعنی اکو کرد یوزر رو؟
من این کدی ک دادین رو در phpstormکپی پیست کردم اون خطا رو نمیده ولی هیچی هم اکو نمیکنه صفحه کاملا خالی
آیا این مشکل میتونه از کروم یا براوزر باشه یا اینکه از ورژن php باشه؟واقعا دارم کلافه میشم الان4روزه تو این گیر کردم تمام سایتها رو هم گشتم ولی هیچیزی دستگیرم نشد

hegza
March 21st, 2017, 15:08
این کددرسیستم شماکارمیکنه یعنی اکو کرد یوزر رو؟
من این کدی ک دادین رو در phpstormکپی پیست کردم اون خطا رو نمیده ولی هیچی هم اکو نمیکنه صفحه کاملا خالی
آیا این مشکل میتونه از کروم یا براوزر باشه یا اینکه از ورژن php باشه؟واقعا دارم کلافه میشم الان4روزه تو این گیر کردم تمام سایتها رو هم گشتم ولی هیچیزی دستگیرم نشد
سلام
بله جواب میده + بنده هم phpstorm دارم
لوکالت چیه؟ ومپ زمپ ؟
ارور لاگهاشونو نگاه کن

Nader_Hey
March 21st, 2017, 19:03
سلام
بله جواب میده + بنده هم phpstorm دارم
لوکالت چیه؟ ومپ زمپ ؟
ارور لاگهاشونو نگاه کن

از زمپ استفاده میکنم به احتمال قوی از این باشه ممنون بابت راهنماییاتون