View Full Version : سوال: مشکل این کد چیه ؟
M0TR!X
سه شنبه 16 خرداد 1391, 22:05 عصر
سلام.
مشکل این کد چیه که فقط یه یوزر بیشتر ثبت نمیکنه ! کارش ثبت نام هست (register)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run = mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id!=1) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run = mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="register.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/><br />
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/><br />
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/><br /><br />
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a><br /><br />
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a><br /><br />
</form>
</center>
</body>
</html>
H:Shojaei
سه شنبه 16 خرداد 1391, 22:57 عصر
با سلام
اين رو امتحان كنيد:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run == mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id!=1) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run == mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="register.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/>
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/>
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/>
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/>
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/>
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a>
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a>
</form>
</center>
</body>
</html>
موفق باشيد.
M0TR!X
سه شنبه 16 خرداد 1391, 23:10 عصر
سلام.
مشکل حل نشد.
الان نه پیغام میده که کاربر ثبت شد یا خطا یا کاربر قبلا ثبت شده ! هیچ کدوم
H:Shojaei
سه شنبه 16 خرداد 1391, 23:13 عصر
حالا چي
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run = mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id!=0) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run = mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="register.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/><br />
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/><br />
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/><br /><br />
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a><br /><br />
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a><br /><br />
</form>
</center>
</body>
</html>
M0TR!X
سه شنبه 16 خرداد 1391, 23:16 عصر
نه.بازم مثل قبله
H:Shojaei
سه شنبه 16 خرداد 1391, 23:20 عصر
ديگه بايد حل بشه
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run = mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id==0) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run = mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="register.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/><br />
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/><br />
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/><br /><br />
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a><br /><br />
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a><br /><br />
</form>
</center>
</body>
</html>
M0TR!X
سه شنبه 16 خرداد 1391, 23:24 عصر
بازم حل نشد !!!!!!!!!!!دقیقا مثل قبلی
H:Shojaei
سه شنبه 16 خرداد 1391, 23:32 عصر
چيزهايي كه من فكر ميكردم اشتباه نوشته شده اين ها بود ولي همش رو با هم تست نكردم:
1-براي مقايسه == قرار بديد
2-در صورتي بايد داده ها درج بشن كه تعداد سطرهاي بدست آمده برابر 0 باشند if ($id==0)
3-دوتاي قبلي:گیج:
به نظر من مشكل ديگه اي نداره.
H:Shojaei
سه شنبه 16 خرداد 1391, 23:41 عصر
اين رو هم چك كنيد ديگه آخريش هست
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php require_once 'connect.php';
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
connecttodb();
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run == mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id==0) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run == mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="1;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="register.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/><br />
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/><br />
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/><br /><br />
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a><br /><br />
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a><br /><br />
</form>
</center>
</body>
</html>
M0TR!X
سه شنبه 16 خرداد 1391, 23:41 عصر
خواهشا دوستان اول یه تست بکنن ممنون میشم !
نام دیتابیس:my_db
نام جدول :tbl_user
ستونها:id,username,password,email
H:Shojaei
سه شنبه 16 خرداد 1391, 23:47 عصر
پس id رو چطور مقدار دهي ميكني ؟
H:Shojaei
سه شنبه 16 خرداد 1391, 23:55 عصر
من كه تست كردم كاملا درست كار ميكرد با اين كد البته اگه id فيلد كليد نباشه:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ثبت نام کاربر</title>
</head>
<body dir="rtl" style="font-family:tahoma; font-size:20px; ">
<?php
$air=mysql_connect("127.0.0.1","root","");
@mysql_select_db("my_db");
if (isset ($_POST['username']) AND isset($_POST['password']) AND
isset($_POST['password_again']) AND isset($_POST['email']) ) {
if (!empty($_POST['username']) AND !empty($_POST['password']) AND
!empty($_POST['password_again']) AND !empty($_POST['email']) ) {
$username = $_POST['username'];
$password = MD5($_POST['password']);
$password_again = MD5($_POST['password_again']);
$email = $_POST['email'];
if ($password != $password_again) {
echo 'عدم تطابق رمز عبور';
} else {
$query = "SELECT `id` FROM `tbl_user` WHERE `username` = '".mysql_real_escape_string($username)."'";
if ( $query_run = mysql_query($query) ){
$id = mysql_num_rows($query_run);
if ($id==0) {
$query2 = "INSERT INTO `tbl_user` values ( '',
'".mysql_real_escape_string($username)."',
'".mysql_real_escape_string($password)."',
'".mysql_real_escape_string($email)."')";
if ($query_run == mysql_query($query2)) {
echo 'ثبت نام موفقيت';
echo '<meta http-equiv="refresh" content="10;url=index.php" />';
} else {
echo 'خطا در ثبت کاربر';
}
} else {
echo 'اين نام کاربري قبلا ثبت نام کرده است';
}
}
}
} else { echo 'empty';
}
}
?>
<center>
<form action="a.php" method="POST">
نام کاربري : <input type="text" name="username" style="font-family:tahoma; font-size:20px; "/><br />
رمز عبور : <input type="password" name="password" style="font-family:tahoma; font-size:20px; "/><br />
تکرار رمز عبور : <input type="password" name="password_again" style="font-family:tahoma; font-size:20px; "/><br />
ايميل : <input type="text" name="email" style="font-family:tahoma; font-size:20px; "/><br />
<input type="submit" value="ثبت نام" style="font-family:tahoma; font-size:20px; "/>
<input type="reset" value="خالي کردن فرم" style="font-family:tahoma; font-size:20px; "/><br /><br />
<a href="index.php" style="text-decoration:none;">برگشت به صفحه اول</a><br /><br />
<a href="login.php" style="text-decoration:none;">ورود به پنل کاربري</a><br /><br />
</form>
</center>
</body>
</html>
M0TR!X
چهارشنبه 17 خرداد 1391, 13:01 عصر
سلام.
بله کار میکنه به شرطی که id کلید نباشه ! ولی داخل دیتابیس رو نگاه کنی id فقط مقدار صفر میگیره و من اینو نمیخوام ! id رو میخوام auto باشه خودش یه دونه اضافه بشه نه اینکه همش صفر باشه
H:Shojaei
چهارشنبه 17 خرداد 1391, 14:53 عصر
سلام
خوب ديگه اين مشكليه كه شما بايد رفعش كني اول بيشترين مقدار id رو بگير بعد يكي بهش اضافه كن بعد هم درجش كن.
موفق باشيد
H:Shojaei
چهارشنبه 17 خرداد 1391, 20:06 عصر
سلام
اين كد رو توي ديتابيس قسمت sql اجرا كن درست ميشه:
ALTER TABLE `tbl_user` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT
موفق باشيد
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.