X
تبلیغات
پیکوفایل
رایتل
پشم سنگ عایق الاستومری
پنج‌شنبه 29 تیر‌ماه سال 1385
توسط: آلفا پک

آموزش ذخیره اطلاعات با Flash و Php

البته چون این مطلب توژه آماده نشد برای اینکه وبلاگ خالی نباشه براتون اینو گذاشتم به جون شما خیلی با حاله این مقاله و خیلی هم کاربردیه :

آموزش ذخیره اطلاعات با Flash و Php

( و چگونگی ارتباط با بانکهای اطلاعاتی)

سطح : پیشرفته

سلام دوستان ...

چند تا از دوستان بهم پیغام خصوصی داده بودن که این مقاله رو بنویسم ... و حالا با کمی تاخیر به قولم عمل میکنم ...

اول باید چند تا نکته رو بگم ...

 فلش (فعلا) این قابلیت رو نداره که اطلاعات شما (معمولا متغیر ها) رو به طور مستقیم داخل یه فایل ذخیره کنه و یا اینکه با بانکهای اطلاعاتی ارتباط داشته باشه ...

البته قابلیتی که در فلش MX 2004 گنجونده شده اینه که شما میتونید با استفاده از اون مکانی رو برای ذخیره اطلاعات قرار بدید ...

ٌٌکه البته دو تا عیب داره ... یکی اینکه دوراز دسترس کاربر نهاییه و دیگری این که شما فقط در Windows میتونید از اون استفاده کنید و امکان استفاده در Server رو ندارید ...

حالا ما اینجا روشی رو میگیم که شما میتونید با استفاده از اون در سرور هایی که Php رو پشتیبانی میکنن ، اطلاعات تون رو ذخیره کنید ...

در آخر هم با استفاده از همین روش ، چگونگی ارتباط بین فلش و Php رو برای دسترسی به MySql DataBase می گیم ...

 

برای اینکه شما بتونید اطلاعاتتون رو ذخیره کنید به این احتیاج دارید که متغیر هاتون رو به یک فایل Php بفرستید تا براتون ذخیره کنه ...

فرستادن متغیر ها به دو صورت ( متد Method ) امکان پذیره ... یکی به صورت GET و دیگری به صورت POST  . درخواست های Get معمولا از ایمنی کمتری برخوردارن ... چون محتویات متغیر هاتون رو هنگام ارسال ، بصورت واضح نشون میده .... (البته نه در فلش ... اگر در فلش از این متد استفاده کنید ... فقط توی Temporary Internet Files در خواست ها دیده میشن)

در خواست های GET معمولا به صورت زیره :

 

http://www.Your-Server.com/file.php?variable=Content
همونطور که میبینید به وضوح ، توی فایل "File.php" متغیری به نام "variable" ایجاد شده که محتویاتش "Content" هست ...

اما درخواست های POST بدون اینکه دیده بشن ، ارسال میشن ...

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

حالا شروع میکنیم به ساخت فایلهامون ...

فرض کنید میخوایم یه فرم بسازیم که کابر بتونه توسط اون ثبت نام کنه ... و شما هم میخواید که نام کابری ، کلمه عبور و ایمیل اون رو با فرمت خاصی وارد فایلی به نام "Users.txt" بکنید ...

میخوایم هر کاربری که ثبت نام میکنه با فرمت Username: String/Password: Hash Md5/E-mail: String توی فایل بنویسید ... مثلا این یه فایل نمونه است :

 

Amir/ca0dbad92a874b2f69b549293387925e/amir_s32@yahoo.com

Majid/ff8104697613ed3ef1ad05867fccbe3c/info@majidonline.com

Kami_mz/e46fa9f744f9c59384eaa308ae9012e8/info@farsiprojects.com

البته باید رو این نکته دقت داشته باشید که نام کاربری و ایمیل نباید حاوی کاراکتر "/" باشند ...

خوب ... حالا فرم رو درست میکنیم :

همونطور که میبینید کلا 5 تا فیلد هست که 4 تا شون باید توسط کاربر پر بشه ...

4 فیلد اول به ترتیب به متغیر های email ، userpassword2 ، userpassword ، username پیوند داده شدن، فیلد پنجمن هم برای نشون دادن اینه که برنامه در حال انجام چه کاری هست ، که اون هم به متغیر state پیوند داده شده

 دقت کنید که Instance name فیلد نام کاربری username_f و برای ایمیل email_f هست ...

برای اینکه کاربر نتونه کاراکتر "/" رو توی نام کاربری وارد کنه و ما هم محدودیت بیشتری رو برای وارد کردن ایمیل بذاریم ، باید این کاراکتر هایی که اجازه ورود به فیلدها رو دارن محدود کنیم ، این اسکریپت رو به تنها فریم فایل میدیم :

 

