PDA

View Full Version : سوال: ثبت رکورد خالی بی مورد



meysam1366
چهارشنبه 10 اردیبهشت 1393, 16:04 عصر
سلام دوستان خسته نباشید

یه سوال از اساتید داشتم

من در حال یادگیری ارتباط با پایگاه داده هستم و فرمی درست کردم که اطلاعات رو توی پایگاه داده ثبت می کنه و داخل صفحه مقصد که کدهای PHP هستند شرطی گذاشتم که در صورت خالی بودن

همه input ها ریدایرکت بشه توی همون صفحه ولی وقتی دکمه submit رو میزنم یک رکورد خالی در هر صورت توی پایگاه داده ثبت میشه نمیدونم باید چیکار کنم ممنون میشم راهنمایی بفرمایید

کدها رو این زیر قرار میدم دوستانی که میتونن راهنماییم کنن

اطلاعات صفحه index.php


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<title>صفحه اصلی</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div id="main">
<div class="sign">
<fieldset>
<table cellpadding="5px" cellspacing="0">
<form action="signup.php" method="post">
<legend>فرم عضویت</legend>
<tr><label for="name"> نام:<input type="text" name="name" placeholder="نام" /></label></tr><br />
<tr><label for="name"> نام خانوادگی:<input type="text" name="family" placeholder="نام خانوادگی" /></label></tr><br />
<tr><label for="name"> نام پدر:<input type="text" name="father" placeholder="نام پدر" /></label></tr><br />
<tr><label for="name"> نام کاربری:<input type="text" name="user" placeholder="نام کاربری" /></label></tr><br />
<tr><label for="name"> رمز عبور:<input type="password" name="pass" placeholder="رمز عبور" /></label></tr><br />
<tr><input type="submit" value="عضویت" /></tr>
<tr><input type="reset" value="اصلاح" /></tr>
</form>
</table>
</fieldset>
</div>
</div>
</body>
</html>

اطلاعات صفحه signup.php


<!DOCTYPE html>
<html>
<head>
<title>اطلاعات ثبت نام</title>
<meta charset="UTF-8" />
</head>
<body>
<?php
// اطلاعات ثبت نام
$id = '';
$name = $_POST['name'];
$family = $_POST['family'];
$father = $_POST['father'];
$user = $_POST['user'];
$pass = md5($_POST['pass']);

if (empty($id) & empty($name) & empty($family) & empty($father) & empty($user) & empty($pass) == '') {
header('Location: index.php');
}

// connet database & insert
$server = 'localhost';
$username = 'root';
$password = '';
$db = 'signup';
$conn = @mysql_connect($server, $username, $password) or die('Error to Connect');
mysql_select_db($db, $conn);
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
$query = mysql_query("INSERT INTO `users` (id, name, family, father, username, password) VALUES (
'',
'$name',
'$family',
'$father',
'$user',
'$pass')");
/*if($query) {
header('Location: signup.php');
exit();
}*/

$result = mysql_query("SELECT * FROM `users`");
while ($row = mysql_fetch_array($result)) {
echo '<table>';
echo '<tr>';
echo '<td>' . $row['id'] . '</td>' . PHP_EOL;
echo '<td>' . $row['name'] . '</td>' . PHP_EOL;
echo '<td>' . $row['family'] . '</td>' . PHP_EOL;
echo '<td>' . $row['father'] . '</td>' . PHP_EOL;
echo '<td>' . $row['username'] . '</td>' . PHP_EOL;
echo '<td>' . $row['password'] . '</td>' . PHP_EOL;
echo '</tr>';
echo '</table>';
}

mysql_close($conn);
?>
</body>
</html>

کدهای style.css


body {
font:16px byekan;
background-color: #CCCCCC;
}

@font-face {
font-family: byekan;
src: url('../fonts/BYekan.eot'),
url('../fonts/BYekan.ttf'),
url('../fonts/BYekan.woff');
}

#main {
width: 996px;
height: 500px;
background-color: white;
margin:25px auto;
border-radius: 7px;
}

.sign {
width: 300px;
height: auto;
border: 1px;
margin: auto;
direction: rtl;

}

.sign input {
float: left;

}

.sign input:focus {
border-color: blue;
-moz-box-sizing:
border-box;
}



چیزی نمایش داده میشه در آخرش به این صورته

http://upload7.ir/imgs/2014-04/84091234201638099623_thumb.png (http://upload7.ir/viewer.php?file=84091234201638099623.png)

ممنون

saeedvir
چهارشنبه 10 اردیبهشت 1393, 16:59 عصر
if (empty($id) && empty($name) && empty($family) && empty($father) && empty($user) && empty($pass) == '') { header('Location: index.php');
die(); }

meysam1366
چهارشنبه 10 اردیبهشت 1393, 18:35 عصر
if (empty($id) && empty($name) && empty($family) && empty($father) && empty($user) && empty($pass) == '') { header('Location: index.php');
die(); }

سلام

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

درست شد

MMSHFE
پنج شنبه 11 اردیبهشت 1393, 10:45 صبح
نه درست نشده. برنامه به جایی که خطا دارین نمیرسه و الان فکر میکنید درست شده. مشکل سر اون '' == آخر هست. اون رو حذف کنید. البته این که باید از && استفاده کنید سر جاشه و روش درست همینه.

meysam1366
پنج شنبه 11 اردیبهشت 1393, 14:35 عصر
نه درست نشده. برنامه به جایی که خطا دارین نمیرسه و الان فکر میکنید درست شده. مشکل سر اون '' == آخر هست. اون رو حذف کنید. البته این که باید از && استفاده کنید سر جاشه و روش درست همینه.

سلام

چون از empty استفاده می کنم دیگه نیازی به این '' == نیست یا دلیل دیگه ای داره؟

آخه پس الان چطور دارده کار می کنه؟

آقای مهندس شهرکی یه سوال دیگه ام داشتم این مثال من الان با یک & هم داره کار می کنه چرا؟

ممنون از راهنماییتون

MMSHFE
پنج شنبه 11 اردیبهشت 1393, 14:45 عصر
یک & یعنی & بیتی و دو && یعنی && شرطی و تنها تفاوتشون در هوشمندی دومیه یعنی اگه اولین شرط false باشه بقیه رو چک نمیکنه چون بهرحال نتیجه false هست. اینکه کار میکنه هم گفتم چرا: چون بخاطر وجود && اصلاً به اونجا نمیرسه که بخواد خطا بده.

meysam1366
پنج شنبه 11 اردیبهشت 1393, 14:50 عصر
ممنون آقای شهرکی

جواب سوال اولم چی؟


چون از empty استفاده می کنم دیگه نیازی به این '' == نیست یا دلیل دیگه ای داره؟

MMSHFE
پنج شنبه 11 اردیبهشت 1393, 15:01 عصر
بله چون empty داره چک میکنه و ازطرفی نتیجه اون وقتی عبارت خالی باشه، true هست و شما با == دارین با رشته خالی که معادل false هست چک میکنید که خود این، معادل true == false هست که همیشه نتیجه false میده و به نوعی یک خطای منطقی توی برنامه شما ایجاد میکنه.

meysam1366
پنج شنبه 11 اردیبهشت 1393, 15:16 عصر
دست شما درد نکنه آقای شهرکی

کاملا متوجه شدم خدا خیرتون بده

آقای شهرکی ببخشید زیاد سوال میپرسم

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

اینم کد


if (empty($id) && empty($name) && empty($family) && empty($father) && empty($user) && empty($pass)) {
header('Location: index.php');
exit();
}