PDA

View Full Version : سوال: کلیک کردن دکمه (حل شد)



neda_1367_sh
چهارشنبه 10 خرداد 1391, 21:25 عصر
سلام ببخشید من تازه امروز php رو شروع کردم میخوام 1 صفحه log in داشته باشم اما نمیدونم if مربوط به صحت userوpass رو کجا بنویسم؟؟؟؟؟؟؟؟:خجالت::خجال ::خجالت::خجالت::خجالت:
F1:ناراحت:

farhadfery
چهارشنبه 10 خرداد 1391, 21:37 عصر
خوش امدید به php.
با گوگل دوست باشید و ازش کمک بگیرید وگرنه از ما نیستید!
یه بخشی از کدتون را بگذارید تا بهتر کمک بکنیم.

شما فرم را که سابمیت کردید نام و پسورد را بگیرید. یعنی:

$username = (isset($_Post['username]))? $_Post['username'] : '';

و بعد بگید اگر username یا pass خالی هست پیغام خطا بده و گرنه برای چک کردن صحت نام و رمز بره و ....

MMSHFE
پنج شنبه 11 خرداد 1391, 01:04 صبح
دوست عزیز، اگه به ساختار HTML آشنایی کافی داشته باشین، قطعاً میدونید که هر فرم، یک خاصیت action داره که مشخص میکنه اطلاعات برای کدوم صفحه قراره ارسال بشه. شرطهای لازم برای بررسی مقادیر واردشده توسط کاربر رو باید توی همون صفحه یعنی action فرمتون بنویسید. مثال:
فایل login.html :


<form action="result.php" method="post">
Username: <input name="user" type="text"/><br/>
Password: <input name="pass" type="password"/><br/>
<input type="submit" value="Login"/>
</form>

و این هم صفحه مقصد فرم (یعنی result.php) :


<?php
if(isset($_POST['user'], $_POST['pass'])) {
if(strtolower($_POST['user']) == 'ali' && $_POST['pass'] == 'abcd') {
echo '<p>Welcome</p>'.PHP_EOL;
}
else {
header('Location: login.html');
exit();
}
}
else {
header('Location: login.html');
exit();
}
?>

موفق باشید.

رضا قربانی
پنج شنبه 11 خرداد 1391, 01:17 صبح
سلام ببخشید من تازه امروز php رو شروع کردم میخوام 1 صفحه log in داشته باشم اما نمیدونم if مربوط به صحت userوpass رو کجا بنویسم؟؟؟؟؟؟؟؟:خجالت::خجال ::خجالت::خجالت::خجالت:
F1:ناراحت:
خوش اومدی عزیزم . کار خوبی کردی که اومدی . مرد اونه که تا آخرش باشه

پ ن : لامصب چقدر دست زیاد شده:بامزه:

neda_1367_sh
شنبه 13 خرداد 1391, 19:09 عصر
دوست عزیز، اگه به ساختار HTML آشنایی کافی داشته باشین، قطعاً میدونید که هر فرم، یک خاصیت action داره که مشخص میکنه اطلاعات برای کدوم صفحه قراره ارسال بشه. شرطهای لازم برای بررسی مقادیر واردشده توسط کاربر رو باید توی همون صفحه یعنی action فرمتون بنویسید. مثال:
فایل login.html :


<form action="result.php" method="post">
Username: <input name="user" type="text"/><br/>
Password: <input name="pass" type="password"/><br/>
<input type="submit" value="Login"/>
</form>

و این هم صفحه مقصد فرم (یعنی result.php) :


<?php
if(isset($_POST['user'], $_POST['pass'])) {
if(strtolower($_POST['user']) == 'ali' && $_POST['pass'] == 'abcd') {
echo '<p>Welcome</p>'.PHP_EOL;
}
else {
header('Location: login.html');
exit();
}
}
else {
header('Location: login.html');
exit();
}
?>

موفق باشید.

اول تشکر از پاسختون
حالا اگه 2 تا دکمه داشته باشم و بخوام هر کدوم کاری انجام بدن باید چیکار کنم؟
1 سوال دیگه اگه بخوام مقدار چند تا text رو با استفاده از یک آرایه مقدار دهی کنم باید چیکار کنم؟

neda_1367_sh
شنبه 13 خرداد 1391, 20:02 عصر
ببخشید اشتباه گفتم میخوام آرایه رو با استفاده از مقادیر text ها مقدار دهی کنم:اشتباه:
مثلا وقتی کاربر کلیک کرد مقادیر text ها رو داخل آرایه بریزه
در ضمن قسمت 4 از تاپیک
آموزش مرحله به مرحله PHP از پايه با مثال

که مربوط به کنترل هاست رو خوندم اما در این مورد چیزی ننوشته بودید.
ممنون از آموزشای عالیتون:تشویق:

persian-boy
شنبه 13 خرداد 1391, 20:13 عصر
مثلا وقتی کاربر کلیک کرد مقادیر text ها رو داخل آرایه بریزه

سلام

مقادیری که ارسال میشن به صورت آرایه هستن دوست عزیز

MMSHFE
شنبه 13 خرداد 1391, 20:18 عصر
این کد HTML رو نگاه کنید:


<form action="result.php" method="post">
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
<input name="action" type="submit" value="Action 1"/>
<input name="action" type="submit" value="Action 2"/>
</form>

همونطور که میبینید، پنج کادر متن داره که اسم همه اونها []texts هست. بنابراین، توی صفحه مقصد یک آرایه به نام ['POST['texts_$ ساخته میشه که هر خونه از اون، محتوای یکی از کادرهای متن رو در بر خواهد داشت. همچنین دو دکمه submit داریم که هم اسم هستن (action) ولی value اونها فرق میکنه. کافیه توی صفحه مقصد ببینیم ['POST['action_$ برابر با 'Value 1' هست یا 'Value 2' و اینطوری میفهمیم روی کدوم دکمه کلیک شده.
مثالی از صفحه مقصد فرم (صرفاً جهت متوجه شدن روش کار) :


if(isset($_POST['texts'], $_POST['action'])) {
var_dump($_POST['texts']);
echo '<p>'.$_POST['action'].'</p>'.PHP_EOL;
}

موفق باشید.

neda_1367_sh
شنبه 13 خرداد 1391, 23:47 عصر
این کد HTML رو نگاه کنید:


<form action="result.php" method="post">
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
<input name="action" type="submit" value="Action 1"/>
<input name="action" type="submit" value="Action 2"/>
</form>
همونطور که میبینید، پنج کادر متن داره که اسم همه اونها []texts هست. بنابراین، توی صفحه مقصد یک آرایه به نام ['POST['texts_$ ساخته میشه که هر خونه از اون، محتوای یکی از کادرهای متن رو در بر خواهد داشت. همچنین دو دکمه submit داریم که هم اسم هستن (action) ولی value اونها فرق میکنه. کافیه توی صفحه مقصد ببینیم ['POST['action_$ برابر با 'Value 1' هست یا 'Value 2' و اینطوری میفهمیم روی کدوم دکمه کلیک شده.
مثالی از صفحه مقصد فرم (صرفاً جهت متوجه شدن روش کار) :


if(isset($_POST['texts'], $_POST['action'])) {
var_dump($_POST['texts']);
echo '<p>'.$_POST['action'].'</p>'.PHP_EOL;
}

موفق باشید.
اصلا نمیشه من میخوام با کلیک 1دکمه آرایه رو sort کنه و با دیگری میانگینشو نشون بده.
اینم صفحه result

<html>
<head>
<title>m</title>
</head>
<body>


<?php
if(isset($_POST['texts'], $_POST['action1'])) {
if(strtolower($_POST['texts']!= null)) {
echo asort($texts);
foreach($texts as $key=> $val)
{
print"$val<br>";
}
}
else {
header('Location:1.php');
exit();
}
}
else {

header('Location:1.php');
exit();

}

if(isset($_POST['texts'], $_POST['action2'])) {
if(strtolower($_POST['texts']!= null)) {
$miangin=$number[0]+$number[1]+$number[2]+$number[3]/4;
print"$miangin";
print"$number[0]";
}
else {
header('Location:1.php');
exit();
}
}
else {

header('Location:1.php');
exit();

}
?>


</form>
</body>
</html>

مشکلم اینه که نمیدونم هر چیزی رو کجا بنویسم :متعجب::گیج::متعجب:

MMSHFE
شنبه 13 خرداد 1391, 23:55 عصر
خوب نباید هم بشه چون کدتون یکم ایراد جزئی داره. اینو امتحان کنید:


<html>
<head>
<title>m</title>
</head>
<body>
<?php
if(isset($_POST['texts'], $_POST['action'])) {
if(is_array($_POST['texts'])) {
if($_POST['action'] == 'Action 1') {
asort($_POST['texts']);
foreach($_POST['texts'] as $val) {
echo '<p>'.$val.'</p>'.PHP_EOL;
}
}
else {
$average = array_sum($_POST['texts']) / count($_POST['texts']);
echo '<p>'.$average.'</p>'.PHP_EOL;
}
}
else {
header('Location: 1.php');
exit();
}
}
else {
header('Location:1.php');
exit();
}
?>
</body>
</html>

موفق باشید.

neda_1367_sh
یک شنبه 14 خرداد 1391, 00:05 صبح
خوب نباید هم بشه چون کدتون یکم ایراد جزئی داره. اینو امتحان کنید:


<html>
<head>
<title>m</title>
</head>
<body>
<?php
if(isset($_POST['texts'], $_POST['action'])) {
if(is_array($_POST['texts'])) {
if($_POST['action'] == 'Action 1') {
asort($_POST['texts']);
foreach($_POST['texts'] as $val) {
echo '<p>'.$val.'</p>'.PHP_EOL;
}
}
else {
$average = array_sum($_POST['texts']) / count($_POST['texts']);
echo '<p>'.$average.'</p>'.PHP_EOL;
}
}
else {
header('Location: 1.php');
exit();
}
}
else {
header('Location:1.php');
exit();
}
?>
</body>
</html>

موفق باشید.
اینم نشد!
texts آرایست
نباید اینجوری نوشته شه []texts

MMSHFE
یک شنبه 14 خرداد 1391, 00:08 صبح
نه همینجوری درسته. کد کامل رو میشه بگذارین؟ فرم و صفحه مقصدش منظورمه.

neda_1367_sh
یک شنبه 14 خرداد 1391, 00:16 صبح
نه همینجوری درسته. کد کامل رو میشه بگذارین؟ فرم و صفحه مقصدش منظورمه.
کلا 2 تا صفحه داره یکی result که همینه یکی هم 1 که اینه

<html>
<body>
<form action="result.php" method="post">
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
<input name="action1" type="submit" value="action 1"/>
<input name="action2" type="submit" value="action 2"/>
</form>
</body>
</html>

MMSHFE
یک شنبه 14 خرداد 1391, 00:20 صبح
خوب شما value دکمه ها رو با حروف کوچک نوشتین و اونطرف کدی که من دادم با حرف A بزرگ چک میکنه. ازطرفی مگه من نگفتم name دو دکمه باید مثل هم باشه؟! به نظرتون باید کد کار کنه؟

MMSHFE
یک شنبه 14 خرداد 1391, 00:23 صبح
فرم:


<html>
<body>
<form action="result.php" method="post">
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
<input name="action" type="submit" value="action 1"/>
<input name="action" type="submit" value="action 2"/>
</form>
</body>
</html>

صفحه مقصد فرم:


<html>
<head>
<title>m</title>
</head>
<body>
<?php
if(isset($_POST['texts'], $_POST['action'])) {
if(is_array($_POST['texts'])) {
if($_POST['action'] == 'action 1') {
asort($_POST['texts']);
foreach($_POST['texts'] as $val) {
echo '<p>'.$val.'</p>'.PHP_EOL;
}
}
else {
$average = array_sum($_POST['texts']) / count($_POST['texts']);
echo '<p>'.$average.'</p>'.PHP_EOL;
}
}
else {
header('Location: 1.php');
exit();
}
}
else {
header('Location:1.php');
exit();
}
?>
</body>
</html>

موفق باشید.

neda_1367_sh
یک شنبه 14 خرداد 1391, 00:29 صبح
فرم:


<html>
<body>
<form action="result.php" method="post">
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
Text: <input name="texts[]" type="text"/><br/>
<input name="action" type="submit" value="action 1"/>
<input name="action" type="submit" value="action 2"/>
</form>
</body>
</html>

صفحه مقصد فرم:


<html>
<head>
<title>m</title>
</head>
<body>
<?php
if(isset($_POST['texts'], $_POST['action'])) {
if(is_array($_POST['texts'])) {
if($_POST['action'] == 'action 1') {
asort($_POST['texts']);
foreach($_POST['texts'] as $val) {
echo '<p>'.$val.'</p>'.PHP_EOL;
}
}
else {
$average = array_sum($_POST['texts']) / count($_POST['texts']);
echo '<p>'.$average.'</p>'.PHP_EOL;
}
}
else {
header('Location: 1.php');
exit();
}
}
else {
header('Location:1.php');
exit();
}
?>
</body>
</html>

موفق باشید.

خیلی ممنون درست شد لطف کردید.