DB-access/PHP/SQL/FLASH...( آموزش reg , Login)

kiarash.M

Active Member
سلام :)

برای ادرست کردن یک صحفه عضویت و ساین این ..احنیاج به جایی داریم که اطلاعات اونجا ذخیره شه
برای ذخیره مجبوریم از PHP و SQL استفاده کنیم و برای فراخونی و پردازش PHP راحت تره از خود فلش ..

پس فلش اینجا 2 کار انجام میده
1) اینترفیس کار
2) ارسال و دریافت مجدد اطلاعات

برای شروع تویه DB تون (هر چی که هست ..) یه table میسازید به نام (این نام ها اختیاری ولی در ادامه من بان نام ها کارکردم پس اگه عوض میکنی همهجا رو باید عوض کنید ...) " members_tbl " حالا توی این table ..فیلد های برای ذخیره اطلاعات قرار میدهیم ... برای راحتی کار میتونید در قسمت SQL بعد از ساخت Table کدهای زیر را وارد کرده تا فیلد ها ساخته شوند

PHP:
CREATE TABLE IF NOT EXISTS `members_tbl` (
  `ID` int(11) NOT NULL auto_increment,
  `first_name` varchar(255) default NULL,
  `surname` varchar(255) default NULL,
  `age` int(11) default NULL,
  `email` varchar(255) default NULL,
  `password` varchar(255) default NULL,
  PRIMARY KEY  (`ID`)
)

این کدهای به زبان sql اه .. که میگه در table `members_tbl` فیلد های زیر را ایجاد کنه و نوع اونارم مشخص میکنه و ..
یه فایل php هم میشازیم که اطلاعات db تو اون ذخیره شه (usernameo pass ...) برای db یعنی برای اجازه ورود به db...
PHP:
<?php
//mysql details
$remote = false; 

if($remote){

	$host = "localhost";
	$username = "root";
	$dbpassword = "";
	$db = "members_tbl";
}else{

    
	$host = "localhost";
	$username = "root";
	$dbpassword = "";
	$db = "members_tbl";
}

$conn = mysql_connect($host, $username, $dbpassword) or die("could not connect to server");
$select_db = mysql_select_db($db,$conn);
?>
dbDetails.php​


حلا کار با فلش یه صفحه عضویت درست میکنیم :
توش 4 تا تکس فیلد میسازیم
به نامهای mcName,mcSurname,mcAge,mcEmail
ما تو این مثل برای بالا بردن امنیت به جای ارسال E-mail فعال سازی ..یک کلمع عبور جنریت میکنیم و اونو ارسال میکنیم به E-mail کاربر برای کدهای فلش تو ضیحه خاصی نمیدم چون بارها همهجا گفتیم .. فقط جریان SendandLoad رو توضیح میدم
PHP:
var lvSend:LoadVars = new LoadVars();
var lvReceive:LoadVars = new LoadVars();

tMessage.autoSize = true;
mcAge.tInput.restrict = "0-9"; 

mcRegister.onRelease = function() {
	var valid:Boolean = validateForm();
	
	if(valid){

	lvSend.firstname = mcName.tInput.text;
	lvSend.surname = mcSurname.tInput.text;
	lvSend.age = mcAge.tInput.text;
	lvSend.email = mcEmail.tInput.text;
	
	
	lvSend.sendAndLoad("registration.php", lvReceive, "POST");
	}else{
		alert("Please complete all fields");	
	}
};

lvReceive.onLoad = function(success:Boolean) {
	if (success) {
		if(this.result == "emailExists"){
			alert("This email address already exists in the database. Please choose another");
		}else if (this.result == "success") {
			tMessage.text = "Thank you for registering. Your password has been sent to your email address";
			clearTextFields();
		} else {
			tMessage.text = "I'm sorry there has been an error with your registration";
		}
	}
};



function validateForm():Boolean{
	if(mcName.tInput.text == "" || mcSurname.tInput.text == "" || mcAge.tInput.text == "" || mcEmail.tInput.text == ""){
		return false;		
}
        return true;
}


function clearTextFields():Void{
	mcName.tInput.text = "";
	mcSurname.tInput.text = "";
	mcAge.tInput.text = "";
	mcEmail.tInput.text = "";
}


function alert(message:String):Void{
	getURL("javascript:alert('"+message+"');");
}

register.swf​

همون طور که میبینید باید 2 تا دکمه دسرت کنید ..بعد alert ها هم با استفاده از javascript ساخته شده . در مرحله اول اطلاعات به PHP میره و بعد دوباره Load میشه که در اون لحضه فانکشن onLoad اجرا میشه که مقادیر رو برسی و تعیین مینه که اطلات ثبت شد یا نه !

