แก้ไขให้ php ใช้ Short Tags ได้ by

31
Mar
0

ถ้าเราไม่ได้เปิด short_open_tag  ใน ไฟล์ php.ini   เป็น On  เราจะใช้  Short Tags ใน php ไม่ได้

short tag คือ เราสามารถประกาศ tag php แบบนี้ได้เลย  <?    ?>      หรือ  <?=$ตัวแปร ?>

จากรูปที่ 1 ดูตรงส่วนของ Loaded Configuration File คือ path php.ini ที่เราต้องเข้าไปแก้ไข

1

เปิดไฟล์ php.ini   search คำว่า short_open_tag   แล้วแก้เป็น  On

6

วิธีการแก้ไข import database file ไม่ได้เนื่องจาก ขนาดไฟล์ใหญ่เกินกว่าที่กำหนด by

31
Mar
1

โดยปกติแล้ว เราไม่สามารถทำการ import database file ที่มีขนาดเกินค่า default (2mb)ได้

เราต้องเข้าไปแก้ไขไฟล์ php.ini ก่อน

รูปข้างล่างคือ ค่า default  จะเห็นได้ว่า ขนาดที่ import มาต้องไม่เกิน 2 mb

2

ขั้นตอนการแก้ไข

1. เข้าไปที่ localhost     ดู phpinfo()     ตรง Loaded Configuration File จะเป็น path  ที่เราต้องเข้าไปแก้ไขไฟล์ php.ini ตามรูปที่ 1

1

รุปที่ 1

2.เปิดไฟล์ php.ini      search คำว่า upload_max_filesize     จากรูปที่ 2    ให้เราแก้เป็นขนาดที่เราต้องการ   แก้เสร็จแล้วให้เราทำการ restart Apache ใหม่

5

รุปที่ 2

เมื่อแก้ไขเสร็จแล้วให้เราเข้าไป ดู phpMyAdmin ตรงส่วนของการ import จะเห็นได้ว่าขนาด default ได้เปลี่ยนไปแล้ว

4

เปลี่ยนตัวเลข ให้อยู่ในรูปแบบ number format by

1
Feb
0

//เปลี่ยน number fortmat ให้ , เช่น 9999 จะเป็น 9,999
function numberFormat(value:int):String{
var numberFormatter:NumberFormatter = new NumberFormatter();
var formattedVal:String = numberFormatter.format(value);
if (formattedVal.length == 0) {
return numberFormatter.error;
} else {
return formattedVal;
}
}

รูปก่อนที่ยังไม่ได้เปลี่ยนให้อยู่ในรูปแบบ number format
screen-shot-2013-02-01-at-23543-am

รูปที่ได้ทำการเปลี่ยนให้อยู่ในรูปแบบ number format แล้ว
screen-shot-2013-02-01-at-23141-am

Flash + Java Socket ตอนที่ 2 by

1
Feb
0

ไฟล์ .as ต่างๆ

    Main.as
    Login.as
    Lobby.as
    AppManager.as
    Connector.as
    GlobalVar.as
    ChatEvent.as
    ConnectorInterface.as

Main.as

    ตัวจัดการหลักจะเป็น Class AppManager ครับ

package app.flash.common {
import flash.display.MovieClip;
public class Main extends MovieClip {
private static var self:Main = null;
public static function getInstance(){
return self;
}
public function Main() {
self = this;
(AppManager.getInstance()).startApp();
this.addChild(Login.getInstance());
}
}
}

Login.as
หน้า login
package app.flash.common{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.MouseEvent;
public class Login extends MovieClip {
private static var self:Login = null;
private var nameTxt:TextField;
public static function getInstance() {
if (self==null) {
self = new Login();
}
return self;
}
private static function onClicked(e:MouseEvent) {
var login:Login = Login.getInstance();
if (login.nameTxt.text != "") {
var global:GlobalVars = GlobalVars.getInstance();
global.userName = login.nameTxt.text;
var main:Main = Main.getInstance();
main.removeChildAt(0);
main.addChild(global.lobby);
}
}
public function Login() {
nameTxt = name_txt;
nameTxt.border = true;
nameTxt.borderColor = 0xffffff;
nameTxt.text = "";
submit_mc.addEventListener(MouseEvent.CLICK,onClicked);
}
}

}

