PDA

View Full Version : سوال: طراحی فرم لاگینی که اکشن ان در خود صفحه باشه



amin7x
جمعه 24 شهریور 1391, 00:46 صبح
سلام

من میخوام یک فرم لاگین طراحی کنم که اکشن اون توی خود صفحه باشه.

منظورم این است که به صفحه چک فرستاده نشه تا ببینه یوزر و پس درست است یا نه.

میخوام توی خود همون صفحه اون عملیات انجام بشه.

ممنونم میشم راهنمایی کنید.

css-man
جمعه 24 شهریور 1391, 03:49 صبح
اکشن فرمتو خالی بزار

متد هم پست باشه

مثل این




<form action="" method="post" id="frm">
<label>جستجو</label>
<input type="text" name="search" class="txt" />
<input type="submit" name="submit" value="Go" class="go" />
</form>

amin7x
جمعه 24 شهریور 1391, 04:06 صبح
اکشن فرمتو خالی بزار

متد هم پست باشه

مثل این




<form action="" method="post" id="frm">
<label>جستجو</label>
<input type="text" name="search" class="txt" />
<input type="submit" name="submit" value="Go" class="go" />
</form>



من این کارو کردم.

ولی اگه بخوام کد PHP زیرش بنویسم بهم اخطار میده!!!!

مثلا این کد فرم من :



<form name="loginform" action="chekuser.php" method="post">
<p>
<label for="login">نام کاربری<br />
<input type="text" name="log" class="input" value="" size="20" tabindex="10" /></label>
</p>
<p>
<label for="pass">رمزعبور<br />
<input type="password" name="pwd" class="input" value="" size="20" tabindex="20" /></label>
</p>
<p class="submit">
<input type="submit" name="submit" class="button-primary" value="ورود" tabindex="100" />
</p>
</form>



و این کد صفحه چک من :




<?php
include("../config.php");
$conect=mysql_connect("$dbhostt","$dbuser","$dbpass");
mysql_select_db("$dbname",$conect);
$user=$_POST['log'];
$pass=$_POST['pwd'];
$select="select * from users where username='$user' and password='$pass'";
$res=mysql_query($select,$conect);
$count=mysql_num_rows($res);
// Chek User or Admin
$sql="select * from users";
$res2=mysql_query($sql,$conect);
$r=mysql_fetch_array($res2);
if($count==1){
if($r['prim']=="client"){
session_start();
$_SESSION['user']=$user;
header("location:../index.php");
}
else{
echo "Error!!";
}
}
?>


مشکلاتی در کد هست ولی بیخیال ، میخوام بدونم چه طوری اینارو توی یک صفحه جا بدم؟

ممنون

ravand
جمعه 24 شهریور 1391, 08:42 صبح
شما باید برای دکمه ی submit نامی بذاری به این شکل:

<input name="submitted" type="submit" value="ثبت"/>
بعد برای کدهای php هم به این شکل عمل کنی:


if(isset($_POST['submitted'])) {
کل کدهای php
}
با این روش وقتی روی دکمه ی ارسال کلیک میشه فرم ارسال میشه و تا وقتی که شما روی دکمه کلیک نکردی فرم ارسال نمیشه.

css-man
جمعه 24 شهریور 1391, 11:57 صبح
من این کارو کردم.

ولی اگه بخوام کد PHP زیرش بنویسم بهم اخطار میده!!!!

مثلا این کد فرم من :



<form name="loginform" action="chekuser.php" method="post">
<p>
<label for="login">نام کاربری<br />
<input type="text" name="log" class="input" value="" size="20" tabindex="10" /></label>
</p>
<p>
<label for="pass">رمزعبور<br />
<input type="password" name="pwd" class="input" value="" size="20" tabindex="20" /></label>
</p>
<p class="submit">
<input type="submit" name="submit" class="button-primary" value="ورود" tabindex="100" />
</p>
</form>



و این کد صفحه چک من :




<?php
include("../config.php");
$conect=mysql_connect("$dbhostt","$dbuser","$dbpass");
mysql_select_db("$dbname",$conect);
$user=$_POST['log'];
$pass=$_POST['pwd'];
$select="select * from users where username='$user' and password='$pass'";
$res=mysql_query($select,$conect);
$count=mysql_num_rows($res);
// Chek User or Admin
$sql="select * from users";
$res2=mysql_query($sql,$conect);
$r=mysql_fetch_array($res2);
if($count==1){
if($r['prim']=="client"){
session_start();
$_SESSION['user']=$user;
header("location:../index.php");
}
else{
echo "Error!!";
}
}
?>


مشکلاتی در کد هست ولی بیخیال ، میخوام بدونم چه طوری اینارو توی یک صفحه جا بدم؟

ممنون

همونطور که ravand گفت باید عمل کنی

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

با isset هم چک میکنی که فرم ارسال شده یا نه
در ضمن وقتی فایل config رو اینکلود کردی چرا دوباره اومدی همون خطوط کانکت رو تو این صفحه نوشتی؟؟؟
دیگه نیاز به این کار نیست نهایتا از متغیر هاش استفاده کنی کافیه

کد هارو هم در ادامه همین فرمت میتونی اضافه کنی مشکلی هم پیش نمیاد .
فقط یادت باشه با isset چک کنی

amin7x
جمعه 24 شهریور 1391, 19:15 عصر
شما باید برای دکمه ی submit نامی بذاری به این شکل:

<input name="submitted" type="submit" value="ثبت"/>
بعد برای کدهای php هم به این شکل عمل کنی:


if(isset($_POST['submitted'])) {
کل کدهای php
}
با این روش وقتی روی دکمه ی ارسال کلیک میشه فرم ارسال میشه و تا وقتی که شما روی دکمه کلیک نکردی فرم ارسال نمیشه.

دستت دردنکنه.
ممنون


همونطور که ravand گفت باید عمل کنی

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

با isset هم چک میکنی که فرم ارسال شده یا نه
در ضمن وقتی فایل config رو اینکلود کردی چرا دوباره اومدی همون خطوط کانکت رو تو این صفحه نوشتی؟؟؟
دیگه نیاز به این کار نیست نهایتا از متغیر هاش استفاده کنی کافیه

کد هارو هم در ادامه همین فرمت میتونی اضافه کنی مشکلی هم پیش نمیاد .
فقط یادت باشه با isset چک کنی

دست شما هم دردنکنه.
توی config من فقط متغیر ها رو نوشتم ولی دستوران کانکت و سلکت دیتابیس رو ننوشتم.
چشم از این به بعد کد های کانکت و سلکت دیتابیس رو اضافه میکنم.

فقط یک مشکلی است.
من وقتی صفحه لاگین رو باز میکنم کد که درون else هست رو نشونم میده.
مثلا:


<?php
if(isset($_POST['login'])){
echo "ok";
}
else{

echo "no";
}
?>

به من NO رو نشون میده.

amin7x
جمعه 24 شهریور 1391, 19:23 عصر
ببخشید خودم فهمیدم.

درون همون IF یک IF دیگه باز کرد و در اونجا اگه غلط بود ارور بده و اگه درست بود ارور نده.

برای کسایی که مشکل من رو داشتند کد رو گذاشتم



<?php
if(isset($_POST['login'])){
if($_POST['user']){
echo "ok";
}
else{
echo "no";
}
}
?>