ساخت فایل php :( توضیحاتش واسه انجمن ما نیست :wink: )

PHP:
<?php

require_once("dbDetails.php");



$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$age = $_POST['age'];
$email = $_POST['email'];
$randomPassword = generatePassword();



function generatePassword() {

    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $pass = '' ;

    while ($i <= 7) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $pass = $pass . $tmp;
        $i++;
    }
    return $pass;
}


$SQL = "SELECT * FROM members_tbl WHERE email ='".$email."'";
$rs = mysql_query($SQL,$conn);
$numRows = mysql_num_rows($rs);
if($numRows > 0){
	echo '&result=emailExists&';
	exit();
}




$insertSQL = "INSERT INTO members_tbl(first_name, surname, age, email, password) VALUES ('$firstname', '$surname', '$age', '$email', '$randomPassword')";

$rs = mysql_query($insertSQL,$conn);


if($rs){
  
   sendEmail();
   echo '&result=success&';
}else{
  echo '&result=failure&';
}




function sendEmail(){
	$yourname = 'Kiarash.M'; 
	$youremail = '[email protected]';
	
	//to user
	$headers = "From: $yourname <$youremail>\n";
	$headers .= "Reply-To: $yourname <$youremail>\n";
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1";
	
	
	//the message body
	$message = "Dear ".$GLOBALS['firstname'].",<p> Thank you for registering your password is ".$GLOBALS['randomPassword']."</p>";
	
	
	mail($GLOBALS['email'], "Your login details", $message, $headers);
}

?>
registration.php​




حالا تا اینجای کار ثبت نام انجام شده در حین ثبت نام E-mail تکراری چک میشه و پسوردی برای کاربر به صورت تصادفی جنریت میشه و در آخر به E-mail اش ارسال میشه ...


LOGI IN

اینجام مثل قبل با db بازی میکنیم ..

PHP:
var lvSend:LoadVars = new LoadVars();
var lvReceive:LoadVars = new LoadVars();

tError.autoSize = "right";

mcLogin.onRelease = function() {
	lvSend.email = tEmail.text;
	lvSend.password = tPassword.text;
	lvSend.sendAndLoad("logincheck.php",lvReceive,"POST");
};

lvReceive.onLoad = function(success:Boolean) {
	if (success) {
		kia2.text = this.login;
		if (this.login == "success") {
			getURL("members.php");
		} else {
			tError.text = "I'm sorry you did not enter valid login details";
		}
	} else {
		trace("no reponse from server");
	}
};
login.swf​


PHP:
<?php
session_start();


$email = $_POST['email'];
$password = $_POST['password'];




//mysqldetails
require_once("dbDetails.php");

$SQL = "SELECT * FROM members_tbl WHERE email ='".$email."' AND password = '".$password."'";

$rs = mysql_query($SQL,$conn);
$numRows = mysql_num_rows($rs);



if($numRows > 0){
	$_SESSION['loggedIn'] = true;
	echo "login=success";
}else{
	echo "login=failed!!";

}

?>
logincheck.php​


لازم یه ذکره که این روش قویه و از سشن استفاده میکنه تا بفهمه کاربر login هست یا خیر ..

HTML:
<?php
session_start();
if(!isset($_SESSION['loggedIn'])){
header("Location: login.html");
exit();
}
?><style type="text/css">
<!--
body {
	background-color: #333333;
}
.style1 {
	color: #FFFFCC;
	font-weight: bold;
}
-->
</style>
<span class="style1">
....... Members Area</span>
members.php​

فایل های swf رو بزارید تو html و لذت ببرید
swf ها رو نساختم میسازم UP میکنم .....
:)
 

Learn65

Member
کیارش جان حالا چرا as2 ؟
پس کی نوبت as3 میشه؟
 
آخرین ویرایش:

kiarash.M

Active Member
اين مقاله سفارشي بود واسه يه نفر ....گفته اسمشو نگيم :lol:
فرقي ام نميکينه بياد کار يکي مهم PHP هاش بود با as3 هم همينه ..تقريبا..
 

vahidmomen

New Member
سلام کیارش جان ممنون از آموزشت
ما هنوز منتظر نمونه ی آمادشیما:D
قرار بود up کنی!!!!!!!!!!!:-?
 

kiarash.M

Active Member
ائههههه باشه بخدا هنوز نساختم ..
میزارم اینو از مهم وارداشتنش ( :دی کار رفیقمون امیر بود :دی ) منم یادم رفت :پی ...
 

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

بالا