• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطا در اطلاعات برگشتی از دیتابیس و اجرای کد
#1
سلام من یه سری کد php نوشتم و داخل سه تا فایل ذخیره کردم
که مربوط به عضویت می شه و یه سری اطلاعات وارده رو به دیتابیس ارسال می کنه
که اون همون نام و ایمیل و رمز عبور و نام کاربریه
اولی
init.php برای اتصال به دیتابیس
دومی register.php که برای رجیستر کردن و ارسال اطلاعات به دیتابیس و در صورت موجود بودن اطلاعات اررور دادن
و سومی login.php که برای لوگین کردن و نمایش موفقیت امیز بودن ویا خطا هست

و دو فایل html هم درست کردم که دارای دو فرم هست اولی برای رجیستر کردن و دومی برای لوگین کردن

سه فایل به دیتابیس من وصل می شن ولی مشکل اینجاست که با اینکه تو فایل دومی یعنی register.php کدی نوشتم که در صورت موجود بودن اطلاعات رو وارد نکنه و خطا بده این اتفاق نمی افته و هر دفعه وارد می کنه اطلاعات و

و دومی مشکل اینه که تو فایل سومی یعنی لوگین کدی هست که باعث می شه در صورت موجود بودن اطلاعات پیغام موفقیت رو نشون بده و در صورت نبودن اطلاعات پیغام خطا ولی در هر صورت فقط پیغام خطا می ده چه اطلاعات موجود باشه چه نباشه

لطفا اگه می شه فایل هارو دانلود کنید و به دیتابیس خودتون متصل کنید از فایل init.php
و بگین درست کار می کنه یا نه و بهم بگید مشکل کار من کجاست
ممنون می شم

http://uplod.ir/mexaqwjyo2sf/Login_and_Register.zip.htm


فایل‌های پیوست
.zip   Login and Register.zip (اندازه 1.82 KB / تعداد دانلود: 1)
  پاسخ
تشکر شده توسط :
#2
کسی نبود بتونه من و کمک کنه ؟
  پاسخ
تشکر شده توسط :
#3
نقل قول: سه فایل به دیتابیس من وصل می شن ولی مشکل اینجاست که با اینکه تو فایل دومی یعنی register.php کدی نوشتم که در صورت موجود بودن اطلاعات رو وارد نکنه و خطا بده این اتفاق نمی افته و هر دفعه وارد می کنه اطلاعات و
کدش رو بذارید .

نقل قول: و دومی مشکل اینه که تو فایل سومی یعنی لوگین کدی هست که باعث می شه در صورت موجود بودن اطلاعات پیغام موفقیت رو نشون بده و در صورت نبودن اطلاعات پیغام خطا ولی در هر صورت فقط پیغام خطا می ده چه اطلاعات موجود باشه چه نباشه
کدش رو بذارید .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#4
کد فایل اول init.php
<?php
$host= "localhost";
$db_user = "almirair_vipcard";
$db_password = "1234562230361";
$db_name = "almirair_vipcard";
$con = mysqli_connect($host,$db_user,$db_password,$db_name);
?>
کدفایل دوم register.php
<?php

require "init.php";
$name = $_POST["name"];
$email = $_POST["email"];
$user_name = $_POST["user_name"];
$password = $_POST["password"];

$sql = "select * from user_info where email like'".$email."';";
$result = mysqli_query($con,$sql);
$response = array();

if(mysqli_num_rows($result)>0)
{
$code = "reg_failed";
$message = "User already exist ...";
array_push($response,array("code"=>$code,"message"=>$message));
echo json_encode($response);
}
else
{
$sql = "insert into user_info values('".$name."','".$email."','".$user_name."','".$password."');";
$result = mysqli_query($con,$sql);
$code = "reg_success";
$message = "thank you for register with us , now you can login...";
array_push($response,array("code"=>$code,"message"=>$message));
echo json_encode($response);
}
mysqli_close($con);
?>

کد فایل سومی برای لاگین login.php
<?php

require "init.php";
$user_name = $_POST["user_name"];
$password = $_POST["password"];

$sql = "select name , email from user_info where user_name'".$user_name."' and password like '".$password."';";

$result = mysqli_query($con,$sql);
$response = array();
if(mysqli_num_rows($result)>0)
{
$row = mysqli_fetch_row($result);
$name = $row[0];
$email = $row[1];
$code = "login_success";
array_push($response,array("code"=>$code,"name"=>$name,"email"=>$email));
echo json_encode($response);
}
else
{
$code = "login_failed";
$message = "User not found ... please try again...";
array_push($response,array("code"=>$code,"message"=>$message));
echo json_encode($response);
}
mysqli_close($con);
?>

کدفایل register.html برای رجیستر کردن از صفحه وب
<html>
<body>
<form action="register.php" method="post">
<table>
<tr>
<td>Name :</td><td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Email :</td><td><input type="text" name="email"/></td>
</tr>
<tr>
<td>User Name :</td><td><input type="text" name="user_name"/></td>
</tr>
<tr>
<td>Password :</td><td><input type="password" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="register"/></td>
</tr>
</table>
</form>
</body>
</html>
کد فایل login.html برای لاگین شدن از صفحه وب

<div id="login_form">
<form name="f1" method="post" action="login.php" id="f1">
<table>
<tr>
<td class="f1_label">User Name :</td><td><input type="text" name="username" value="" />
</td>
</tr>
<tr>
<td class="f1_label">Password :</td><td><input type="password" name="password" value="" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="login" value="Log In" style="font-size:18px; " />
</td>
</tr>
</table>
</form>
</div>


ببینم کسی کمک می کنه یا نه
  پاسخ
تشکر شده توسط :
#5
نقل قول: ببینم کسی کمک می کنه یا نه
Dodgy

این کدها رو خودتون نوشتید ؟
باگ sql injection دارد
پسورد hash نشده است .

در کل پیشنهاد میکنم بطور کامل پی اچ پی را یاد بگیرید بعدا اقدام به پیاده سازی بکنید .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۵ دى ۱۹, ۱۱:۲۹ ب.ظ)Reza نوشته:
نقل قول: ببینم کسی کمک می کنه یا نه
Dodgy

این کدها رو خودتون نوشتید ؟
باگ sql injection دارد
پسورد hash نشده است .

در کل پیشنهاد میکنم بطور کامل پی اچ پی را یاد بگیرید بعدا اقدام به پیاده سازی بکنید .

اون ارروری که شما می گین برای کانکت نشدن به دیتابیس نیست ؟

یکم بیشتر توضیح بدین ببینم منظورتون چیه
  پاسخ
تشکر شده توسط :
#7
من سرچ زدم اون ارروری که گفتین برا اینه که پسوورد رمز گذاری نشده و خیلی راحت هک می شه ربطی نداره به موضوع

فکر کردم تو این انجمن کسی پیدا بشه کمک کنه
  پاسخ
تشکر شده توسط :
#8
فکر کنم توی کوئری زدن عجله کردید
کدها رو عوض کنید
کد:
login.php
$sql = "select name , email from user_info where user_name'".$user_name."' and password like '".$password."';";

change to:
$sql = "select name , email from user_info where user_name='$user_name' and password='$password'";

/////////////////////////////////////////////////////
register.php:
$sql = "select * from user_info where email like'".$email."';";
$sql = "insert into user_info values('".$name."','".$email."','".$user_name."','".$password."');";

change to:
$sql = "select * from user_info where email like '$email'";
$sql = "insert into user_info values('".$name."','".$email."','".$user_name."','".$password."')";
امیدوارم درست بشه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان