PDA

View Full Version : شماره رکورد



speeed
سه شنبه 18 بهمن 1390, 23:54 عصر
با سلام
دوستان من یه سیستمی طراحی کردم که کاربر یوزر نیم و پسوردشو میزنه وارد میشه.
بعد حالا میخوام وقتی وارد شد مثلا ایمیلش هم یک تیکه نشون داده بشه و یه صفحه جدا هم بزارم واسه مدیریت که توی اون مثلا تاریخ عضویت اینها هم لود بشه همشون هم توی یه تیبل هستند.
میشه بگید چطوری باید این کارو بکنم.
:قلب:

MMSHFE
چهارشنبه 19 بهمن 1390, 09:08 صبح
دوست عزیز، شما میتونید موقع ورود کاربر، شناسه کاربری اون رو توی Session ذخیره کنید و توی هر صفحه دلخواه، اون رو خونده و اطلاعات موردنظر رو از جدول کاربران برحسب همون شناسه استخراج کنید.
موفق باشید.

speeed
چهارشنبه 19 بهمن 1390, 10:21 صبح
ممنون واقعا
این کد لوگین منه


<?php
session_start();
include('config.php');
@mysql_connect($hostname,$user,$password) or die('Connection error');
@mysql_select_db($dbname) or die('select db error');
$username = $_POST['username'];
$password = $_POST['password'];
$pass = md5($password);
$sql = "SELECT `pass`
FROM `users`
WHERE `user` = '$username'";
$Result = mysql_query($sql);
if(mysql_num_rows($Result) == 1 && mysql_result($Result, 0) == $password)
{
$_SESSION['UserName'] = $username;

$ClientString = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'];
$_SESSION['ClientStr'] = md5($ClientString);

header("Location: user/index.php");
} else {
header("Location:index.php");
}
?>

حالا باید اول select کنم اطلاعات رو ؟
یه سوال دیگه این کدی که من دارم امن هست یا نه ؟

speeed
چهارشنبه 19 بهمن 1390, 17:28 عصر
دوستان نظری ندارید؟
االان یه توضیح کوچلو میشه بدید ؟

MMSHFE
چهارشنبه 19 بهمن 1390, 18:14 عصر
دوست عزیز، شما الآن نام کاربری رو توی Session دارین. الآن کافیه هرجا نیاز به اطلاعات کاربر داشتین، با استفاده از این شناسه و یک Query ساده، اطلاعات دلخواهتون رو درباره اون کاربر از جدول کاربران استخراج کرده و نمایش بدین.
موفق باشید.

speeed
یک شنبه 23 بهمن 1390, 09:25 صبح
سلام داداش خسته نباشید
این درسته؟الان 0 میاره همش

<?php
session_start();
include('config.php');
@mysql_connect($hostname,$user,$password) or die('Connection error');
@mysql_select_db($dbname) or die('select db error');
$username = $_POST['username'];
$password = $_POST['password'];
$pass = md5($password);
$sql = "SELECT `pass`
FROM `users`
WHERE `user` = '$username'";
$sql1 = mysql_query("SELECT `code`
FROM `users`
WHERE `user` = '$username'");
$sql2 = mysql_query("SELECT `namedaftar`
FROM `users`
WHERE `user` = '$username'");

$Result = mysql_query($sql);

if(mysql_num_rows($Result) == 1 && mysql_result($Result, 0) == $password)
{
$_SESSION['UserName'] = $username;

$_SESSION['Code']=$sql1;
$_SESSION['daftar']=$sql2;

$ClientString = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'];
$_SESSION['ClientStr'] = md5($ClientString);

header("Location: user/index.php");
} else {
header("Location:index.php");
}
?>

MMSHFE
یک شنبه 23 بهمن 1390, 09:46 صبح
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header("Location: user/index.php");
}
else {
header("Location: index.php");
}
}

speeed
یک شنبه 23 بهمن 1390, 19:34 عصر
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header("Location: user/index.php");
}
else {
header("Location: index.php");
}
}

داداش میشه اینو تست کنید الان من میزنم تو صفحه login.php که اکشن هستش میمونه و هدر لوکشن نمیکنه

MMSHFE
یک شنبه 23 بهمن 1390, 19:39 عصر
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header('Location: user/index.php');
}
else {
header('Location: index.php');
}
}
else {
header('Location: index.php');
}

امیـرحسین
یک شنبه 23 بهمن 1390, 20:42 عصر
اینم بازی بدید: mysql_real_escape_string (http://www.php.net/manual/en/function.mysql-real-escape-string.php)

MMSHFE
یک شنبه 23 بهمن 1390, 21:04 عصر
به روی چشم:


session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header('Location: user/index.php');
}
else {
header('Location: index.php');
}
}
else {
header('Location: index.php');
}

speeed
یک شنبه 23 بهمن 1390, 21:45 عصر
هنوز کار نمیکنه :متفکر:
من هر چی روش فکر کردم جایی از کار مشکل نداره که ولی باز میره به همون صفحه index

MMSHFE
دوشنبه 24 بهمن 1390, 12:03 عصر
میشه کد فرم لاگین رو همراه با کد کامل صفحه مقصد بگذارین؟

speeed
دوشنبه 24 بهمن 1390, 20:36 عصر
این کد فرم

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>سامانه ورود کاربر بیمه</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body style="font-family:Tahoma, Geneva, sans-serif">
<div class="log">
<div id="logo"></div>
<div id="logch">
<div id="logh" align="right"></div><br/>

<form action="login.php" method="post">
<center>

<input name="username" type="text" />
نام کاربر <br/>
<input name="password" type="password" />
رمزعبور <br/><br/>
<input name="sumbit" type="submit" id="sumbit" value="ورود" />
<br/><br/>
<div id="logf"></div>
</center>
</form>
</div>
</div>
</body>
</html>


