[AutoIT]Php und Mysql verwenden

07/19/2011 20:13 [T]Ere[B]Oritum#1
Hi zusammen,
In diesem Tutorial will ich euch zeigen wie man in AutoIT mit php und dadurch mit mysql verknüpfen kann.
Let's go!

Was benötigt ihr?:
-AutoIT ;)
-(Optional)Einen PHP Editor
-Einen FTP Server ([Only registered and activated users can see links. Click Here To Register...])
-Einen MySql Server
-Filezilla([Only registered and activated users can see links. Click Here To Register...])

PHP:

Schritt 1: Als erstes erstellen wir uns einen FTP / MySql Server auf Funpic.de dazu registrieren wir uns und loggen uns darauf hin ein.

[Only registered and activated users can see links. Click Here To Register...]

Schritt 2: Nun gehen wir auf "FTP" und erstellen uns einen Account.
das gleiche auch bei Mysql.

Schritt 3: Wir wollen in diesem Tutorial eine Tabelle in unseren Mysql Server erstellen lassen.Den Namen soll man in einer InputBox in AutoIT eingeben können.

Schritt 4: Nun fangen wir an das PHP Script zu erstellen.Das ganze sieht für unser beispiel so aus :

[Only registered and activated users can see links. Click Here To Register...]

Das ganze speichern wir als AutoIT.php ab.

Erklärung zum Script:

Code:
<?php
Angang des Php Script

Code:
$TabellenName = $HTTP_GET_VARS['name'];
Hirmit bekommen wir den Namen von AutoIT (Mehr dazu später)

Code:
$Log = mysql_connect("localhost","User","Passwort");
Login zum Server
-User = Username vom Mysql Server
-Passwort = Passwort zum Mysql Server
Code:
$DB = mysql_select_db("DB Name");
Auswahl der Datenbank
-DB Name = Name der Datenbank

Code:
$sql = "CREATE TABLE `accoutnspace`.`".$TabellenName."` (`Test` INT NOT NULL) ENGINE = MyISAM;";
Dies ist der Mysql Code um eine Tabellen mit dem Namen von AutoIt und einer Spalte namens "Test" zu machen.

Code:
$Query = mysql_query($sql);
Ausführung des Befehls

Code:
if ($Log || $DB || $sql || $Query)
{
echo 1;
}
else
{
echo 0;
}
Testet ob alles geklappt hat wenn nicht gibt es "0" zurück wenn alles gut ist "1".

Schritt 5: So nun laden wir die AutoIT.php Datei mit Filezilla auf unseren FTP Server.
[Only registered and activated users can see links. Click Here To Register...]

!!!Port müsst ihr frei lassen!!!
Damit hätten wir den PHP Teil erledigt.

AutoIT:

Schritt 1: Wir erstellen uns als erstes eine hübsche GUI mit einer InputBox und einem Button.

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("MySql", 161, 64, 192, 114)
$Input1 = GUICtrlCreateInput("Tabellen Name", 8, 8, 145, 21)
$Button1 = GUICtrlCreateButton("Create", 8, 32, 147, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Schritt 2: Wir erstellen uns nun folgende Function um den Namen an unser PHP Script zu übermitteln und dieses dann zu starten. Es soll auch noch geprüft werden ob es geklappt hat oder eben nicht.Das Script dazu ist :

Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Inet.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("MySql", 161, 64, 192, 114)
$Input1 = GUICtrlCreateInput("Tabellen Name", 8, 8, 145, 21)
$Button1 = GUICtrlCreateButton("Create", 8, 32, 147, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			Mysql(GUICtrlRead($Input1))
	EndSwitch
WEnd

Func Mysql($Name)
	$Test = _INetGetSource("http://moonlighttools.mo.funpic.de/AutoIT.php?name="&$Name)
	$Test = StringLeft($Test,1)
MsgBox(0,"",$Test)

EndFunc
Erklärung zum Script:

Code:
$Test = _INetGetSource("http://moonlighttools.mo.funpic.de/AutoIT.php?name="&$Name)
Liest den Quelltext aus nachdem er die Daten übermittelt hat.

Code:
$Test = StringLeft($Test,1)
Liest aus dem Quelltext die erstel Zahl aus.Diese ist entweder 1 oder 0.

Code:
MsgBox(0,"",$Test)
Gibt aus ob es geklappt hat (1) oder nicht (0).

So das wars ich hoffe ich konnte euch helfen.
Ich werde das Script später noch ein wenig verbessern.
07/21/2011 21:09 Reeek#2
Quote:
Originally Posted by [T]Ere[B]Oritum View Post
Code:
$TabellenName = $HTTP_GET_VARS['name'];
sollte man hier nicht lieber $_GET['name'] verwenden?

ansonsten... ganz nett, würde aber eher auf TCP-Basis arbeiten.
07/22/2011 12:21 [T]Ere[B]Oritum#3
An sich geht beides ganz gut kann man selber entscheiden wie man will ;)