تکمیل یک کد بسیار ساده

bamshad

Well-Known Member
سلام دوستان
من این کد ساده رو نوشتم:
PHP:
<body>
<font></font>
<form method="post" action="send.php">
<input type="textbox" name="email">
<input type="submit" />
<?php  if ($email=""){
 echo "please complate all";
 }
  ?>
</body>
</html>
می خوام بدونم باید چی بهش اضافه بکنم که کد
PHP:
<?php  if ($email=""){
 echo "please complate all";
 }
اجرا بشه و صفحه هم اطلاعاتش رو در صورت عدم وجود شرط به send.php نفرسته؟؟
ممنون میشم اگه بهم جواب بدید
 

silvercover

کاربر متخصص
شما action فرمتون به صفحه send.php هست. تحت هر شرایطی اگه کد سمت سرور نوشته باشین میره به صفحه send. اول اینکه کد های php رو در ابتدای فایل بنویسید واگه میخاین که توی همین صفحه چک بشه action فرم رو به این شکل قرار بدین:

کد:
<?= $_SERVER['PHP_SELF'].(@($_SERVER['QUERY_STRING'] > ' ') ? '?'.$_SERVER['QUERY_STRING'] : '') ?>

و شرط رو هم به این شکل تغییر بدین:

کد:
if(!empty($_POST['email']))
		{
		echo "Please compelete all fields";
		}
 

bamshad

Well-Known Member
اگه میخاین که توی همین صفحه چک بشه action فرم رو به این شکل قرار بدین
من این قسمت رو درست متوجه نشدم ؟؟، یعنی به این شکل؟
PHP:
<form method="post" action="<?= $_SERVER['PHP_SELF'].(@($_SERVER['QUERY_STRING'] > ' ') ? '?'.$_SERVER['QUERY_STRING'] : '') ?>">
 

mohsenshahbazi

Active Member
داخل همون صفحه هم میشه !

PHP:
<input type="hidden" name="do" value="ok">

PHP:
if $_POST['do'] == "ok" { 
چک کردن خالی نبودن محتویات 
}
 

tabib_m

Member
این چیزی که شما میخوای ربطی به php نداره ، باید با جاواسکریپت یه چک ساده بکنی ، حل میشه:
HTML:
<html>

<script>
function checkValues(){
     if(document.all['email'].value==''){
	 	alert('Please Complete The Fields');
		return false;
	 }else{
	 	this.submit();
	 }
}
</script>

<body>
<font></font>
<form action="aaa.html" onSubmit="checkValues(); return false;">
<input type="textbox" name="email">
<input type="submit" />
</body>
</html>
 

silvercover

کاربر متخصص
این چیزی که شما میخوای ربطی به php نداره ، باید با جاواسکریپت یه چک ساده بکنی ، حل میشه:
HTML:
<html>

<script>
function checkValues(){
     if(document.all['email'].value==''){
	 	alert('Please Complete The Fields');
		return false;
	 }else{
	 	this.submit();
	 }
}
</script>

<body>
<font></font>
<form action="aaa.html" onSubmit="checkValues(); return false;">
<input type="textbox" name="email">
<input type="submit" />
</body>
</html>


همچین بی ربطه به PHP هم نیست. شما از تکنیک اعتباز سنجی در سمت کاربر استفاده کردین. توجه کنین که اگه هر دو اعتبار سنجی هم در سمت کاربر و سرور باشه امنیت و کارایی بالا میره.
 

silvercover

کاربر متخصص
من این قسمت رو درست متوجه نشدم ؟؟، یعنی به این شکل؟
PHP:
<form method="post" action="<?= $_SERVER['PHP_SELF'].(@($_SERVER['QUERY_STRING'] > ' ') ? '?'.$_SERVER['QUERY_STRING'] : '') ?>">

این قسمت خروجی فرم رو باز به خود صفحه ارسال میکنه. مشابه همین راه همانطور که دوستان گفتن، عدم درج صفت action هست که باعث ارسال محتویات فرم به خود صفحه میشه. روش بنده از انعطاف بیشتری برخوردار هست. چرا که مثلا اگه فرم ارسال شه و ورودی مشکل داشته باشه میتونیم با استفاده از این عبارت کاری کنیم که سایر ورودی های سالم پاک نشن.

در جاهایی که به کد مختصری از php نیاز هست از شیوه نگارش =?> استفاده میشه که مشابه ; "" echo ?> هست.
 

bamshad

Well-Known Member
دوستان دست همه تون درد نکنه
من خودم بعد از اینکه توی کتاب آموزش php ام گشتم این کد رو پیدا کردم
که خودم هم دنیال همچین چیزی بودم
PHP:
<?php
$required = array("name"  => "Your Name",
                  "email" => "Email Address");
foreach($required as $field => $label){
if (!$_POST[$field]){
$err .="$label is required field <br>";
}
}
if ($err){
echo $err;
?>
<form action="index.php" method="post">
<table border="0">
<tr>
<td>Your Name</td>
<td><input type="text" size="30" name="name"
value="<?php echo $_POST ["email"];?>" /></td>
</tr>
<tr>
<td>Email Address</td>
<td><input type="text" size="30" name="email"
value="<?php echo $_POST ["email"];?>" /></td>
</tr>
<tr>
<td>telephone</td>
<td><input type="text" size="12" name="telephone"
value="<?php echo $_POST["telephone"];?>" /></td>
</tr>
</table>
<input type="submit" value="register" />
</form>
<?php
}
else{
echo "Thank You for registered";
}
?>
 

جدیدترین ارسال ها

بالا