PDA

View Full Version : چک کردن نام کاربری و گذرواژه از پایگاه داده در php



policweb
شنبه 03 مرداد 1394, 09:00 صبح
سلام دوستانم برای چک کردن نام کاربری و پسورد در پی اچ پی از چه کدی باید استفاده کرد
من کد زیر رو بکار بردم

$result=mysql_query("SELECT * FROM user");
while($a=mysql_fetch_array($result))
if($a["username"]==$email)
{
echo"user after create!<br>";
} else{
ورود
}

}

اما به ارور بر میخورم

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\signup.php

مشکل چیه؟

Master_Power
شنبه 03 مرداد 1394, 09:07 صبح
برای این خطا باید قبل از while بیاید و $result را با یه if بررسی کنید و بعدش تمام while و اداه رو تو اون if بزارید

policweb
شنبه 03 مرداد 1394, 09:17 صبح
برای این خطا باید قبل از while بیاید و $result را با یه if بررسی کنید و بعدش تمام while و اداه رو تو اون if بزارید
if برای برسی چه کاری؟
ممنون میشم منظوتونو مثال بزنید

Master_Power
شنبه 03 مرداد 1394, 09:43 صبح
if برای برسی چه کاری؟
ممنون میشم منظوتونو مثال بزنید

ببینید اینجوری بنویسید


if($result){حلقه را اینجا بزارید}

policweb
شنبه 03 مرداد 1394, 09:50 صبح
ببینید اینجوری بنویسید


if($result){حلقه را اینجا بزارید}

تشکر جواب داد <3 :قلب:
اگه امکان داره توضیح بدید این مشکل به چه دلیل بوجود میاد

Master_Power
شنبه 03 مرداد 1394, 10:58 صبح
توی PHP وقتی که شما mysql_fetch_array را به صورت تک استفاده میکنید نمیتونه اینو بشناسه و باید با یه شرط بگید که متغیر قبلی وجود داره و حالا بیا با mysql_fetch_array پیمایشش کن

policweb
شنبه 03 مرداد 1394, 11:43 صبح
نه هنوزم همون ارور رو میده با پارامترهای MYSQL_NUM و MYSQL_ASSOC هم امتحان کردم نشد

ببینید شکل کلی دستور این شکلیه
$con=mysql_connect("localhost","root","");
mysql_select_db("design");
if ($result=mysql_query("SELECT username FROM user",$con)){
while($a=mysql_fetch_array($result))
if($a["username"]==$email){
echo "user befor create!<br>";
}
else
{
$result=mysql_query("INSERT INTO user(username,name,family,password,confpassword,te llphone) VALUES('$email','$name','$family','$orgpass','$rep pass','$tell')");
mysql_close($con);
//header("location: home.php");
}
}

Master_Power
شنبه 03 مرداد 1394, 17:43 عصر
من کد را جوری اصلاح کردم که به راحتی بتونید تغییر بدید

ابن کد الان سالمه و مشکلی نداره

فقط به جای دستور echo در else کد INSERT خودتون را بزارید و در SELECT اول هم به جای LIKE که نوشتم دستورات خودتون را بزارید

<?php mysql_connect("localhost","root","");
mysql_select_db("test_db");
$search_for='123456';
$result=mysql_query("SELECT `kj_username` FROM `kj_info` WHERE `kj_username` LIKE '%$search_for%' ");
if(!$result){
die("Error: ".mysql_error()); // Note: raw database errors are useless for users
}
while($a=mysql_fetch_assoc($result)) {
if($a["kj_username"]==$search_for)
echo "user befor create!";
else{
echo "ERROR";
}
}
?>