PDA

View Full Version : مبتدی: خطا دادن هنگام ثبت نام با نام کاربری یکسان



scofield007
شنبه 19 بهمن 1392, 12:12 عصر
سلام اساتید عزیز
خسته نباشید

کد زیر رو نوشتم تا هنگامیکه کاربری تمایل به ثبت نام در سایت داشت اگر نام کاربری که انتخاب میکنه قبلا در پایکاه داده ثبت شده بود به صفحه err-register هدایت بشه
ولی متاسفانه این کد کار نمیکته و اگر کاربری در هنگام ثبت نام ،نام کاربری انتخاب کنه که قبلا در پایگاه ثبت شده باشه اروری دریافت نمیکنه

ممنون میشم کمکم کنید



<?php
session_start();

$_SESSION['namkarbari'] = $_POST['namkarbari'];
$_SESSION['password'] = $_POST['password'];

$con = @mysqli_connect("localhost","root","","login") or die ("can not connect" . mysqli_error());
$search = "SELECT * FROM members";
$result = mysqli_query($con , $search);
$login2 = $_POST['namkarbari'];
while($row = mysqli_fetch_array($result))
{
$login = $row['login'];
if ($login == $login2)
{
header("location: err-register.php");
}
}
$sql = "INSERT INTO members (firstname , lastname , login , passwd)
VALUES ('$_POST[name]','$_POST[family]','$_POST[namkarbari]','$_POST[password]')";
mysqli_query($con , $sql);
header("location: profile.php");

?>

abdollahpor
شنبه 19 بهمن 1392, 12:17 عصر
اول صفحه این کد رو بزارید:



ob_start();




http://kpnu-csc.ir/forum/showthread.php?2876

SadeghPro19
شنبه 19 بهمن 1392, 12:28 عصر
از خط 8 تا خط 18 کدتون رو به شکل زیر تغییر بدین:

$username = $_POST['namkarbari'];
$search = "SELECT * FROM members WHERE username = '$username'";
$result = mysqli_query($con , $search);
if(mysqli_stmt_num_rows($result)>0){
header("location: err-register.php");
}

scofield007
شنبه 19 بهمن 1392, 12:30 عصر
اول صفحه این کد رو بزارید:



ob_start();




http://kpnu-csc.ir/forum/showthread.php?2876

متاسفانه مشکل حل نشد.

scofield007
شنبه 19 بهمن 1392, 12:35 عصر
از خط 8 تا خط 18 کدتون رو به شکل زیر تغییر بدین:

$username = $_POST['namkarbari'];
$search = "SELECT * FROM members WHERE username = '$username'";
$result = mysqli_query($con , $search);
if(mysqli_stmt_num_rows($result)>0){
header("location: err-register.php");
}

