PDA

View Full Version : سوال: مشکل این کد چیه ؟



M0TR!X
سه شنبه 16 خرداد 1391, 21: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; "/>&nbsp;
<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, 21: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; "/>&nbsp;
<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, 22:10 عصر
سلام.

مشکل حل نشد.

الان نه پیغام میده که کاربر ثبت شد یا خطا یا کاربر قبلا ثبت شده ! هیچ کدوم

H:Shojaei
سه شنبه 16 خرداد 1391, 22: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; "/>&nbsp;

<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, 22:16 عصر
نه.بازم مثل قبله

H:Shojaei
سه شنبه 16 خرداد 1391, 22: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; "/>&nbsp;

<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, 22:24 عصر
بازم حل نشد‌‌ !!!!!!!!!!!دقیقا مثل قبلی

H:Shojaei
سه شنبه 16 خرداد 1391, 22:32 عصر
چيزهايي كه من فكر ميكردم اشتباه نوشته شده اين ها بود ولي همش رو با هم تست نكردم:
1-براي مقايسه == قرار بديد
2-در صورتي بايد داده ها درج بشن كه تعداد سطرهاي بدست آمده برابر 0 باشند if ($id==0)
3-دوتاي قبلي:گیج:
به نظر من مشكل ديگه اي نداره.

H:Shojaei
سه شنبه 16 خرداد 1391, 22: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; "/>&nbsp;

<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, 22:41 عصر
خواهشا دوستان اول یه تست بکنن ممنون میشم !

نام دیتابیس:my_db
نام جدول :tbl_user
ستونها:id,username,password,email

H:Shojaei
سه شنبه 16 خرداد 1391, 22:47 عصر
پس id رو چطور مقدار دهي ميكني ؟

H:Shojaei
سه شنبه 16 خرداد 1391, 22: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; "/>&nbsp;

<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, 12:01 عصر
سلام.

بله کار میکنه به شرطی که id کلید نباشه ! ولی داخل دیتابیس رو نگاه کنی id فقط مقدار صفر میگیره و من اینو نمیخوام ! id رو میخوام auto باشه خودش یه دونه اضافه بشه نه اینکه همش صفر باشه

H:Shojaei
چهارشنبه 17 خرداد 1391, 13:53 عصر
سلام
خوب ديگه اين مشكليه كه شما بايد رفعش كني اول بيشترين مقدار id رو بگير بعد يكي بهش اضافه كن بعد هم درجش كن.
موفق باشيد

H:Shojaei
چهارشنبه 17 خرداد 1391, 19:06 عصر
سلام
اين كد رو توي ديتابيس قسمت sql اجرا كن درست ميشه:

ALTER TABLE `tbl_user` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT

موفق باشيد