vahid

مشکل validate کردن فرم در php و تذکر به کاربر

vahid ۱۳۹۵/۰۶/۰۸ 53 زبان برنامه‌نویسی پی‌اچ‌پی

سلام به همگی


من یه فرم ساختم حالا میخام اطلاعاتش به یه صفحه دیگه ارسال بشه تا validate  بشه تمام مراحلو رفتم اما به چندتا مشکل برخوردم


1:زمانی که کاربر فرمو پر میکنه و ارسال میزنه به صفحه ای که اطلاعات نمایش داده میشن هدایت میشه و اگر خطایی هم توی پر کردن فرم باشه توی اون صفحه بهش نشون داده میشه درحالی که ما نمیخاییم کاربر اصلا قادر به دیدن اون صفحه باشه ..و تمام اخطارها باید توی همون صفحه ای که فرم ساخته شده به کاربر نمایش داده بشه..حالا مشکل اینجاست که من نمیدونم چطور باید اخطار هارو توی همون صفحه ای که فرم ساخته شده کنار fieldها نمایش بدم در حالی که تمام کدهای مربوط به validate  کردن فرم و تمام variable  ها توی یه صفحه دیگه هستند و توی صفحه فرم بهشون دسترسی ندارم ...چطور میتونم بهشون دسترسی پیدا کنم ؟


اینا کدهای html هستند که فرم درست کردم و توی  یه صفحه جدا هستند  و پسوندشم  .php  هستش ..


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>site</title>
</head>

<body>

<form method="post" action="action.php">
<input type="text" name="fname" placeholder="firstName" /><br /><br />
<input type="text" name="lname" placeholder="lastName" /><br /><br />
<input type="submit" value="send" >
</form>

</body>
</html>

و اینام کدهای php مربوط به validate  کردن فرم هستند که توی یه صفحه دیگه به نام  action.php  نوشته شدن...وجفت صفحه ها توی یه فولدر هستند..


 


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ASD</title>
</head>

<body>

<?php
$fname='';
$lname='';
$error='';
$error2='';

if($_SERVER['REQUEST_METHOD']=='POST'){

if(empty($_POST['fname'])){
echo $error="plaese type your name ...";
}
else
{
$fname=$_POST['fname'];
$fname=trim($fname);
$fname=stripslashes($fname);
$fname=htmlspecialchars($fname);
echo "firstName is : " . $fname . '<br />';
}


if(empty($_POST['lname'])){
echo $error2="please type your lastName ..";
}
else
{
trim($_POST['lname']);
stripslashes($_POST['lname']);
htmlspecialchars($_POST['lname']);
$lname=$_POST['lname'];
echo "lastName is : " . $lname . '<br />';
}

}
?>


</body>
</html>

 


2:حالا اگه بخاییم کاربر بعد از پر کردن فرم به یه صفحه دیگه هدایت بشه چیکار باید بکنبم...چون نمیخاییم کاربر یه اطلاعات دست داشته باشه...


3:فرض کنید مدیر سایت میخاد فرم های پر شدرو ببینه و بررسی کنه ..از کجا به این مشخصات دسترسی پیدا میکنه؟آیا باید به این صفحه ای که مشخصات کاربر ارسال شده مراجعه کنه یا اینکه این مشخصات توی دیتابیس ذخیره میشن؟اصلا آیا این صفحه دایمه؟


 


با تشکر فراوان

پاسخ‌ها به این تاپیک
علي
علي
۱۳۹۵/۰۶/۲۰

خوب بود

stack programer
stack programer
۱۳۹۵/۰۶/۱۶

سلام برای سوال اولتون برای چک کردن ولید بودن دیتا راه های مختلفی دارید یکی از این راه حل ها استفاه از اجاکس است


شما به وسیله پاس دادن متغیر داخل جی اس یا پی اچ پی و اجرای دوباره صفحه اول می توانید این کار ها را انجام دهید.


 


<?php // This is index.php
$foo = 'bar';
include('page2.php');
?>


<?php // This is page2.php
include('page3.php');
?>

<?php // This is page3.php
echo $foo;
?>

در مورد سوال دومتون باید از redirect استفاده کنید..در جاوا اسکریپ یا پی اچ پی یا ..


//js 
window.location.replace("http://example.com/");

 


 


//php
function redirect($url, $statusCode = 303)
{
header('Location: ' . $url, true, $statusCode);
die();
}

//html
<meta http-equiv="Location" content="http://example.com/">

 


در رابطه با سوال سوم خوب برای سایت همیشه ما یک دیتابیس داریم، یک table می سازیم نام user ان جا اطلاعات کاربر شامل یوزنیم و پسورد و غیره ذخیره می شود، برای دفعه بعد هم پسوردش از انجا چک می کنیم.

mr.code امیر کفتری
mr.code امیر کفتری
۱۳۹۵/۰۶/۱۰

سلام دوست من.


از کد زیر استفاده کن :


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>اعتبار سنجی فرم</title>
<script type="text/javascript">
function validateForm()
{
var fname = document.forms["myForm"]["fname"].value;
var lname = document.forms["myForm"]["lname"].value;
if (fname == null || fname == "" || lname == null || lname == "")
{
alert("این فیلد باید پر باشد");
return false;
}
}
</script>
</head>

<body>

<form name="myForm" method="post" action="action.php" onsubmit="return validateForm()">
<input type="text" name="fname" placeholder="firstName" /><br /><br />
<input type="text" name="lname" placeholder="lastName" /><br /><br />
<input type="submit" value="send" >
</form>

</body>
</html>