اینم کد صفحه login.php

<?php
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header('Location: user/index.php');
}
else {
header('Location: index.php');
}
}
else {
header('Location: index.php');
}
?>

MMSHFE
سه شنبه 25 بهمن 1390, 07:26 صبح
توی دیتابیس رمز رو خام ذخیره کردین یا بصورت Hash ذخیره شده؟

speeed
سه شنبه 25 بهمن 1390, 21:12 عصر
اره به صورت خام هست

MMSHFE
چهارشنبه 26 بهمن 1390, 00:27 صبح
خوب عزیز نباید هم لاگین بشه چون شما دارین هش MD5 رو با رمز توی دیتابیس مقایسه میکنید. از کد زیر استفاده کنید:


<?php
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? mysql_real_escape_string($_POST['password']) : '';
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($password == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
header('Location: user/index.php');
}
else {
header('Location: index.php');
}
}
else {
header('Location: index.php');
}
?>

موفق باشید.

speeed
چهارشنبه 26 بهمن 1390, 21:20 عصر
عجیبه جواب نمیده
شما تست کردی؟
الان تو دیتابایس هم به صورت هش شده استفاده کردم و کد قبلی رو تست کردم جواب نمیده؟

MMSHFE
پنج شنبه 27 بهمن 1390, 09:34 صبح
میگم یه کاری کنید. دستورات header رو بصورت کامنت در بیارین و به جای اونها یک مقدار echo کنید. مثلاً برای اولی ;echo 1 و برای دومی ;echo 2 و... بگذارین ببینید چی چاپ میشه تا ببینیم کدوم قسمت از شرطها درسته و اونوقت تغییرات لازم رو برحسب اون انجام بدیم.

speeed
پنج شنبه 27 بهمن 1390, 10:24 صبح
داداش چاپ میکنه:wwwwWelcome
اینم از کدش فکر کنم اصلا نمیتونه چک کنه با دیتابایس

<?php
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}) ORDER BY `user` LIMIT 1'";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
//header('Location: user/index.php');
echo("Welcome");
}
else {
echo("wwWelcome");//header('Location: index.php');
}
}
else {
echo("wwwwWelcome");//header('Location: index.php');
}
?>

speeed
پنج شنبه 27 بهمن 1390, 11:15 صبح
به نظرت چشه داداش
من فکر کنم نمیتونه چک کنه

MMSHFE
پنج شنبه 27 بهمن 1390, 11:17 صبح
جالبه! بعد از {username$} توی کوئری یک کوتیشن تک جا مونده. اون رو بگذارین. شرمنده، سریع تایپ کرده بودم. البته اینجور مواقع بد نیست با mysql_error ببینید چه خطایی تولید شده و مشکل رو رفع کنید. موفق باشید.

speeed
پنج شنبه 27 بهمن 1390, 15:40 عصر
جالبه بازهم هنوز جواب نمیده خیلی عجیبه ها

MMSHFE
پنج شنبه 27 بهمن 1390, 16:10 عصر
خطا رو میشه با mysql_error چاپ کنید ببینیم مشکل چیه؟ دقیقاً بعد از دستور mysql_query، دستور زیر رو بنویسید:

echo mysq_error();
و تمام دستورات header رو تبدیل به کامنت کنید، ببینیم مشکل از کجاست.
موفق باشید.

speeed
پنج شنبه 27 بهمن 1390, 16:47 عصر
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
این ارورش هست

speeed
پنج شنبه 27 بهمن 1390, 17:58 عصر
دوستان نظری ندارید
داداش میشه یه بار دیگه بنویسی ؟
خیلی مهمه برام :(

MMSHFE
پنج شنبه 27 بهمن 1390, 18:11 عصر
session_start();
require_once 'config.php';
@mysql_connect($hostname, $user, $password) or die('Connection error');
@mysql_select_db($dbname) or die('Database error');
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$pass = md5($password);
$sql = "SELECT * FROM `users` WHERE (`user`='{$username}') ORDER BY `user` LIMIT 1";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc($result);
if($pass == $row['pass']) {
$_SESSION['UserName'] = $row['username'];
$_SESSION['Code'] = $row['code'];
$_SESSION['daftar'] = $row['namedaftar'];
$_SESSION['ClientStr'] = md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
//header('Location: user/index.php');
echo("Welcome");
}
else {
echo("wwWelcome");//header('Location: index.php');
}
}
else {
echo("wwwwWelcome");//header('Location: index.php');
}

:لبخند: یک ' آخر کوئری هم اضافه بود. خوش انصاف! خطا داره میگه کوئری اشکال داره. مشکل هم از یک گیومه هست. خوب نگاه کن برادر من ببین کجای کوئری مشکل داره دیگه! :چشمک:

speeed
پنج شنبه 27 بهمن 1390, 19:00 عصر
بخدا هنگ کردم سرم درد گرفت از بس رو این پروژه کار کردم اخه اولین پروژم هست و خیلی بزرگه
بازم نمیاره اینو چاپ میکنه wwWelcome :گریه:

MMSHFE
پنج شنبه 27 بهمن 1390, 19:03 عصر
خوب ایندفعه مشکل از اینجاست که رمز واردشده با رمز توی دیتابیس یکی نیست. توی دیتابیس هش شده گذاشتین یا معمولی؟ اگه معمولی هست، تابع md5 رو از کد حذف کنید. اگر هم هش شده هست، ببینید حروف کوچک و بزرگ و... رو رعایت کردین؟ بعلاوه نام فیلدها درسته؟

speeed
پنج شنبه 27 بهمن 1390, 19:29 عصر
بالاخره درست شد.
دمتون گرم داداش تو این چند پست خیلی تجربه کسب کردم
واقعا تشکر