username_f.restrict = "0-9"+"a-z"+"A-Z"+"\-_.";
email_f.restrict = "0-9"+"a-z"+"A-Z"+"\-_"+"@.";
برای اینکه کاربر ایمیل خودشو درست وارد کنه ، این تابع رو هم تعریف میکنیم ... (چون اصل کار ما در اینجا ارتباط با سرور هست ، در باره این کد توضیحی نمیدم) ، این کد رو در فریم اول بذارید :

 

function checkMail(mail:String) {
       var out:Boolean;
       if (mail.length<6) {
              out = false;
              state = "Email address too short";
       } else if (mail.indexOf("@") == -1) {
              out = false;
              state = "Missing @";
       } else if (mail.indexOf(".") == -1) {
              out = false;
              state = "Missing the dot";
       } else {
              state = "";
              out = true;
       }
       return out;
}
 

خوب حالا این اسکریپت رو هم به دکمه میدیم :

on (release) {
       if ((userpassword == userpassword2) and (username != undefined) and (checkMail(email))) {
              this.loadVariables("http://www.Your-Server.com/reg.php","POST");
             
state = "Crating your Profile";
              listen = true;
       }
}
   نکته : ما در اینجا از متد POST استفاده میکنیم و اطلاعات رو به آدرس http://www.Your-Server.com/reg.php میفرستیم ، شما باید آدرس فایل خودتون رو اینجا وارد کنید ...

چیز دیگه ای که اینجا اضافه شده قسمتی هست که متغیر listen رو روی true تنظیم میکنه ... ما با این کار میخوایم قسمتی از برنامه رو وادار به این کار بکنیم که ببینه ثبت نام کی تموم میشه و بعد به کاربر اطلاع بدیم ...

پس این کد رو هم در ادامه توی فریم اول میذاریم :

 

onEnterFrame = function () {
       if (listen) {
              if (created == "ok") {
                     listen = false;
                     state = "Your profile created !";
              }else if (created == "problem") {
                     listen = false;
                     state = "ERROR !!!";
              }
       }
}
                         (این ابتدایی ترین کار ممکنه !)

خوب ... کار ما با فلش تموم شد ... میریم سراغ Php :

یه فایل به اسم reg.php درست بکنید  ... توی Php برای اینکه به متغیر های ارسالی دسترسی داشته باشید ، باید از آرایه هایی به نام " آرایه های انجمنی " و یا " فراگیر " استفاده کنید ...

این آرایه ها به طور کلی به این شکل هستن : 

$HTTP_*_VARS["variable"];
 

شما میتونید به جای * از کلمات POST ویا GET استفاده کنید و اندیس (Index) آرایه تون رو اسم متغیر بدید ، برای مثال :

$HTTP_POST_VARS["username"];
 

البته میتونید به جای نوشتن اسم بلند این آرایه ، از آرایه های کوتاه تر استفاده کنید :

$_POST["username"];

$_GET["username"];

   (توجه کنید که در Php تمام متغیر ها با علامت "$" شروع میشوند)

.... فایل reg.php رو باز میکنیم و اینها رو توش مینویسیم :

<?php
    $username
= $_POST["username"];
    
$password = md5($_POST["userpassword"]);
    
$email = $_POST["email"];
    if (
$file = fopen("Users.txt","a+")) {
        if (
fwrite($file,"$username/$password/$email ")) {
            echo(
"created=ok");
        }else {
            echo(
"created=problem");
            exit;
        }
    }else {
        echo(
"created=problem");
        
fclose($file);
        exit;
    }
    
fclose($file);
?>
   شما به همین صورت میتونید متغیر های جدیدی اضافه کنید و استفاده کنید ...

   برای برقرار کردن ارتباط بین فلش و MySQL هم میتونید از همین روش استفاده کنید ... اطلاعات رو از فلش بگیرید و query های مورد نیاز خودتون رو با استفاده از اونها درست بکنید ...

    برای این کار باید در زمینه دیتابیس ها خبره باشید ... برای مثال :

<?php
    $username
= $_POST["username"];
    
$password = md5($_POST["password"]);
    
$email = $_POST["email"];
    
//-------------------------------------
    
$dbhost = "localhost";
    
$dbname = "onlineReg";
    
$dbusername = "root";
    
$dbpassword = "secret";
    
$conn = mysql_connect($dbhost,$dbusername,$dbpassword) or die("state=Internal Error !");
    
$sql = mysql_select_db($dbname,$conn) or die ("state=Internal Error !");
    
$query = "INSERT INTO users VALUES ($username,$password)";
    
mysql_query($query,$conn);
    
mysql_close($conn);
?>
 

شما به همین ترتیب میتونید انواع query های خودتون رو بسازید و حتی اطلاعات به دست اومده از اون ها رو در قالب خاصی که فلش پشتیبانی میکنه ، توسط دستور echo چاپ کنید ...

 موفق باشید ...

 

امیر صبوری

فایل fla و php برای دریافت

www.PersianGraphist.com

www.MajidOnline.com