ممنونم
ولی بازم کار نکرد :((

scofield007
شنبه 19 بهمن 1392, 12:53 عصر
دوستان نظر دیکه ای ندارن؟

leaping
شنبه 19 بهمن 1392, 13:25 عصر
$username = $_POST['namkarbari'];
$search = "SELECT * FROM members WHERE username = '$username'";
$result = mysqli_query($con , $search);
if(mysql_affected_rows()>0){
header("location: err-register.php");
}


دوست عزیز میتونی به این شکل تغییرش بدی
اما چندتنا نکته یادت باشه
اینکه ستون جدولت که میخوای ازش نام کاربری رو سوال کنی باید اسمش username باشه اینکه کد بالا رو تغییر بدی به اسم مد نظرت
این کد بررسی میکنه که اگه نام کاربری وجود داشت عدد یک رو پس بده اگه نه صفر
حالا اگه یک رو پس داد در نتیجه ارور میده و کاربر رو به صفحه مد نظرت انتقال میده
اگرم نشد سر به سر کد بذار که بیس اصلیش همینه خودت پیدا میکنی

scofield007
شنبه 19 بهمن 1392, 13:30 عصر
$username = $_POST['namkarbari'];
$search = "SELECT * FROM members WHERE username = '$username'";
$result = mysqli_query($con , $search);
if(mysql_affected_rows()>0){
header("location: err-register.php");
}


دوست عزیز میتونی به این شکل تغییرش بدی
اما چندتنا نکته یادت باشه
اینکه ستون جدولت که میخوای ازش نام کاربری رو سوال کنی باید اسمش username باشه اینکه کد بالا رو تغییر بدی به اسم مد نظرت
این کد بررسی میکنه که اگه نام کاربری وجود داشت عدد یک رو پس بده اگه نه صفر
حالا اگه یک رو پس داد در نتیجه ارور میده و کاربر رو به صفحه مد نظرت انتقال میده
اگرم نشد سر به سر کد بذار که بیس اصلیش همینه خودت پیدا میکنی

مورد ستون رو حواسم هست
و اینکه هرجی روی کد مانور میدم متاسفانه مشکلم حل نمیشه

beh3000
شنبه 19 بهمن 1392, 14:00 عصر
این کد کار میکنه


$result=mysql_query("select count(*) as cnt from members where username='$username'");
$data=mysql_fetch_assoc($result);
if ($data['cnt']== 0)
//Sabte Karbar
else
//Error

beh3000
شنبه 19 بهمن 1392, 14:04 عصر
$result=mysql_query("select count(*) as cnt from members where username='$username'");
if(mysql_num_rows($result) > 0)
//Error
else
//Sabt

sherlock0111
شنبه 19 بهمن 1392, 22:45 عصر
دوست عزیز از کد زیر استفاده کن


$sql = "SELECT * FROM members where username='".$username."' && password='".$password."'";
$result = mysql_Query($sql);
$rows = mysql_fetch_assoc($result);
if($row = mysql_num_rows($result)>0)
{
$_SESSION['manage_log']=$rows['username'];
$_SESSION['manage_log']=true;
header("location: err-register.php");
}

MMSHFE
یک شنبه 20 بهمن 1392, 08:34 صبح
بهتره برای اطمینان بیشتر، فیلد username رو Unique کنید.

scofield007
دوشنبه 21 بهمن 1392, 23:41 عصر
ممنونم ار همه دوستان
با کد زیر مشکل حل شد


<?php
session_start();
$con = mysqli_connect("localhost","root","","login") or die ("can not connect" . mysqli_error());

$result=mysqli_query($con , "select count(*) as cnt from members where login='$_POST[namkarbari]'");
$data=mysqli_fetch_assoc($result);
if ($data['cnt'] == 0)
{
$_SESSION['namkarbari'] = $_POST['namkarbari'];
$_SESSION['password'] = $_POST['password'];
$sql = "INSERT INTO members (firstname , lastname , login , passwd)
VALUES ('$_POST[name]','$_POST[family]','$_POST[namkarbari]','$_POST[password]')";
mysqli_query($con , $sql);
header("location: profile.php");
}
else
{
echo "In nam karbari ghablan sabt shode ast...";
}

?>

wordnet
چهارشنبه 23 بهمن 1392, 19:26 عصر
بخشید اینجا منظور از cnt چیه در خط 7

foreach
چهارشنبه 23 بهمن 1392, 19:35 عصر
بخشید اینجا منظور از cnt چیه در خط 7

خوب cnt همونیه که موقع سلکت کردن تعداد تغییر نام داده شده select count(*) as cnt
که در اینجا تعداد کاربران رو با استفاده از نام کاربری دریافت میکنه

wordnet
چهارشنبه 23 بهمن 1392, 19:51 عصر
ممنون از دوستان دوستان کد ما چه ایرادی داره

الان مشکل اینه کاربر عضو میشه و به تکراری بودن name گیر نمیده

فایل کانفینگ


<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'god';

$link = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db ($dbname, $link);
?>



اینم کد ریجستر

<?php
session_start();
error_reporting(0);
?>
<html>
<head>
<meta charset="utf-8">
<title> تست بخش عضویت </title>
</head>
<body>
<form method="post">
نام مخاطب به انگلیسی:<input type="text" name="name">
<br/>
شماره تلفن مخاطب:<input type="text" name="pass">
<br/>
<input type="submit" name="ok" value="ثبت اطلاعات">
</form>
<?php
///////////////چک کننده شرط بعد ارور
if (isset($_POST['name']) && isset($_POST['pass']) ) {
require_once 'class/config.php';
$name=$_POST["name"];
$pass=$_POST["pass"];
if($name=="")
{
die("لطفا یک نام کاربری وارد نمائید");
}
if ($pass=="")
{
die ("لطفا شماره وارد کنید");
}
}
$result=mysqli_query($link , "select count(*) as cnt from user where user='$_POST[name]'");
$data=mysqli_fetch_assoc($result);
if ($data['cnt'] == 0)
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['pass'] = $_POST['pass'];
$guery= mysql_query ("insert into user (user,pass)
values ('$name','$pass');
");
}
else
{
echo "In nam karbari ghablan sabt shode ast...";
}

?>
</body>
</html></html>

wordnet
چهارشنبه 23 بهمن 1392, 20:34 عصر
دوستان مشکل ما هم حل شد




<?php
session_start();
error_reporting(0);
?>
<html>
<head>
<meta charset="utf-8">
<title> تست بخش عضویت </title>
</head>
<body>
<form method="post">
نام مخاطب به انگلیسی:<input type="text" name="name">
<br/>
شماره تلفن مخاطب:<input type="text" name="pass">
<br/>
<input type="submit" name="ok" value="ثبت اطلاعات">
</form>
<?php
///////////////چک کننده شرط بعد ارور
if (isset($_POST['name']) && isset($_POST['pass']) ) {
require_once 'class/config.php';
$name=$_POST["name"];
$pass=$_POST["pass"];
if($name=="")
{
die("لطفا یک نام کاربری وارد نمائید");
}
if ($pass=="")
{
die ("لطفا شماره وارد کنید");
}
}
$result=mysql_query("select count(*) as cnt from user where user='$name'");
$data=mysql_fetch_assoc($result);
if ($data['cnt']== 0)
{
$guery= mysql_query ("insert into user (user,pass)
values ('$name','$pass');
");
}
else
{
echo "In nam karbari ghablan sabt shode ast...";
}


?>
</body>
</html>