Lobby.as
ส่วนของ lobby หลักใช้เป็นแค่ Display
package app.flash.common{
import flash.display.MovieClip;
import flash.text.TextField;
public class Lobby extends MovieClip {
public var showTxt:TextField;
public var inputChatTxt:TextField;
public function Lobby() {
showTxt = show_txt;
inputChatTxt = inputChat_txt;
inputChatTxt.border = true;
inputChatTxt.borderColor = 0x000000;
showTxt.text = "chat start::\n";
}
}
}

AppManager.as

package app.flash.common{
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;

public class AppManager implements ConnectorInterface {
private static var self:AppManager = null;
public var socket:Connector = new Connector();
private var chatEvent:ChatEvent = null;
private var global:GlobalVars = GlobalVars.getInstance();
public static function getInstance():AppManager {
if (self == null) {
self = new AppManager();
}
return self;
}
public function sendMessage(msg:String) {
msg = "0( " + global.userName + " ) say: " + msg;
socket.sendMessage(msg);
}
public function onLobby(e:Event) {
var localChatEvent:ChatEvent = e.target as ChatEvent;
var input:String = localChatEvent.msg;
var lobby:Lobby = (GlobalVars.getInstance()).lobby;
lobby.showTxt.appendText(input);
trace("AppManager.onLobby");
}

public function onStart():void {
trace("Connector start");
global.connected = true;
chatEvent = new ChatEvent(socket);
chatEvent.addEventListener("onLobbyMessage",onLobby);
}
public function onTerminate():void {
trace("Connector terminate");
}
public function onMessage(input:String):void {
trace("onMessage from main");
}
public function onError():void {
trace("onError from main");
global.connected = false;
}
public function startApp():void {
socket.host = "localhost"; // url ของ server ในตัวอย่างนี้ใช้ localhost
socket.port = 8080; // port ที่ใช้ในการ connect เข้าไป
socket.delegate = this;
socket.startConnect(); // สั่งให้ socket connect socket.connect(host,port);
}
}
}

Connector.as
package app.flash.common{
import flash.net.Socket;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.system.Security;
import flash.utils.ByteArray;
public class Connector extends Socket {
public static var self:Connector = null;
public var delegate:ConnectorInterface = null;
public var host:String;
public var port:int;
public var msg:String;
public function startConnect() {
this.connect(host,port);

}
// function นี้ใช้สำหรับส่ง ข้อมูลไปให้ server ที่เราได้ทำการ connect ไว้ตั้งแต่ตอนแรก
public function sendMessage(sender:String) {
trace("send '"+sender+"' to server");
this.writeUTFBytes(sender+"\n");
this.flush();
trace("end");
}
private static function onConnected(e:Event):void {
self.delegate.onStart(); //ส่งไปบอก AppManager ว่าทำการ connect server สำเร็จ
}
private static function onError(e:IOErrorEvent):void {
self.delegate.onError();
}

private static function onMessage(e:ProgressEvent):void {
try {
var msg:String = self.readUTFBytes(self.bytesAvailable); // ข้อมุลที่ได้จากทางฝั่ง server
self.msg = msg;
} catch (e:Event) {
trace(e.toString());
}
}
private static function onServerClose(e:Event):void {
self.delegate.onTerminate();
}
private static function sError(SecurityErrorEvent):void {
trace("security error");
}
public function Connector() {
self = this;
this.objectEncoding = 0;
this.addEventListener(Event.CONNECT,onConnected); // connect to server
this.addEventListener(IOErrorEvent.IO_ERROR,onError);
this.addEventListener(ProgressEvent.SOCKET_DATA,onMessage); //เมื่อได้รับข้อมุลจากทาง server Event ตัวนี้จะทำงานก็ต่อเมื่อ server มีการส่งข้อมูลเข้ามา
this.addEventListener(Event.CLOSE,onServerClose);
this.addEventListener(SecurityErrorEvent.SECURITY_ERROR,sError);
}
}
}

GlobalVar.as
package app.flash.common{
import flash.events.MouseEvent;
public class GlobalVars {
private static var self:GlobalVars = null;
public var lobby:Lobby = new Lobby();
public var login:Login = Login.getInstance();
public var connected:Boolean = false;
public var userName:String;
public function settingLobby() {
lobby.sender_mc.addEventListener(MouseEvent.CLICK,function(e:*){
var app:AppManager = AppManager.getInstance();
app.sendMessage(lobby.inputChatTxt.text); //ส่งข้อความไปให้ AppManager เพื่อที่จะส่งไปให้ server
lobby.inputChatTxt.text = "";
});
}
public static function getInstance() {
if (self== null) {
self = new GlobalVars();
self.settingLobby();
}
return self;
}
}
}

