شروع فرهنگ سازی ارائه کدهای آماده !

Cussed

Member
سلام این تاپیک بسته نشه لطفا ( انگار به حرف منه )

آقایون میترسم بگم من یک چیزی میخوام بعد همه با تکواندو بریزن " ما کد آماده نمی نویسیم " - " شما خودت یاد بگیر " - " سرچ کن ( نخود سیاه ) " و امسال این ها

من حقیقت کارم C++ هست حوصله یادگیری PHP را ندارم ولی دوست دارم یکی این وسط مردانگی کنه یک PHP که کلش 10 دقیقه نمیشه برای من ردیف کنه من اهل انجمن نیستم ولی انقدر کارم گیر بود گفتم بعد از مدت ها سر بزنم به مجیدآنلاین

هدف من یک تغییر پسورد ساده بدونه لوگین کردن هست ( رو هوا تغییر پسورد کنند )

USERNAM
|---------------------|
|---------------------|
PASSWORD
|---------------------|
|---------------------|
NEW PASSWORD
|---------------------|
|---------------------|

SUBMIT

جان من آسان نیست ؟

فقط SQL مانده این هم SQL

PHP:
DROP TABLE IF EXISTS `account`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `account` (
  `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Identifier',
  `username`      varchar(32) NOT NULL default '',
  `sha_pass_hash` varchar(40) NOT NULL default '',
  `sessionkey` longtext,
  `v` longtext,
  `s` longtext,
  `email` text,
  `joindate` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `last_ip` varchar(30) NOT NULL default '127.0.0.1',
  `failed_logins` int(11) unsigned NOT NULL default '0',
  `locked` tinyint(3) unsigned NOT NULL default '0',
  `last_login` timestamp NOT NULL default '0000-00-00 00:00:00',
  `online` tinyint(4) NOT NULL default '0',
  `expansion` tinyint(3) unsigned NOT NULL default '2',
  `mutetime` bigint(40) unsigned NOT NULL default '0',
  `locale` tinyint(3) unsigned NOT NULL default '0',
  `recruiter` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `idx_username` (`username`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='Account System';
اینم یک اکانت TEST
PHP:
INSERT INTO `account` VALUES ('8', 'test', 'f488fb7ecbcd0378a9c2af0194fe38ed87dd7be8', null, null, null, '[email protected]', '2010-11-18 06:33:20', '127.0.0.1', '0', '0', '0000-00-00 00:00:00', '0', '2', '0', '0', '0', null);

تغییر پسورد هم بر اساس SHA1 هست
 
آخرین ویرایش:

Milad

Well-Known Member
فقط متغیر های بالای کد رو مقدار دهی کن :

PHP:
<?php

$dbname = '';//database Name
$host_name = '';//Host name
$db_username='';//db user name
$db_pass='';//db pass

mysql_connect($host_name,$db_username,$db_pass)or die("Could not connect: " . mysql_error());
mysql_select_db($dbname);

$username=$_POST['user'];//user name
$password=sha1($_POST['pass']);//pass
$new_pass=sha1($_POST['npass']);//new password

//user check
$result = mysql_query("SELECT * FROM `account` WHERE `username` = '$username' AND `sha_pass_hash` = '$password'");
$Nresult = mysql_num_rows($result);

if (!$Nresult){
    die('Name karbari ya password eshtebah ast');
}

//pass update
$suc=mysql_query("UPDATE `$dbname`.`account` SET `sha_pass_hash` = '$new_pass' WHERE `account`.`username` = '$username'");
echo ' Password ba movafaghieat taviz shod ';

?>
 
آخرین ویرایش:

Cussed

Member
سلام یک دنیا ممنون ولی یک مشکلی هست این کد HTML من هست

کد:
<form name="form1" method="post" action="aa.php">
  <label>username
  <input type="text" name="user" id="user">
  </label>
  <p>
    <label>password
    <input type="text" name="pass" id="pass">
    </label>
  </p>
  <p>
    <label>new password
    <input type="text" name="npass" id="npass">
    </label>
  </p>
  <p>
    <label>submit
    <input type="submit" name="ok" id="ok" value="Submit">
    </label>
</p>
</form>

سعی کردم پسورد را عوض کنم ولی نشد و Error میده " Name karbari ya password eshtebah ast"

به Line 25 هم گیر داد "{" که برداشتم مشکل حل شد حالا نمیدونم اشتباه هست یا خیر

ممنون میشم اگر کمک کنید .
 

Milad

Well-Known Member
فرم مشکلی نداره ، { اضافه هست ( از کجا اومده ؟ ) ، اون echo $Nresult هم اضافه هست یادم رفت بر دارم البته تاثیری نداره ( کد رو همون بالا تغییر دادم ) ، احتمالا پسوردی که تو دیتابیس هست اشتباهه ، زمانی که پسورد رو وارد میکنی و با sha1 کد میشه با پسورد موجود در دیتابیس همخوانی نداره !

این رو وارد کن تو فیلد پسورد کاربر مورد نظرت > 356a192b7913b04c54574d18c28d46e6395428ab و موقع تست پسورد رو 1 وارد کن.

ziXet عزیز هم راست میگه ، کد آماده یکم با این موضوع شما فرق میکرد ...

موفق باشی :rose:
 

Cussed

Member
بله دقیقاً همینطوره ! امیدوارم خدا خیر و برکت بهت بده ممنون .

فقط یک مشکل داره اینکه کد sha1 قبلی ها رو قبول نمیکنه ! راه حلی هست ؟

یعنی به قول شما باید یکی مثل این اول وارد کنی 356a192b7913b04c54574d18c28d46e6395428ab که راه بیوفته !
 
آخرین ویرایش:

Milad

Well-Known Member
دلیلش این هست که اشتباه کد شدن ، شما چجوری از sha1 استفاده میکنید ؟ تو PhpMyAdmin موقع Insert اطلاعات تو دیتابیس از قسمت function گزینه sha1 رو انتخاب کنید که مقدار به صورت کد شده ذخیره بشه ...
 

Cussed

Member
سلام ممنون بله به کمک کدهای شما توانستیم این کار را انجام بدیم البته دیشب آقا مسعود مسئله پسورد ها رو حل کرد برای من .

از هر دو شما تشکر میکنم .
 

جدیدترین ارسال ها

بالا