PDA

View Full Version : سوال: مشکل بسیار جدی با ساختن فرم ورود در C



mahdi011
دوشنبه 11 فروردین 1393, 20:16 عصر
سلام دوستان !
من تازه شروع به یاد کردن C کردم و میخوام یه نرم افزار بنویسم که وقتی اجرا شد اول یه فرم لاگین بیاد و یوزرنیم + پسورد بخواد و اگه این یوزرنیم + پسورد درست بود بقیه ی کار رو بکنه !
توی فرم لایگن به یه مشکل بر خوردم !!!!!!!!!

اینم سورسش:


#include stdio.h>
int main(){
char *user;
printf("PassWord : ");
scanf("%s", &user);
if( user=='4' ){
printf("\t\t\t[+] In The Name Of Allah [+]\n");
printf("[+] Test\n");
}}

درضمن با کامپایلر GCC در دبیان کامپایل کردم.

این فرم لاگین درست هست ولی اگه پسوردی که توی برنامه میدم یه عدد 2 رقمی باشه , هم توی کامپایل یه وارنینگ میده و هم توی اجرا وقتی اونو میزنم میگه اشتباه ولی اگه 1 رقمی باشه توی کامپایل اروری نمیده و توی اجرا که میزنمش وارد میشه !
اگه ممکنه یه فرم ساده که پسورد بخواد رو برام بنویسید یا همینو کامل کنید :X
پیشاپیش دست کسانی رو که کمکم میکنن میبوسم :X

one hacker alone
دوشنبه 11 فروردین 1393, 21:39 عصر
نکته ی اول اینکه شما برای مقایسه ی رشته نمیتونید از عملگر مقایسه ای == استفاده کنید
نکته ی دوم اینکه فرمی در کار نیست که بخواید یوزر پسورد بگیره و در واقع برنامه شما تحت کنسول هست و خبری از فرم نیست
برای ایجاد UI در لینوکس از GTK ,Qt و... میتونید استفاده کنید و در ویندوز MFC.

mahdi011
دوشنبه 11 فروردین 1393, 22:08 عصر
ممنون
داداش من منظورم اینه که وقتی تحت کنسول اجرا میکنیم یه متن بیاد که پسورد رو بگیره و اگه با پسوردی که توی سورس دادیم مطابقت داشت وارد بشه !

داداش میشه یه نمونه ی ساده برام بنویسی ؟ بخدا خیلی تلاش کردم اما اموزشش نیس :(
ممنون میشم کمکم کنی :X

(با چه عملگری میشه مقدار 2 رشته رو مقایسه کرد ؟؟ -- ممنون میشم یه نمونه بنویسی :قلب:)

mahdi011
دوشنبه 11 فروردین 1393, 23:21 عصر
ممنون
مشکلم حل شد.

one hacker alone
سه شنبه 12 فروردین 1393, 00:01 صبح
سلام
خدارو شکر حل شد این کد رو تو ویژوال نوشتم میزارم کسی نیاز داشت استفاده کنه

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
void project()
{
cout<<"wellcom to my program";
}
int _tmain(int argc, _TCHAR* argv[])
{
char user[100],pass[100];
cout<<"please enter Username:";
cin.getline(user,100);
cout<<endl<<"Password:";
cin.getline(pass,100);
if(strcmp(user,"ali")==0)
{
if(strcmp(pass,"123")==0)
{
project();
}
else
return 0;
}

getch();
return 0;
}

nrp man
سه شنبه 12 فروردین 1393, 01:43 صبح
#include <stdio.h>#include <errno.h>
#include <stdlib.h>
#include <string.h>
#define uName "Something"
#define uPass "Somthing else"


int main (int argc , char ** argv) {
char * oName;
char * oPass;
if(argc !=3)
{
fprintf(stderr,"Usage : USER_NAME PASSWORD \n \n");
exit(1);
}

oName = argv[1];
oPass = argv[2];


if(strcmp(oName,uName) && strcmp(oPass , uPass) == 0)
puts("SUCCESS!");
else
puts("FAILURE!");


return 0;
}