ChatEvent.as
เราสามารถสร้าง custom event เพื่อแยกข้อมุลแต่ละประเภทออกเป็นส่วนๆ
โดยในตัวอย่างนี้ ยกตัวอย่างเฉพาะ lobby ถ้าหากต้องการเพิ่มเติมก็สามารถเพ่ิม case ต่างๆที่หลังได้ เช่น lobby , room, private
package app.flash.common{
import flash.events.EventDispatcher;
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.Socket;

public class ChatEvent extends EventDispatcher {
private static var self:ChatEvent = null;
private static var LOBBY:int = 0;
private static var socket:Connector = null;
public var msg:String = new String();
public static function onMessage(e:ProgressEvent) {
try {
trace("chatEvent:"+socket.msg);
self.msg = socket.msg;
var checker:Number = new Number(self.msg.charAt(0));
self.msg = self.msg.substring(1,self.msg.length);
switch (checker) {
case LOBBY :
self.dispatchEvent(new Event("onLobbyMessage"));
break;
}

} catch (e:Event) {
trace(e.toString());
}
}
public function ChatEvent(socketIn:Connector) {
self = this;
socket = socketIn;
socket.addEventListener(ProgressEvent.SOCKET_DATA,onMessage);
}
}
}

ConnectorInterface.as
package app.flash.common{
public interface ConnectorInterface {
function onStart():void;
function onTerminate():void;
function onMessage(input:String):void;
function onError():void;
}
}

Flash + Java Socket ตอนที่ 1

http://blog.levelup.in.th/2013/01/31/flash-java-socket-ตอนที่-1/

Flash + Java Socket ตอนที่ 3 จะเป็นในส่วนของ java socket

Flash + Java Socket ตอนที่ 1 by

31
Jan
0

ส่งที่ต้องเตรียม
1.Eclipse หรือ IDE ตัวไหนก็ได้ครับที่ใช้เขียน java ได้
2.Flash

แหล่งข้อมูลเพิ่มเติม
http://www.oracle.com/technetwork/java/socket-140484.html http://docs.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html http://docs.oracle.com/javase/1.4.2/docs/api/java/net/ServerSocket.html

ในโปรเจคนี้จะแบ่งเป็น 2 ส่วนหลักๆ คือ
1.Client (flash)
2.Server (java)

1

การทำงานคือ Client รับค่า แล้วส่งไปให้ Server broadcast ไปให้ Client ตัวอื่นๆ
Server (java)
public void broadcast(String msg) {
System.out.println("broadcast:" + msg);
for (ClientThread client : clientList) {
client.getMessage(msg);
}
}

Client (actionscript)
public class Connector extends Socket {
public static var self:Connector = null;
public var delegate:ConnectorInterface = null;
public var host:String = "localhost";
public var port:int = 8080;
public var msg:String = new String();
public function startConnect() {
this.connect(host,port);
}
public function sendMessage(sender:String) {
trace("send '"+sender+"' to server");
this.writeUTFBytes(sender+"\n");
this.flush();
trace("end");
}
}

เนื่องจากบทความนี้ยาว ผมจึงแบ่งเป็นส่วนๆ โดยตอนที่ 1 เราจะมาเตรียม User interface กันก่อน ถ้าพร้อมแล้วเปิด Flash ขึ้นมาเลยครับ

    สร้าง MovieClip ขึ้นมา 1 ตัว ตั้งชื่อ Login
    ข้างในประกอบไปด้วย
    1.Input Text ชื่อ name_txt
    2.Button ชื่อ submit_mc

2

    สร้าง MovieClip ขึ้นมา 1 ตัว ตั้งชื่อ Lobby
    ข้างในประกอบไปด้วย
    1.Dynamic Text ชื่อ show_txt
    2.Input Text ชื่อ inputChat_txt
    3.Button ชื่อ sender_mc

3

    สร้าง Document Class ตามรูปครับ
    app.flash.common.Main

4

    สร้าง Linkage ตามรูปครับ MovieClip ตัวไหนที่ผมไม่ได้เอ่ยถึงยังไม่ต้องสร้างครับ

5

    สร้าง Folder ตามรูปนะครับ
    app>flash>common

6

Flash + Java Socket ตอนที่ 2

http://blog.levelup.in.th/2013/02/01/flash-java-socket-ตอนที่-2/