mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 01:15:35 +01:00
*CRLF fix. By Paradox.
--HG-- branch : trunk
This commit is contained in:
@@ -1,30 +1,30 @@
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
This is the somewhat expanded version account registration
|
||||
form that allows users to register game accounts on the web.
|
||||
|
||||
Its still very ugly, but if you get bored enough and make it
|
||||
look somewhat better, feel free to shoot me back a better version
|
||||
and I will include it here with credits :)
|
||||
|
||||
To run this, you will need:
|
||||
|
||||
* MySQL 5.0.45+
|
||||
* A PHP5+ equipped web server
|
||||
|
||||
To install this registration form, simply copy everything to
|
||||
a folder on your web server. You can rename it to anything you
|
||||
like, but it's recommended to keep it as "index.php" and put it
|
||||
in a dedicated directory, such as "/home/public_html/register".
|
||||
|
||||
In order for the script to work correctly, you must rename
|
||||
db.conf.php.dist to db.conf.php and then fill out the correct values.
|
||||
|
||||
|
||||
TODO :
|
||||
Make it look better
|
||||
Allow email checking by sending a code in an email to be confirmed.
|
||||
Maybe switch to recaptcha.
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
This is the somewhat expanded version account registration
|
||||
form that allows users to register game accounts on the web.
|
||||
|
||||
Its still very ugly, but if you get bored enough and make it
|
||||
look somewhat better, feel free to shoot me back a better version
|
||||
and I will include it here with credits :)
|
||||
|
||||
To run this, you will need:
|
||||
|
||||
* MySQL 5.0.45+
|
||||
* A PHP5+ equipped web server
|
||||
|
||||
To install this registration form, simply copy everything to
|
||||
a folder on your web server. You can rename it to anything you
|
||||
like, but it's recommended to keep it as "index.php" and put it
|
||||
in a dedicated directory, such as "/home/public_html/register".
|
||||
|
||||
In order for the script to work correctly, you must rename
|
||||
db.conf.php.dist to db.conf.php and then fill out the correct values.
|
||||
|
||||
|
||||
TODO :
|
||||
Make it look better
|
||||
Allow email checking by sending a code in an email to be confirmed.
|
||||
Maybe switch to recaptcha.
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<?php
|
||||
|
||||
// Configuration.
|
||||
// Realm database.
|
||||
$r_db = "realmd";
|
||||
// IP (and port).
|
||||
$ip = "127.0.0.1:3306";
|
||||
// Username.
|
||||
$user = "trinity";
|
||||
// Password.
|
||||
$pass = "trinity";
|
||||
// Site title.
|
||||
$title = "Registration Form";
|
||||
$title2 = "Some Server";
|
||||
// End config.
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
// Configuration.
|
||||
// Realm database.
|
||||
$r_db = "realmd";
|
||||
// IP (and port).
|
||||
$ip = "127.0.0.1:3306";
|
||||
// Username.
|
||||
$user = "trinity";
|
||||
// Password.
|
||||
$pass = "trinity";
|
||||
// Site title.
|
||||
$title = "Registration Form";
|
||||
$title2 = "Some Server";
|
||||
// End config.
|
||||
|
||||
|
||||
?>
|
||||
@@ -1,231 +1,231 @@
|
||||
<?php
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFEncoder Version 2.0 by László Zsidi, http://gifs.hu
|
||||
::
|
||||
:: This class is a rewritten 'GifMerge.class.php' version.
|
||||
::
|
||||
:: Modification:
|
||||
:: - Simplified and easy code,
|
||||
:: - Ultra fast encoding,
|
||||
:: - Built-in errors,
|
||||
:: - Stable working
|
||||
::
|
||||
::
|
||||
:: Updated at 2007. 02. 13. '00.05.AM'
|
||||
::
|
||||
*/
|
||||
Class GIFEncoder {
|
||||
var $GIF = "GIF89a"; /* GIF header 6 bytes */
|
||||
var $VER = "GIFEncoder V2.06"; /* Encoder version */
|
||||
|
||||
var $BUF = Array ( );
|
||||
var $LOP = 0;
|
||||
var $DIS = 2;
|
||||
var $COL = -1;
|
||||
var $IMG = -1;
|
||||
|
||||
var $ERR = Array (
|
||||
'ERR00' =>"Does not supported function for only one image!",
|
||||
'ERR01' =>"Source is not a GIF image!",
|
||||
'ERR02' =>"Unintelligible flag ",
|
||||
'ERR03' =>"Could not make animation from animated GIF source",
|
||||
);
|
||||
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFEncoder...
|
||||
::
|
||||
*/
|
||||
function GIFEncoder (
|
||||
$GIF_src, $GIF_dly, $GIF_lop, $GIF_dis,
|
||||
$GIF_red, $GIF_grn, $GIF_blu, $GIF_mod
|
||||
) {
|
||||
if ( ! is_array ( $GIF_src ) && ! is_array ( $GIF_tim ) ) {
|
||||
printf ( "%s: %s", $this->VER, $this->ERR [ 'ERR00' ] );
|
||||
exit ( 0 );
|
||||
}
|
||||
$this->LOP = ( $GIF_lop > -1 ) ? $GIF_lop : 0;
|
||||
$this->DIS = ( $GIF_dis > -1 ) ? ( ( $GIF_dis < 3 ) ? $GIF_dis : 3 ) : 2;
|
||||
$this->COL = ( $GIF_red > -1 && $GIF_grn > -1 && $GIF_blu > -1 ) ?
|
||||
( $GIF_red | ( $GIF_grn << 8 ) | ( $GIF_blu << 16 ) ) : -1;
|
||||
|
||||
for ( $i = 0; $i < count ( $GIF_src ); $i++ ) {
|
||||
if ( strToLower ( $GIF_mod ) == "url" ) {
|
||||
$this->BUF [ ] = fread ( fopen ( $GIF_src [ $i ], "rb" ), filesize ( $GIF_src [ $i ] ) );
|
||||
}
|
||||
else if ( strToLower ( $GIF_mod ) == "bin" ) {
|
||||
$this->BUF [ ] = $GIF_src [ $i ];
|
||||
}
|
||||
else {
|
||||
printf ( "%s: %s ( %s )!", $this->VER, $this->ERR [ 'ERR02' ], $GIF_mod );
|
||||
exit ( 0 );
|
||||
}
|
||||
if ( substr ( $this->BUF [ $i ], 0, 6 ) != "GIF87a" && substr ( $this->BUF [ $i ], 0, 6 ) != "GIF89a" ) {
|
||||
printf ( "%s: %d %s", $this->VER, $i, $this->ERR [ 'ERR01' ] );
|
||||
exit ( 0 );
|
||||
}
|
||||
for ( $j = ( 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) ), $k = TRUE; $k; $j++ ) {
|
||||
switch ( $this->BUF [ $i ] { $j } ) {
|
||||
case "!":
|
||||
if ( ( substr ( $this->BUF [ $i ], ( $j + 3 ), 8 ) ) == "NETSCAPE" ) {
|
||||
printf ( "%s: %s ( %s source )!", $this->VER, $this->ERR [ 'ERR03' ], ( $i + 1 ) );
|
||||
exit ( 0 );
|
||||
}
|
||||
break;
|
||||
case ";":
|
||||
$k = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
GIFEncoder::GIFAddHeader ( );
|
||||
for ( $i = 0; $i < count ( $this->BUF ); $i++ ) {
|
||||
GIFEncoder::GIFAddFrames ( $i, $GIF_dly [ $i ] );
|
||||
}
|
||||
GIFEncoder::GIFAddFooter ( );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddHeader...
|
||||
::
|
||||
*/
|
||||
function GIFAddHeader ( ) {
|
||||
$cmap = 0;
|
||||
|
||||
if ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x80 ) {
|
||||
$cmap = 3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) );
|
||||
|
||||
$this->GIF .= substr ( $this->BUF [ 0 ], 6, 7 );
|
||||
$this->GIF .= substr ( $this->BUF [ 0 ], 13, $cmap );
|
||||
$this->GIF .= "!\377\13NETSCAPE2.0\3\1" . GIFEncoder::GIFWord ( $this->LOP ) . "\0";
|
||||
}
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddFrames...
|
||||
::
|
||||
*/
|
||||
function GIFAddFrames ( $i, $d ) {
|
||||
|
||||
$Locals_str = 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) );
|
||||
|
||||
$Locals_end = strlen ( $this->BUF [ $i ] ) - $Locals_str - 1;
|
||||
$Locals_tmp = substr ( $this->BUF [ $i ], $Locals_str, $Locals_end );
|
||||
|
||||
$Global_len = 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 );
|
||||
$Locals_len = 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 );
|
||||
|
||||
$Global_rgb = substr ( $this->BUF [ 0 ], 13,
|
||||
3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) ) );
|
||||
$Locals_rgb = substr ( $this->BUF [ $i ], 13,
|
||||
3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) );
|
||||
|
||||
$Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 0 ) .
|
||||
chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . "\x0\x0";
|
||||
|
||||
if ( $this->COL > -1 && ord ( $this->BUF [ $i ] { 10 } ) & 0x80 ) {
|
||||
for ( $j = 0; $j < ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ); $j++ ) {
|
||||
if (
|
||||
ord ( $Locals_rgb { 3 * $j + 0 } ) == ( $this->COL >> 0 ) & 0xFF &&
|
||||
ord ( $Locals_rgb { 3 * $j + 1 } ) == ( $this->COL >> 8 ) & 0xFF &&
|
||||
ord ( $Locals_rgb { 3 * $j + 2 } ) == ( $this->COL >> 16 ) & 0xFF
|
||||
) {
|
||||
$Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 1 ) .
|
||||
chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . chr ( $j ) . "\x0";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ( $Locals_tmp { 0 } ) {
|
||||
case "!":
|
||||
$Locals_img = substr ( $Locals_tmp, 8, 10 );
|
||||
$Locals_tmp = substr ( $Locals_tmp, 18, strlen ( $Locals_tmp ) - 18 );
|
||||
break;
|
||||
case ",":
|
||||
$Locals_img = substr ( $Locals_tmp, 0, 10 );
|
||||
$Locals_tmp = substr ( $Locals_tmp, 10, strlen ( $Locals_tmp ) - 10 );
|
||||
break;
|
||||
}
|
||||
if ( ord ( $this->BUF [ $i ] { 10 } ) & 0x80 && $this->IMG > -1 ) {
|
||||
if ( $Global_len == $Locals_len ) {
|
||||
if ( GIFEncoder::GIFBlockCompare ( $Global_rgb, $Locals_rgb, $Global_len ) ) {
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp );
|
||||
}
|
||||
else {
|
||||
$byte = ord ( $Locals_img { 9 } );
|
||||
$byte |= 0x80;
|
||||
$byte &= 0xF8;
|
||||
$byte |= ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 );
|
||||
$Locals_img { 9 } = chr ( $byte );
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp );
|
||||
}
|
||||
}
|
||||
else {
|
||||
$byte = ord ( $Locals_img { 9 } );
|
||||
$byte |= 0x80;
|
||||
$byte &= 0xF8;
|
||||
$byte |= ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 );
|
||||
$Locals_img { 9 } = chr ( $byte );
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp );
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp );
|
||||
}
|
||||
$this->IMG = 1;
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddFooter...
|
||||
::
|
||||
*/
|
||||
function GIFAddFooter ( ) {
|
||||
$this->GIF .= ";";
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFBlockCompare...
|
||||
::
|
||||
*/
|
||||
function GIFBlockCompare ( $GlobalBlock, $LocalBlock, $Len ) {
|
||||
|
||||
for ( $i = 0; $i < $Len; $i++ ) {
|
||||
if (
|
||||
$GlobalBlock { 3 * $i + 0 } != $LocalBlock { 3 * $i + 0 } ||
|
||||
$GlobalBlock { 3 * $i + 1 } != $LocalBlock { 3 * $i + 1 } ||
|
||||
$GlobalBlock { 3 * $i + 2 } != $LocalBlock { 3 * $i + 2 }
|
||||
) {
|
||||
return ( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
return ( 1 );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFWord...
|
||||
::
|
||||
*/
|
||||
function GIFWord ( $int ) {
|
||||
|
||||
return ( chr ( $int & 0xFF ) . chr ( ( $int >> 8 ) & 0xFF ) );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GetAnimation...
|
||||
::
|
||||
*/
|
||||
function GetAnimation ( ) {
|
||||
return ( $this->GIF );
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFEncoder Version 2.0 by László Zsidi, http://gifs.hu
|
||||
::
|
||||
:: This class is a rewritten 'GifMerge.class.php' version.
|
||||
::
|
||||
:: Modification:
|
||||
:: - Simplified and easy code,
|
||||
:: - Ultra fast encoding,
|
||||
:: - Built-in errors,
|
||||
:: - Stable working
|
||||
::
|
||||
::
|
||||
:: Updated at 2007. 02. 13. '00.05.AM'
|
||||
::
|
||||
*/
|
||||
Class GIFEncoder {
|
||||
var $GIF = "GIF89a"; /* GIF header 6 bytes */
|
||||
var $VER = "GIFEncoder V2.06"; /* Encoder version */
|
||||
|
||||
var $BUF = Array ( );
|
||||
var $LOP = 0;
|
||||
var $DIS = 2;
|
||||
var $COL = -1;
|
||||
var $IMG = -1;
|
||||
|
||||
var $ERR = Array (
|
||||
'ERR00' =>"Does not supported function for only one image!",
|
||||
'ERR01' =>"Source is not a GIF image!",
|
||||
'ERR02' =>"Unintelligible flag ",
|
||||
'ERR03' =>"Could not make animation from animated GIF source",
|
||||
);
|
||||
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFEncoder...
|
||||
::
|
||||
*/
|
||||
function GIFEncoder (
|
||||
$GIF_src, $GIF_dly, $GIF_lop, $GIF_dis,
|
||||
$GIF_red, $GIF_grn, $GIF_blu, $GIF_mod
|
||||
) {
|
||||
if ( ! is_array ( $GIF_src ) && ! is_array ( $GIF_tim ) ) {
|
||||
printf ( "%s: %s", $this->VER, $this->ERR [ 'ERR00' ] );
|
||||
exit ( 0 );
|
||||
}
|
||||
$this->LOP = ( $GIF_lop > -1 ) ? $GIF_lop : 0;
|
||||
$this->DIS = ( $GIF_dis > -1 ) ? ( ( $GIF_dis < 3 ) ? $GIF_dis : 3 ) : 2;
|
||||
$this->COL = ( $GIF_red > -1 && $GIF_grn > -1 && $GIF_blu > -1 ) ?
|
||||
( $GIF_red | ( $GIF_grn << 8 ) | ( $GIF_blu << 16 ) ) : -1;
|
||||
|
||||
for ( $i = 0; $i < count ( $GIF_src ); $i++ ) {
|
||||
if ( strToLower ( $GIF_mod ) == "url" ) {
|
||||
$this->BUF [ ] = fread ( fopen ( $GIF_src [ $i ], "rb" ), filesize ( $GIF_src [ $i ] ) );
|
||||
}
|
||||
else if ( strToLower ( $GIF_mod ) == "bin" ) {
|
||||
$this->BUF [ ] = $GIF_src [ $i ];
|
||||
}
|
||||
else {
|
||||
printf ( "%s: %s ( %s )!", $this->VER, $this->ERR [ 'ERR02' ], $GIF_mod );
|
||||
exit ( 0 );
|
||||
}
|
||||
if ( substr ( $this->BUF [ $i ], 0, 6 ) != "GIF87a" && substr ( $this->BUF [ $i ], 0, 6 ) != "GIF89a" ) {
|
||||
printf ( "%s: %d %s", $this->VER, $i, $this->ERR [ 'ERR01' ] );
|
||||
exit ( 0 );
|
||||
}
|
||||
for ( $j = ( 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) ), $k = TRUE; $k; $j++ ) {
|
||||
switch ( $this->BUF [ $i ] { $j } ) {
|
||||
case "!":
|
||||
if ( ( substr ( $this->BUF [ $i ], ( $j + 3 ), 8 ) ) == "NETSCAPE" ) {
|
||||
printf ( "%s: %s ( %s source )!", $this->VER, $this->ERR [ 'ERR03' ], ( $i + 1 ) );
|
||||
exit ( 0 );
|
||||
}
|
||||
break;
|
||||
case ";":
|
||||
$k = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
GIFEncoder::GIFAddHeader ( );
|
||||
for ( $i = 0; $i < count ( $this->BUF ); $i++ ) {
|
||||
GIFEncoder::GIFAddFrames ( $i, $GIF_dly [ $i ] );
|
||||
}
|
||||
GIFEncoder::GIFAddFooter ( );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddHeader...
|
||||
::
|
||||
*/
|
||||
function GIFAddHeader ( ) {
|
||||
$cmap = 0;
|
||||
|
||||
if ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x80 ) {
|
||||
$cmap = 3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) );
|
||||
|
||||
$this->GIF .= substr ( $this->BUF [ 0 ], 6, 7 );
|
||||
$this->GIF .= substr ( $this->BUF [ 0 ], 13, $cmap );
|
||||
$this->GIF .= "!\377\13NETSCAPE2.0\3\1" . GIFEncoder::GIFWord ( $this->LOP ) . "\0";
|
||||
}
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddFrames...
|
||||
::
|
||||
*/
|
||||
function GIFAddFrames ( $i, $d ) {
|
||||
|
||||
$Locals_str = 13 + 3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) );
|
||||
|
||||
$Locals_end = strlen ( $this->BUF [ $i ] ) - $Locals_str - 1;
|
||||
$Locals_tmp = substr ( $this->BUF [ $i ], $Locals_str, $Locals_end );
|
||||
|
||||
$Global_len = 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 );
|
||||
$Locals_len = 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 );
|
||||
|
||||
$Global_rgb = substr ( $this->BUF [ 0 ], 13,
|
||||
3 * ( 2 << ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 ) ) );
|
||||
$Locals_rgb = substr ( $this->BUF [ $i ], 13,
|
||||
3 * ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ) );
|
||||
|
||||
$Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 0 ) .
|
||||
chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . "\x0\x0";
|
||||
|
||||
if ( $this->COL > -1 && ord ( $this->BUF [ $i ] { 10 } ) & 0x80 ) {
|
||||
for ( $j = 0; $j < ( 2 << ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 ) ); $j++ ) {
|
||||
if (
|
||||
ord ( $Locals_rgb { 3 * $j + 0 } ) == ( $this->COL >> 0 ) & 0xFF &&
|
||||
ord ( $Locals_rgb { 3 * $j + 1 } ) == ( $this->COL >> 8 ) & 0xFF &&
|
||||
ord ( $Locals_rgb { 3 * $j + 2 } ) == ( $this->COL >> 16 ) & 0xFF
|
||||
) {
|
||||
$Locals_ext = "!\xF9\x04" . chr ( ( $this->DIS << 2 ) + 1 ) .
|
||||
chr ( ( $d >> 0 ) & 0xFF ) . chr ( ( $d >> 8 ) & 0xFF ) . chr ( $j ) . "\x0";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
switch ( $Locals_tmp { 0 } ) {
|
||||
case "!":
|
||||
$Locals_img = substr ( $Locals_tmp, 8, 10 );
|
||||
$Locals_tmp = substr ( $Locals_tmp, 18, strlen ( $Locals_tmp ) - 18 );
|
||||
break;
|
||||
case ",":
|
||||
$Locals_img = substr ( $Locals_tmp, 0, 10 );
|
||||
$Locals_tmp = substr ( $Locals_tmp, 10, strlen ( $Locals_tmp ) - 10 );
|
||||
break;
|
||||
}
|
||||
if ( ord ( $this->BUF [ $i ] { 10 } ) & 0x80 && $this->IMG > -1 ) {
|
||||
if ( $Global_len == $Locals_len ) {
|
||||
if ( GIFEncoder::GIFBlockCompare ( $Global_rgb, $Locals_rgb, $Global_len ) ) {
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp );
|
||||
}
|
||||
else {
|
||||
$byte = ord ( $Locals_img { 9 } );
|
||||
$byte |= 0x80;
|
||||
$byte &= 0xF8;
|
||||
$byte |= ( ord ( $this->BUF [ 0 ] { 10 } ) & 0x07 );
|
||||
$Locals_img { 9 } = chr ( $byte );
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp );
|
||||
}
|
||||
}
|
||||
else {
|
||||
$byte = ord ( $Locals_img { 9 } );
|
||||
$byte |= 0x80;
|
||||
$byte &= 0xF8;
|
||||
$byte |= ( ord ( $this->BUF [ $i ] { 10 } ) & 0x07 );
|
||||
$Locals_img { 9 } = chr ( $byte );
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_rgb . $Locals_tmp );
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->GIF .= ( $Locals_ext . $Locals_img . $Locals_tmp );
|
||||
}
|
||||
$this->IMG = 1;
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFAddFooter...
|
||||
::
|
||||
*/
|
||||
function GIFAddFooter ( ) {
|
||||
$this->GIF .= ";";
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFBlockCompare...
|
||||
::
|
||||
*/
|
||||
function GIFBlockCompare ( $GlobalBlock, $LocalBlock, $Len ) {
|
||||
|
||||
for ( $i = 0; $i < $Len; $i++ ) {
|
||||
if (
|
||||
$GlobalBlock { 3 * $i + 0 } != $LocalBlock { 3 * $i + 0 } ||
|
||||
$GlobalBlock { 3 * $i + 1 } != $LocalBlock { 3 * $i + 1 } ||
|
||||
$GlobalBlock { 3 * $i + 2 } != $LocalBlock { 3 * $i + 2 }
|
||||
) {
|
||||
return ( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
return ( 1 );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GIFWord...
|
||||
::
|
||||
*/
|
||||
function GIFWord ( $int ) {
|
||||
|
||||
return ( chr ( $int & 0xFF ) . chr ( ( $int >> 8 ) & 0xFF ) );
|
||||
}
|
||||
/*
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: GetAnimation...
|
||||
::
|
||||
*/
|
||||
function GetAnimation ( ) {
|
||||
return ( $this->GIF );
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,82 +1,82 @@
|
||||
<?
|
||||
session_start( );
|
||||
/**
|
||||
@package AnimatedCaptcha
|
||||
@author J Watkins <krakjoe@krakjoe.info>
|
||||
@desc OOP Interface to AnimCaptcha ( PHP 5 )
|
||||
@static
|
||||
**/
|
||||
class AnimCaptcha
|
||||
{
|
||||
static $frames ;
|
||||
static $time ;
|
||||
static $num ;
|
||||
static $pause ;
|
||||
static $ops ;
|
||||
static $gifs ;
|
||||
static $rand ;
|
||||
static $math ;
|
||||
|
||||
function AnimCaptcha( $gifs, $pause )
|
||||
{
|
||||
if( !class_exists( 'GIFEncoder' ) and !include('GIFEncoder.class.php') )
|
||||
die( 'I require GIFEncoder to be loaded before operation' );
|
||||
|
||||
self::$pause = (int)$pause ;
|
||||
self::$gifs = $gifs ;
|
||||
self::$ops = array
|
||||
(
|
||||
'minus',
|
||||
'plus',
|
||||
'times'
|
||||
);
|
||||
self::$math = array
|
||||
(
|
||||
'-',
|
||||
'+',
|
||||
'*'
|
||||
);
|
||||
|
||||
self::$num['rand1'] = rand( 1, 9 );
|
||||
self::$num['rand2'] = rand( 1, 9 );
|
||||
self::$num['op'] = rand( 0, count( self::$math ) - 1 );
|
||||
|
||||
self::BuildImage( );
|
||||
}
|
||||
function BuildImage( )
|
||||
{
|
||||
self::$frames[ ] = sprintf( '%s/solve.gif', self::$gifs ) ;
|
||||
self::$time[ ] = 260;
|
||||
self::$frames[ ] = sprintf( '%s/%d.gif', self::$gifs, self::$num['rand1'] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = sprintf( '%s/%s.gif', self::$gifs, self::$ops[ self::$num['op'] ] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = sprintf( '%s/%d.gif', self::$gifs, self::$num['rand2'] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = "frames/equals.gif" ;
|
||||
self::$time [ ] = 280;
|
||||
foreach( self::$num as $index => $value ) $_SESSION[ $index ] = self::$num[ $value ];
|
||||
}
|
||||
function GetImage( )
|
||||
{
|
||||
eval( sprintf( '$_SESSION["answer"] = (%d %s %d);',
|
||||
self::$num['rand1'],
|
||||
self::$math[ self::$num['op'] ],
|
||||
self::$num['rand2']
|
||||
) );
|
||||
|
||||
if( $_SESSION['answer'] < 0 )
|
||||
self::AnimCaptcha( self::$gifs, self::$pause );
|
||||
|
||||
$gif = new GIFEncoder( self::$frames, self::$time, 0, 2, 0, 0, 0, "url" );
|
||||
|
||||
if( !headers_sent( ) )
|
||||
{
|
||||
header ( 'Content-type:image/gif' );
|
||||
echo $gif->GetAnimation ( );
|
||||
}
|
||||
}
|
||||
}
|
||||
new AnimCaptcha( 'frames', 140 );
|
||||
AnimCaptcha::GetImage( );
|
||||
?>
|
||||
<?
|
||||
session_start( );
|
||||
/**
|
||||
@package AnimatedCaptcha
|
||||
@author J Watkins <krakjoe@krakjoe.info>
|
||||
@desc OOP Interface to AnimCaptcha ( PHP 5 )
|
||||
@static
|
||||
**/
|
||||
class AnimCaptcha
|
||||
{
|
||||
static $frames ;
|
||||
static $time ;
|
||||
static $num ;
|
||||
static $pause ;
|
||||
static $ops ;
|
||||
static $gifs ;
|
||||
static $rand ;
|
||||
static $math ;
|
||||
|
||||
function AnimCaptcha( $gifs, $pause )
|
||||
{
|
||||
if( !class_exists( 'GIFEncoder' ) and !include('GIFEncoder.class.php') )
|
||||
die( 'I require GIFEncoder to be loaded before operation' );
|
||||
|
||||
self::$pause = (int)$pause ;
|
||||
self::$gifs = $gifs ;
|
||||
self::$ops = array
|
||||
(
|
||||
'minus',
|
||||
'plus',
|
||||
'times'
|
||||
);
|
||||
self::$math = array
|
||||
(
|
||||
'-',
|
||||
'+',
|
||||
'*'
|
||||
);
|
||||
|
||||
self::$num['rand1'] = rand( 1, 9 );
|
||||
self::$num['rand2'] = rand( 1, 9 );
|
||||
self::$num['op'] = rand( 0, count( self::$math ) - 1 );
|
||||
|
||||
self::BuildImage( );
|
||||
}
|
||||
function BuildImage( )
|
||||
{
|
||||
self::$frames[ ] = sprintf( '%s/solve.gif', self::$gifs ) ;
|
||||
self::$time[ ] = 260;
|
||||
self::$frames[ ] = sprintf( '%s/%d.gif', self::$gifs, self::$num['rand1'] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = sprintf( '%s/%s.gif', self::$gifs, self::$ops[ self::$num['op'] ] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = sprintf( '%s/%d.gif', self::$gifs, self::$num['rand2'] );
|
||||
self::$time[ ] = self::$pause;
|
||||
self::$frames[ ] = "frames/equals.gif" ;
|
||||
self::$time [ ] = 280;
|
||||
foreach( self::$num as $index => $value ) $_SESSION[ $index ] = self::$num[ $value ];
|
||||
}
|
||||
function GetImage( )
|
||||
{
|
||||
eval( sprintf( '$_SESSION["answer"] = (%d %s %d);',
|
||||
self::$num['rand1'],
|
||||
self::$math[ self::$num['op'] ],
|
||||
self::$num['rand2']
|
||||
) );
|
||||
|
||||
if( $_SESSION['answer'] < 0 )
|
||||
self::AnimCaptcha( self::$gifs, self::$pause );
|
||||
|
||||
$gif = new GIFEncoder( self::$frames, self::$time, 0, 2, 0, 0, 0, "url" );
|
||||
|
||||
if( !headers_sent( ) )
|
||||
{
|
||||
header ( 'Content-type:image/gif' );
|
||||
echo $gif->GetAnimation ( );
|
||||
}
|
||||
}
|
||||
}
|
||||
new AnimCaptcha( 'frames', 140 );
|
||||
AnimCaptcha::GetImage( );
|
||||
?>
|
||||
|
||||
@@ -1,112 +1,112 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
/*
|
||||
AnimCaptcha v1.3 >> 6-13-07
|
||||
|
||||
This Animated Gif Captcha system is brought to you courtesy of ...
|
||||
josh@betteradv.com ==> Josh Storz
|
||||
http://www.querythe.net/Animated-Gif-Captcha/ ==> Download Current Version
|
||||
|
||||
OOP (PHP 4 & 5) Interface by ...
|
||||
krakjoe@krakjoe.info ==> J Watkins
|
||||
|
||||
The GIFEncoder class was written by ...
|
||||
http://gifs.hu ==> László Zsidi
|
||||
http://www.phpclasses.org/browse/package/3163.html ==> Download Current Version
|
||||
|
||||
This file is part of QueryThe.Net's AnimatedCaptcha Package.
|
||||
|
||||
QueryThe.Net's AnimatedCaptcha is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QueryThe.Net's AnimatedCaptcha is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with QueryThe.Net's AnimatedCaptcha; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
include "GIFEncoder.class.php";
|
||||
|
||||
function add_random_frames($frame) {
|
||||
// random number & elapsed time of frames to *hopefully* make a cracker's life tougher
|
||||
|
||||
global $frames ;
|
||||
global $time ;
|
||||
|
||||
$i = 0;
|
||||
$loop = rand(6, 14); // total number of frames in loop loop
|
||||
|
||||
while ($i < $loop)
|
||||
{
|
||||
$frames [ ] = "frames/$frame.gif"; // use the solve frame so that the human eye cannot see a flicker
|
||||
$time [ ] = rand(15, 25); // 5 * 20 = 1 second so the delay is never too terribly long
|
||||
$i ++ ;
|
||||
}
|
||||
}
|
||||
|
||||
// get random numbers & operator and make sure the answer is >= 0
|
||||
$k = 0 ;
|
||||
while($k == 0)
|
||||
{
|
||||
$rand1 = rand(1, 9); // 1st number (1-9)
|
||||
$rand3 = rand(1, 9); // 2nd number (1-9)
|
||||
$rand2 = rand(0, 2); // operator (-,+,*)
|
||||
|
||||
if (($rand2 != 0) || ($rand3 < $rand1)) $k = 1 ;
|
||||
}
|
||||
|
||||
// set sessions for numbers, operator & answer. Only $_SESSION['answer'] is necessary. Others are for displaying full equation if you desire.
|
||||
$_SESSION['r1'] = $rand1 ;
|
||||
$_SESSION['r3'] = $rand3 ;
|
||||
|
||||
if ($rand2 == 0) {$_SESSION['r2'] = " - " ; $_SESSION['answer'] = $rand1 - $rand3 ; $frame_operator = "minus" ;}
|
||||
elseif ($rand2 == 1) {$_SESSION['r2'] = " + " ; $_SESSION['answer'] = $rand1 + $rand3 ; $frame_operator = "plus" ;}
|
||||
else {$_SESSION['r2'] = " * " ; $_SESSION['answer'] = $rand1 * $rand3 ; $frame_operator = "times" ;}
|
||||
|
||||
// build the frame images and elapsed time to show in 2 arrays
|
||||
$frames [ ] = "frames/solve.gif" ; // Intro message " Prove you are human ... "
|
||||
$time [ ] = 140;
|
||||
add_random_frames('solve') ;
|
||||
|
||||
// set 1st random number
|
||||
$frames [ ] = "frames/" .$rand1. ".gif"; // 1st number (0-9)
|
||||
$time [ ] = 35;
|
||||
add_random_frames($rand1) ;
|
||||
|
||||
// set frame for operator
|
||||
$frames [ ] = "frames/" .$frame_operator. ".gif" ;
|
||||
$time [ ] = 60;
|
||||
add_random_frames($frame_operator) ;
|
||||
|
||||
// set 2nd random number
|
||||
$frames [ ] = "frames/" .$rand3. ".gif"; // 2nd number (0-9)
|
||||
$time [ ] = 35;
|
||||
add_random_frames($rand3) ;
|
||||
|
||||
|
||||
// set final frame for equals
|
||||
$frames [ ] = "frames/equals.gif" ; // Ending message " equals = "
|
||||
$time [ ] = 140; // equals frame time (100 = 1 second)
|
||||
add_random_frames('equals') ;
|
||||
|
||||
// encode the gif using the class to avoid gd dependencies
|
||||
$gif = new GIFEncoder (
|
||||
$frames, // frames array
|
||||
$time, // elapsed time array
|
||||
0, // loops (0 = infinite)
|
||||
2, // disposal
|
||||
0, 0, 0, // rgb of transparency
|
||||
"url" // source type
|
||||
);
|
||||
|
||||
// display the image
|
||||
Header ( 'Content-type:image/gif' );
|
||||
echo $gif->GetAnimation ( );
|
||||
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
/*
|
||||
AnimCaptcha v1.3 >> 6-13-07
|
||||
|
||||
This Animated Gif Captcha system is brought to you courtesy of ...
|
||||
josh@betteradv.com ==> Josh Storz
|
||||
http://www.querythe.net/Animated-Gif-Captcha/ ==> Download Current Version
|
||||
|
||||
OOP (PHP 4 & 5) Interface by ...
|
||||
krakjoe@krakjoe.info ==> J Watkins
|
||||
|
||||
The GIFEncoder class was written by ...
|
||||
http://gifs.hu ==> László Zsidi
|
||||
http://www.phpclasses.org/browse/package/3163.html ==> Download Current Version
|
||||
|
||||
This file is part of QueryThe.Net's AnimatedCaptcha Package.
|
||||
|
||||
QueryThe.Net's AnimatedCaptcha is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
QueryThe.Net's AnimatedCaptcha is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with QueryThe.Net's AnimatedCaptcha; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
include "GIFEncoder.class.php";
|
||||
|
||||
function add_random_frames($frame) {
|
||||
// random number & elapsed time of frames to *hopefully* make a cracker's life tougher
|
||||
|
||||
global $frames ;
|
||||
global $time ;
|
||||
|
||||
$i = 0;
|
||||
$loop = rand(6, 14); // total number of frames in loop loop
|
||||
|
||||
while ($i < $loop)
|
||||
{
|
||||
$frames [ ] = "frames/$frame.gif"; // use the solve frame so that the human eye cannot see a flicker
|
||||
$time [ ] = rand(15, 25); // 5 * 20 = 1 second so the delay is never too terribly long
|
||||
$i ++ ;
|
||||
}
|
||||
}
|
||||
|
||||
// get random numbers & operator and make sure the answer is >= 0
|
||||
$k = 0 ;
|
||||
while($k == 0)
|
||||
{
|
||||
$rand1 = rand(1, 9); // 1st number (1-9)
|
||||
$rand3 = rand(1, 9); // 2nd number (1-9)
|
||||
$rand2 = rand(0, 2); // operator (-,+,*)
|
||||
|
||||
if (($rand2 != 0) || ($rand3 < $rand1)) $k = 1 ;
|
||||
}
|
||||
|
||||
// set sessions for numbers, operator & answer. Only $_SESSION['answer'] is necessary. Others are for displaying full equation if you desire.
|
||||
$_SESSION['r1'] = $rand1 ;
|
||||
$_SESSION['r3'] = $rand3 ;
|
||||
|
||||
if ($rand2 == 0) {$_SESSION['r2'] = " - " ; $_SESSION['answer'] = $rand1 - $rand3 ; $frame_operator = "minus" ;}
|
||||
elseif ($rand2 == 1) {$_SESSION['r2'] = " + " ; $_SESSION['answer'] = $rand1 + $rand3 ; $frame_operator = "plus" ;}
|
||||
else {$_SESSION['r2'] = " * " ; $_SESSION['answer'] = $rand1 * $rand3 ; $frame_operator = "times" ;}
|
||||
|
||||
// build the frame images and elapsed time to show in 2 arrays
|
||||
$frames [ ] = "frames/solve.gif" ; // Intro message " Prove you are human ... "
|
||||
$time [ ] = 140;
|
||||
add_random_frames('solve') ;
|
||||
|
||||
// set 1st random number
|
||||
$frames [ ] = "frames/" .$rand1. ".gif"; // 1st number (0-9)
|
||||
$time [ ] = 35;
|
||||
add_random_frames($rand1) ;
|
||||
|
||||
// set frame for operator
|
||||
$frames [ ] = "frames/" .$frame_operator. ".gif" ;
|
||||
$time [ ] = 60;
|
||||
add_random_frames($frame_operator) ;
|
||||
|
||||
// set 2nd random number
|
||||
$frames [ ] = "frames/" .$rand3. ".gif"; // 2nd number (0-9)
|
||||
$time [ ] = 35;
|
||||
add_random_frames($rand3) ;
|
||||
|
||||
|
||||
// set final frame for equals
|
||||
$frames [ ] = "frames/equals.gif" ; // Ending message " equals = "
|
||||
$time [ ] = 140; // equals frame time (100 = 1 second)
|
||||
add_random_frames('equals') ;
|
||||
|
||||
// encode the gif using the class to avoid gd dependencies
|
||||
$gif = new GIFEncoder (
|
||||
$frames, // frames array
|
||||
$time, // elapsed time array
|
||||
0, // loops (0 = infinite)
|
||||
2, // disposal
|
||||
0, 0, 0, // rgb of transparency
|
||||
"url" // source type
|
||||
);
|
||||
|
||||
// display the image
|
||||
Header ( 'Content-type:image/gif' );
|
||||
echo $gif->GetAnimation ( );
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,269 +1,269 @@
|
||||
<?php
|
||||
session_start();
|
||||
include("db.conf.php");
|
||||
|
||||
$page = '<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<style type="text/css">
|
||||
|
||||
#tooltip{
|
||||
position: absolute;
|
||||
left: -300px;
|
||||
width: 150px;
|
||||
border: 1px solid black;
|
||||
padding: 2px;
|
||||
background-color: black;
|
||||
visibility: hidden;
|
||||
z-index: 100;
|
||||
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
|
||||
}
|
||||
|
||||
#dhtmlpointer{
|
||||
position:absolute;
|
||||
left: -300px;
|
||||
z-index: 101;
|
||||
visibility: hidden;
|
||||
}
|
||||
</style>
|
||||
<title>' . $title . '</title>
|
||||
</head>
|
||||
<body style="background-color:black;color:yellow;font-family:verdana;">
|
||||
<script type="text/javascript">
|
||||
var offsetfromcursorX=12 //Customize x offset of tooltip
|
||||
var offsetfromcursorY=10 //Customize y offset of tooltip
|
||||
|
||||
var offsetdivfrompointerX=10 //Customize x offset of tooltip DIV relative to pointer image
|
||||
var offsetdivfrompointerY=14 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).
|
||||
|
||||
document.write(\'<div id="tooltip"></div>\') //write out tooltip DIV
|
||||
document.write(\'<img id="dhtmlpointer" src="inc/arrow2.gif">\') //write out pointer image
|
||||
|
||||
var ie=document.all
|
||||
var ns6=document.getElementById && !document.all
|
||||
var enabletip=false
|
||||
if (ie||ns6)
|
||||
var tipobj=document.all? document.all["tooltip"] : document.getElementById? document.getElementById("tooltip") : ""
|
||||
|
||||
var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""
|
||||
|
||||
function ietruebody(){
|
||||
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
|
||||
}
|
||||
|
||||
function ttip(thetext, thewidth, thecolor){
|
||||
if (ns6||ie){
|
||||
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
|
||||
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
|
||||
tipobj.innerHTML=thetext
|
||||
enabletip=true
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function positiontip(e){
|
||||
if (enabletip){
|
||||
var nondefaultpos=false
|
||||
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
|
||||
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
|
||||
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
|
||||
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20
|
||||
|
||||
var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
|
||||
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY
|
||||
|
||||
var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000
|
||||
|
||||
if (rightedge<tipobj.offsetWidth){
|
||||
tipobj.style.left=curX-tipobj.offsetWidth+"px"
|
||||
nondefaultpos=true
|
||||
}
|
||||
else if (curX<leftedge)
|
||||
tipobj.style.left="5px"
|
||||
else{
|
||||
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
|
||||
pointerobj.style.left=curX+offsetfromcursorX+"px"
|
||||
}
|
||||
|
||||
if (bottomedge<tipobj.offsetHeight){
|
||||
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
|
||||
nondefaultpos=true
|
||||
}
|
||||
else{
|
||||
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
|
||||
pointerobj.style.top=curY+offsetfromcursorY+"px"
|
||||
}
|
||||
tipobj.style.visibility="visible"
|
||||
if (!nondefaultpos)
|
||||
pointerobj.style.visibility="visible"
|
||||
else
|
||||
pointerobj.style.visibility="hidden"
|
||||
}
|
||||
}
|
||||
|
||||
function hidettip(){
|
||||
if (ns6||ie){
|
||||
enabletip=false
|
||||
tipobj.style.visibility="hidden"
|
||||
pointerobj.style.visibility="hidden"
|
||||
tipobj.style.left="-1000px"
|
||||
tipobj.style.backgroundColor=\'\'
|
||||
tipobj.style.width=\'\'
|
||||
}
|
||||
}
|
||||
document.onmousemove=positiontip
|
||||
</script>
|
||||
<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
|
||||
<p style="text-align:center;">
|
||||
<strong>' . $title2 . ' - ' . $title . '</strong>
|
||||
<br /><br /><br />
|
||||
Username:
|
||||
<br /><input name="username" type="text" maxlength="14" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'username must be 5 - 14 chars long\', 300)"; onMouseout="hidettip()"><br />
|
||||
Password:
|
||||
<br /><input name="password" type="password" maxlength="12" onkeyup="runPassword(this.value, \'mypassword\');" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Password must be 6 - 12 chars long\', 300)"; onMouseout="hidettip()">
|
||||
<div style="width: 100px;text-align:center;">
|
||||
<div id="mypassword_text" style="font-size: 10px;"></div>
|
||||
<div id="mypassword_bar" style="font-size: 1px; height: 2px; width: 0px; border: 1px solid white;"></div>
|
||||
</div></p>
|
||||
<br />
|
||||
<p style="text-align:center;">Email:
|
||||
<br /><input name="email" type="text" maxlength="50" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Email must be 15 - 50 chars long\', 300)"; onMouseout="hidettip()"><br />
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="0" >Original -
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="1" CHECKED >TBC -
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="2" >WOTLK<br />
|
||||
<img src="inc/OOP5.php" style="border: 1px dashed silver;"><br />
|
||||
<span style="font-size:9px;"><a href="">New question</a></span><br />
|
||||
<input type="text" style="width:160px;" name="AnimCaptcha"><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Are you a bot? are you? thats it...im getting my junior torturer kit, dont go anywhere i\'ll be right back.\', 300)"; onMouseout="hidettip()"><br />
|
||||
<br />
|
||||
<img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Yes everything must be filled. quit whining.\', 300)"; onMouseout="hidettip()"><button type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
<script type="text/javascript" src="inc/pwd_strength.js"></script>
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
function error_s ($text) {
|
||||
echo("<p style=\"background-color:black;color:yellow;font-family:verdana;\">" . $text);
|
||||
echo("<br /><br /><a style=\"color:orange;\" href=\"" . $_SERVER["SCRIPT_NAME"] . "\">Go back...</a></p>");
|
||||
};
|
||||
|
||||
$user_chars = "#[^a-zA-Z0-9_\-]#";
|
||||
$email_chars = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
|
||||
|
||||
$con = @mysql_connect($ip, $user, $pass);
|
||||
if (!$con) {
|
||||
error_s("Unable to connect to database: " . mysql_error());
|
||||
};
|
||||
|
||||
if (!empty($_POST)) {
|
||||
if ((empty($_POST["username"]))||(empty($_POST["password"]))||(empty($_POST["email"]))||(empty($_POST["expansion"])) ) {
|
||||
error_s("You did not enter all the required information.");
|
||||
exit();
|
||||
} else {
|
||||
$username = strtoupper($_POST["username"]);
|
||||
$password = strtoupper($_POST["password"]);
|
||||
$email = strtoupper($_POST["email"]);
|
||||
if (strlen($username) < 5) {
|
||||
error_s("Username too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($username) > 14) {
|
||||
error_s("Username too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) < 6) {
|
||||
error_s("Password too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) > 12) {
|
||||
error_s("Password too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) < 15) {
|
||||
error_s("Email was too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) > 50) {
|
||||
error_s("Email was too long.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$username)) {
|
||||
error_s("Username contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$password)) {
|
||||
error_s("Password contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (!preg_match($email_chars,$email)) {
|
||||
error_s("Email was in an incorrect format.");
|
||||
exit();
|
||||
};
|
||||
$username = mysql_real_escape_string($username);
|
||||
$password = mysql_real_escape_string($password);
|
||||
$email = mysql_real_escape_string($email);
|
||||
$qry = @mysql_query("select username from " . mysql_real_escape_string($r_db) . ".account where username = '" . $username . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_username = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_username as $key => $value) {
|
||||
$existing_username = $value;
|
||||
};
|
||||
};
|
||||
$existing_username = strtoupper($existing_username);
|
||||
if ($existing_username == strtoupper($_POST['username'])) {
|
||||
error_s("That username is already taken.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$qry = @mysql_query("select email from " . mysql_real_escape_string($r_db) . ".account where email = '" . $email . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_email = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_email as $key => $value) {
|
||||
$existing_email = $value;
|
||||
};
|
||||
};
|
||||
if ($existing_email == $_POST['email']) {
|
||||
error_s("That email is already in use.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$sha_pass_hash = sha1(strtoupper($username) . ":" . strtoupper($password));
|
||||
$register_sql = "insert into " . mysql_real_escape_string($r_db) . ".account (username, sha_pass_hash, email, expansion) values (upper('" . $username . "'),'" . $sha_pass_hash . "','" . $email . "','" . $expansion . "')";
|
||||
if (isset($_POST['AnimCaptcha']))
|
||||
{
|
||||
if (is_numeric($_POST['AnimCaptcha']))
|
||||
{
|
||||
if ( $_POST['AnimCaptcha'] == $_SESSION['answer'])
|
||||
{
|
||||
$qry = @mysql_query($register_sql, $con);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_s("Captcha not filled properly</b></p><p><a href=''>Try again</a></p>");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error_s("<p><b>Enter Numbers or (+/-) only. No alphabetical characters accepted.</b></p><p><a href=''>Try again</a></p>");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
if (!$qry) {
|
||||
error_s("Error creating account: " . mysql_error());
|
||||
};
|
||||
echo("Account successfully created.");
|
||||
exit();
|
||||
};
|
||||
} else {
|
||||
echo($page);
|
||||
};
|
||||
|
||||
echo '<center><a href="http://www.trinitycore.org">Trinity Powered</a></center>';
|
||||
|
||||
<?php
|
||||
session_start();
|
||||
include("db.conf.php");
|
||||
|
||||
$page = '<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<style type="text/css">
|
||||
|
||||
#tooltip{
|
||||
position: absolute;
|
||||
left: -300px;
|
||||
width: 150px;
|
||||
border: 1px solid black;
|
||||
padding: 2px;
|
||||
background-color: black;
|
||||
visibility: hidden;
|
||||
z-index: 100;
|
||||
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
|
||||
}
|
||||
|
||||
#dhtmlpointer{
|
||||
position:absolute;
|
||||
left: -300px;
|
||||
z-index: 101;
|
||||
visibility: hidden;
|
||||
}
|
||||
</style>
|
||||
<title>' . $title . '</title>
|
||||
</head>
|
||||
<body style="background-color:black;color:yellow;font-family:verdana;">
|
||||
<script type="text/javascript">
|
||||
var offsetfromcursorX=12 //Customize x offset of tooltip
|
||||
var offsetfromcursorY=10 //Customize y offset of tooltip
|
||||
|
||||
var offsetdivfrompointerX=10 //Customize x offset of tooltip DIV relative to pointer image
|
||||
var offsetdivfrompointerY=14 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).
|
||||
|
||||
document.write(\'<div id="tooltip"></div>\') //write out tooltip DIV
|
||||
document.write(\'<img id="dhtmlpointer" src="inc/arrow2.gif">\') //write out pointer image
|
||||
|
||||
var ie=document.all
|
||||
var ns6=document.getElementById && !document.all
|
||||
var enabletip=false
|
||||
if (ie||ns6)
|
||||
var tipobj=document.all? document.all["tooltip"] : document.getElementById? document.getElementById("tooltip") : ""
|
||||
|
||||
var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""
|
||||
|
||||
function ietruebody(){
|
||||
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
|
||||
}
|
||||
|
||||
function ttip(thetext, thewidth, thecolor){
|
||||
if (ns6||ie){
|
||||
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
|
||||
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
|
||||
tipobj.innerHTML=thetext
|
||||
enabletip=true
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function positiontip(e){
|
||||
if (enabletip){
|
||||
var nondefaultpos=false
|
||||
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
|
||||
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
|
||||
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
|
||||
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20
|
||||
|
||||
var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
|
||||
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY
|
||||
|
||||
var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000
|
||||
|
||||
if (rightedge<tipobj.offsetWidth){
|
||||
tipobj.style.left=curX-tipobj.offsetWidth+"px"
|
||||
nondefaultpos=true
|
||||
}
|
||||
else if (curX<leftedge)
|
||||
tipobj.style.left="5px"
|
||||
else{
|
||||
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
|
||||
pointerobj.style.left=curX+offsetfromcursorX+"px"
|
||||
}
|
||||
|
||||
if (bottomedge<tipobj.offsetHeight){
|
||||
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
|
||||
nondefaultpos=true
|
||||
}
|
||||
else{
|
||||
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
|
||||
pointerobj.style.top=curY+offsetfromcursorY+"px"
|
||||
}
|
||||
tipobj.style.visibility="visible"
|
||||
if (!nondefaultpos)
|
||||
pointerobj.style.visibility="visible"
|
||||
else
|
||||
pointerobj.style.visibility="hidden"
|
||||
}
|
||||
}
|
||||
|
||||
function hidettip(){
|
||||
if (ns6||ie){
|
||||
enabletip=false
|
||||
tipobj.style.visibility="hidden"
|
||||
pointerobj.style.visibility="hidden"
|
||||
tipobj.style.left="-1000px"
|
||||
tipobj.style.backgroundColor=\'\'
|
||||
tipobj.style.width=\'\'
|
||||
}
|
||||
}
|
||||
document.onmousemove=positiontip
|
||||
</script>
|
||||
<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
|
||||
<p style="text-align:center;">
|
||||
<strong>' . $title2 . ' - ' . $title . '</strong>
|
||||
<br /><br /><br />
|
||||
Username:
|
||||
<br /><input name="username" type="text" maxlength="14" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'username must be 5 - 14 chars long\', 300)"; onMouseout="hidettip()"><br />
|
||||
Password:
|
||||
<br /><input name="password" type="password" maxlength="12" onkeyup="runPassword(this.value, \'mypassword\');" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Password must be 6 - 12 chars long\', 300)"; onMouseout="hidettip()">
|
||||
<div style="width: 100px;text-align:center;">
|
||||
<div id="mypassword_text" style="font-size: 10px;"></div>
|
||||
<div id="mypassword_bar" style="font-size: 1px; height: 2px; width: 0px; border: 1px solid white;"></div>
|
||||
</div></p>
|
||||
<br />
|
||||
<p style="text-align:center;">Email:
|
||||
<br /><input name="email" type="text" maxlength="50" /><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Email must be 15 - 50 chars long\', 300)"; onMouseout="hidettip()"><br />
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="0" >Original -
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="1" CHECKED >TBC -
|
||||
<INPUT TYPE=RADIO NAME="expansion" VALUE="2" >WOTLK<br />
|
||||
<img src="inc/OOP5.php" style="border: 1px dashed silver;"><br />
|
||||
<span style="font-size:9px;"><a href="">New question</a></span><br />
|
||||
<input type="text" style="width:160px;" name="AnimCaptcha"><img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Are you a bot? are you? thats it...im getting my junior torturer kit, dont go anywhere i\'ll be right back.\', 300)"; onMouseout="hidettip()"><br />
|
||||
<br />
|
||||
<img src="inc/help.gif" HEIGHT="20" WIDTH="20" alt="help" onMouseover="ttip(\'Yes everything must be filled. quit whining.\', 300)"; onMouseout="hidettip()"><button type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
<script type="text/javascript" src="inc/pwd_strength.js"></script>
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
function error_s ($text) {
|
||||
echo("<p style=\"background-color:black;color:yellow;font-family:verdana;\">" . $text);
|
||||
echo("<br /><br /><a style=\"color:orange;\" href=\"" . $_SERVER["SCRIPT_NAME"] . "\">Go back...</a></p>");
|
||||
};
|
||||
|
||||
$user_chars = "#[^a-zA-Z0-9_\-]#";
|
||||
$email_chars = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
|
||||
|
||||
$con = @mysql_connect($ip, $user, $pass);
|
||||
if (!$con) {
|
||||
error_s("Unable to connect to database: " . mysql_error());
|
||||
};
|
||||
|
||||
if (!empty($_POST)) {
|
||||
if ((empty($_POST["username"]))||(empty($_POST["password"]))||(empty($_POST["email"]))||(empty($_POST["expansion"])) ) {
|
||||
error_s("You did not enter all the required information.");
|
||||
exit();
|
||||
} else {
|
||||
$username = strtoupper($_POST["username"]);
|
||||
$password = strtoupper($_POST["password"]);
|
||||
$email = strtoupper($_POST["email"]);
|
||||
if (strlen($username) < 5) {
|
||||
error_s("Username too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($username) > 14) {
|
||||
error_s("Username too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) < 6) {
|
||||
error_s("Password too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) > 12) {
|
||||
error_s("Password too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) < 15) {
|
||||
error_s("Email was too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) > 50) {
|
||||
error_s("Email was too long.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$username)) {
|
||||
error_s("Username contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$password)) {
|
||||
error_s("Password contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (!preg_match($email_chars,$email)) {
|
||||
error_s("Email was in an incorrect format.");
|
||||
exit();
|
||||
};
|
||||
$username = mysql_real_escape_string($username);
|
||||
$password = mysql_real_escape_string($password);
|
||||
$email = mysql_real_escape_string($email);
|
||||
$qry = @mysql_query("select username from " . mysql_real_escape_string($r_db) . ".account where username = '" . $username . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_username = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_username as $key => $value) {
|
||||
$existing_username = $value;
|
||||
};
|
||||
};
|
||||
$existing_username = strtoupper($existing_username);
|
||||
if ($existing_username == strtoupper($_POST['username'])) {
|
||||
error_s("That username is already taken.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$qry = @mysql_query("select email from " . mysql_real_escape_string($r_db) . ".account where email = '" . $email . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_email = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_email as $key => $value) {
|
||||
$existing_email = $value;
|
||||
};
|
||||
};
|
||||
if ($existing_email == $_POST['email']) {
|
||||
error_s("That email is already in use.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$sha_pass_hash = sha1(strtoupper($username) . ":" . strtoupper($password));
|
||||
$register_sql = "insert into " . mysql_real_escape_string($r_db) . ".account (username, sha_pass_hash, email, expansion) values (upper('" . $username . "'),'" . $sha_pass_hash . "','" . $email . "','" . $expansion . "')";
|
||||
if (isset($_POST['AnimCaptcha']))
|
||||
{
|
||||
if (is_numeric($_POST['AnimCaptcha']))
|
||||
{
|
||||
if ( $_POST['AnimCaptcha'] == $_SESSION['answer'])
|
||||
{
|
||||
$qry = @mysql_query($register_sql, $con);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_s("Captcha not filled properly</b></p><p><a href=''>Try again</a></p>");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error_s("<p><b>Enter Numbers or (+/-) only. No alphabetical characters accepted.</b></p><p><a href=''>Try again</a></p>");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
if (!$qry) {
|
||||
error_s("Error creating account: " . mysql_error());
|
||||
};
|
||||
echo("Account successfully created.");
|
||||
exit();
|
||||
};
|
||||
} else {
|
||||
echo($page);
|
||||
};
|
||||
|
||||
echo '<center><a href="http://www.trinitycore.org">Trinity Powered</a></center>';
|
||||
|
||||
?>
|
||||
@@ -1,7 +1,7 @@
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
Use either of the two scripts, not both :)
|
||||
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
Use either of the two scripts, not both :)
|
||||
|
||||
Expanded is based on the simple one however is still in beta so use at your own risk. if it one day takes over your computer and starts throwing out mutant monsters that eat your plants and kick your dog or cat its NOT our fault.
|
||||
@@ -1,20 +1,20 @@
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
This is a very simple account registration form that allows users
|
||||
to register game accounts on the web.
|
||||
|
||||
To run this, you will need:
|
||||
|
||||
* PHP 5.1+
|
||||
* MySQL 5.0.45+
|
||||
* Any web server
|
||||
|
||||
To install this registration form, simply copy the "index.php" to
|
||||
a folder on your web server. You can rename it to anything you
|
||||
like, but it's recommended to keep it as "index.php" and put it
|
||||
in a dedicated directory, such as "/home/public_html/register".
|
||||
|
||||
In order for the script to work correctly, you must configure it
|
||||
= Trinity Core -- Account registration form =
|
||||
|
||||
Copyright (C) Trinity Core (http://www.trinitycore.org)
|
||||
|
||||
This is a very simple account registration form that allows users
|
||||
to register game accounts on the web.
|
||||
|
||||
To run this, you will need:
|
||||
|
||||
* PHP 5.1+
|
||||
* MySQL 5.0.45+
|
||||
* Any web server
|
||||
|
||||
To install this registration form, simply copy the "index.php" to
|
||||
a folder on your web server. You can rename it to anything you
|
||||
like, but it's recommended to keep it as "index.php" and put it
|
||||
in a dedicated directory, such as "/home/public_html/register".
|
||||
|
||||
In order for the script to work correctly, you must configure it
|
||||
in the file itself.
|
||||
@@ -1,148 +1,148 @@
|
||||
<?php
|
||||
|
||||
// Configuration.
|
||||
// Realm database.
|
||||
$r_db = "realmd";
|
||||
// IP (and port).
|
||||
$ip = "127.0.0.1:3306";
|
||||
// Username.
|
||||
$user = "trinity";
|
||||
// Password.
|
||||
$pass = "trinity";
|
||||
// Site title.
|
||||
$title = "Registration Form";
|
||||
$title2 = "Some Server";
|
||||
// End config.
|
||||
|
||||
$page = '<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>' . $title . '</title>
|
||||
</head>
|
||||
<body style="background-color:black;color:yellow;font-family:verdana;">
|
||||
<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
|
||||
<p style="text-align:center;">
|
||||
<strong>' . $title2 . ' - ' . $title . '</strong>
|
||||
<br /><br /><br />
|
||||
Username:
|
||||
<br /><input name="username" type="text" maxlength="14" /><br />
|
||||
Password:
|
||||
<br /><input name="password" type="password" maxlength="12" /><br />
|
||||
Email:
|
||||
<br /><input name="email" type="text" maxlength="50" />
|
||||
<br /><input name="tbc" type="checkbox" checked="checked" /> TBC<br /><br /><br />
|
||||
<button type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
function error_s ($text) {
|
||||
echo("<p style=\"background-color:black;color:yellow;font-family:verdana;\">" . $text);
|
||||
echo("<br /><br /><a style=\"color:orange;\" href=\"" . $_SERVER["SCRIPT_NAME"] . "\">Go back...</a></p>");
|
||||
};
|
||||
|
||||
$user_chars = "#[^a-zA-Z0-9_\-]#";
|
||||
$email_chars = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
|
||||
|
||||
$con = @mysql_connect($ip, $user, $pass);
|
||||
if (!$con) {
|
||||
error_s("Unable to connect to database: " . mysql_error());
|
||||
};
|
||||
|
||||
if (!empty($_POST)) {
|
||||
if ((empty($_POST["username"]))||(empty($_POST["password"]))||(empty($_POST["email"]))||(empty($_POST["tbc"])) ) {
|
||||
error_s("You did not enter all the required information.");
|
||||
exit();
|
||||
} else {
|
||||
$username = strtoupper($_POST["username"]);
|
||||
$password = strtoupper($_POST["password"]);
|
||||
$email = strtoupper($_POST["email"]);
|
||||
if (strlen($username) < 5) {
|
||||
error_s("Username too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($username) > 14) {
|
||||
error_s("Username too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) < 8) {
|
||||
error_s("Password too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) > 12) {
|
||||
error_s("Password too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) < 15) {
|
||||
error_s("Email was too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) > 50) {
|
||||
error_s("Email was too long.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$username)) {
|
||||
error_s("Username contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$password)) {
|
||||
error_s("Password contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (!preg_match($email_chars,$email)) {
|
||||
error_s("Email was in an incorrect format.");
|
||||
exit();
|
||||
};
|
||||
if ($_POST['tbc'] != "on") {
|
||||
$tbc = "0";
|
||||
} else {
|
||||
$tbc = "1";
|
||||
};
|
||||
$username = mysql_real_escape_string($username);
|
||||
$password = mysql_real_escape_string($password);
|
||||
$email = mysql_real_escape_string($email);
|
||||
$qry = @mysql_query("select username from " . mysql_real_escape_string($r_db) . ".account where username = '" . $username . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_username = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_username as $key => $value) {
|
||||
$existing_username = $value;
|
||||
};
|
||||
};
|
||||
$existing_username = strtoupper($existing_username);
|
||||
if ($existing_username == strtoupper($_POST['username'])) {
|
||||
error_s("That username is already taken.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$qry = @mysql_query("select email from " . mysql_real_escape_string($r_db) . ".account where email = '" . $email . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_email = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_email as $key => $value) {
|
||||
$existing_email = $value;
|
||||
};
|
||||
};
|
||||
if ($existing_email == $_POST['email']) {
|
||||
error_s("That email is already in use.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$sha_pass_hash = sha1(strtoupper($username) . ":" . strtoupper($password));
|
||||
$register_sql = "insert into " . mysql_real_escape_string($r_db) . ".account (username, sha_pass_hash, email, expansion) values (upper('" . $username . "'),'" . $sha_pass_hash . "','" . $email . "','" . $tbc . "')";
|
||||
$qry = @mysql_query($register_sql, $con);
|
||||
if (!$qry) {
|
||||
error_s("Error creating account: " . mysql_error());
|
||||
};
|
||||
echo("Account successfully created.");
|
||||
exit();
|
||||
};
|
||||
} else {
|
||||
echo($page);
|
||||
};
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
// Configuration.
|
||||
// Realm database.
|
||||
$r_db = "realmd";
|
||||
// IP (and port).
|
||||
$ip = "127.0.0.1:3306";
|
||||
// Username.
|
||||
$user = "trinity";
|
||||
// Password.
|
||||
$pass = "trinity";
|
||||
// Site title.
|
||||
$title = "Registration Form";
|
||||
$title2 = "Some Server";
|
||||
// End config.
|
||||
|
||||
$page = '<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>' . $title . '</title>
|
||||
</head>
|
||||
<body style="background-color:black;color:yellow;font-family:verdana;">
|
||||
<form method="post" action="' . $_SERVER["SCRIPT_NAME"] . '">
|
||||
<p style="text-align:center;">
|
||||
<strong>' . $title2 . ' - ' . $title . '</strong>
|
||||
<br /><br /><br />
|
||||
Username:
|
||||
<br /><input name="username" type="text" maxlength="14" /><br />
|
||||
Password:
|
||||
<br /><input name="password" type="password" maxlength="12" /><br />
|
||||
Email:
|
||||
<br /><input name="email" type="text" maxlength="50" />
|
||||
<br /><input name="tbc" type="checkbox" checked="checked" /> TBC<br /><br /><br />
|
||||
<button type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
function error_s ($text) {
|
||||
echo("<p style=\"background-color:black;color:yellow;font-family:verdana;\">" . $text);
|
||||
echo("<br /><br /><a style=\"color:orange;\" href=\"" . $_SERVER["SCRIPT_NAME"] . "\">Go back...</a></p>");
|
||||
};
|
||||
|
||||
$user_chars = "#[^a-zA-Z0-9_\-]#";
|
||||
$email_chars = "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
|
||||
|
||||
$con = @mysql_connect($ip, $user, $pass);
|
||||
if (!$con) {
|
||||
error_s("Unable to connect to database: " . mysql_error());
|
||||
};
|
||||
|
||||
if (!empty($_POST)) {
|
||||
if ((empty($_POST["username"]))||(empty($_POST["password"]))||(empty($_POST["email"]))||(empty($_POST["tbc"])) ) {
|
||||
error_s("You did not enter all the required information.");
|
||||
exit();
|
||||
} else {
|
||||
$username = strtoupper($_POST["username"]);
|
||||
$password = strtoupper($_POST["password"]);
|
||||
$email = strtoupper($_POST["email"]);
|
||||
if (strlen($username) < 5) {
|
||||
error_s("Username too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($username) > 14) {
|
||||
error_s("Username too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) < 8) {
|
||||
error_s("Password too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($password) > 12) {
|
||||
error_s("Password too long.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) < 15) {
|
||||
error_s("Email was too short.");
|
||||
exit();
|
||||
};
|
||||
if (strlen($email) > 50) {
|
||||
error_s("Email was too long.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$username)) {
|
||||
error_s("Username contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (preg_match($user_chars,$password)) {
|
||||
error_s("Password contained illegal characters.");
|
||||
exit();
|
||||
};
|
||||
if (!preg_match($email_chars,$email)) {
|
||||
error_s("Email was in an incorrect format.");
|
||||
exit();
|
||||
};
|
||||
if ($_POST['tbc'] != "on") {
|
||||
$tbc = "0";
|
||||
} else {
|
||||
$tbc = "1";
|
||||
};
|
||||
$username = mysql_real_escape_string($username);
|
||||
$password = mysql_real_escape_string($password);
|
||||
$email = mysql_real_escape_string($email);
|
||||
$qry = @mysql_query("select username from " . mysql_real_escape_string($r_db) . ".account where username = '" . $username . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_username = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_username as $key => $value) {
|
||||
$existing_username = $value;
|
||||
};
|
||||
};
|
||||
$existing_username = strtoupper($existing_username);
|
||||
if ($existing_username == strtoupper($_POST['username'])) {
|
||||
error_s("That username is already taken.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$qry = @mysql_query("select email from " . mysql_real_escape_string($r_db) . ".account where email = '" . $email . "'", $con);
|
||||
if (!$qry) {
|
||||
error_s("Error querying database: " . mysql_error());
|
||||
};
|
||||
if ($existing_email = mysql_fetch_assoc($qry)) {
|
||||
foreach ($existing_email as $key => $value) {
|
||||
$existing_email = $value;
|
||||
};
|
||||
};
|
||||
if ($existing_email == $_POST['email']) {
|
||||
error_s("That email is already in use.");
|
||||
exit();
|
||||
};
|
||||
unset($qry);
|
||||
$sha_pass_hash = sha1(strtoupper($username) . ":" . strtoupper($password));
|
||||
$register_sql = "insert into " . mysql_real_escape_string($r_db) . ".account (username, sha_pass_hash, email, expansion) values (upper('" . $username . "'),'" . $sha_pass_hash . "','" . $email . "','" . $tbc . "')";
|
||||
$qry = @mysql_query($register_sql, $con);
|
||||
if (!$qry) {
|
||||
error_s("Error creating account: " . mysql_error());
|
||||
};
|
||||
echo("Account successfully created.");
|
||||
exit();
|
||||
};
|
||||
} else {
|
||||
echo($page);
|
||||
};
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,58 +1,58 @@
|
||||
#####################################################################
|
||||
###
|
||||
#
|
||||
# Makefile for compiling StormLib under linux
|
||||
#
|
||||
# Author: Marko Friedemann <marko.friedemann@bmx-chemnitz.de>
|
||||
# Created at: Mon Jan 29 18:26:01 CEST 2001
|
||||
# Computer: whiplash.flachland-chemnitz.de
|
||||
# System: Linux 2.4.0 on i686
|
||||
#
|
||||
# Copyright (c) 2001 BMX-Chemnitz.DE All rights reserved.
|
||||
#
|
||||
#####################################################################
|
||||
###
|
||||
|
||||
FILES.cpp = SCommon.cpp SCompression.cpp SFileCompactArchive.cpp \
|
||||
SFileCreateArchiveEx.cpp SFileExtractFile.cpp SFileFindFile.cpp \
|
||||
SListFile.cpp SFileOpenArchive.cpp SFileOpenFileEx.cpp SFileReadFile.cpp \
|
||||
StormPortLinux.cpp wave/wave.cpp huffman/huff.cpp \
|
||||
pklib/crc32.cpp pklib/explode.cpp pklib/implode.cpp
|
||||
FILES.o = $(FILES.cpp:.cpp=.o)
|
||||
|
||||
LIB = libStorm.so
|
||||
|
||||
CXX = g++
|
||||
CFLAGS = -Wall -s -D__SYS_ZLIB
|
||||
I_FLAGS =
|
||||
LDFLAGS = -lz -lbz2
|
||||
|
||||
all: $(LIB)
|
||||
|
||||
$(LIB): $(FILES.o)
|
||||
$(LD) -shared $(LDFLAGS) -o $(LIB) $(FILES.o)
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) $(CFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
$(RM) $(FILES.o) $(LIB)
|
||||
|
||||
new: clean all
|
||||
|
||||
mrproper: clean
|
||||
$(RM) Makefile.deps
|
||||
|
||||
mrnew: mrproper new
|
||||
|
||||
install: $(LIB)
|
||||
install $(I_FLAGS) $(LIB) /usr/local/lib
|
||||
mkdir -p /usr/local/include/StormLib
|
||||
cp Storm.h /usr/local/include/StormLib
|
||||
cp StormPort.h /usr/local/include/StormLib
|
||||
ldconfig
|
||||
|
||||
deps:
|
||||
$(CXX) -MM $(CFLAGS) $(FILES.cpp) > Makefile.deps
|
||||
|
||||
-include Makefile.deps
|
||||
########################################################################
|
||||
#
|
||||
# Makefile for compiling StormLib under linux
|
||||
#
|
||||
# Author: Marko Friedemann <marko.friedemann@bmx-chemnitz.de>
|
||||
# Created at: Mon Jan 29 18:26:01 CEST 2001
|
||||
# Computer: whiplash.flachland-chemnitz.de
|
||||
# System: Linux 2.4.0 on i686
|
||||
#
|
||||
# Copyright (c) 2001 BMX-Chemnitz.DE All rights reserved.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
FILES.cpp = SCommon.cpp SCompression.cpp SFileCompactArchive.cpp \
|
||||
SFileCreateArchiveEx.cpp SFileExtractFile.cpp SFileFindFile.cpp \
|
||||
SListFile.cpp SFileOpenArchive.cpp SFileOpenFileEx.cpp SFileReadFile.cpp \
|
||||
StormPortLinux.cpp wave/wave.cpp huffman/huff.cpp \
|
||||
pklib/crc32.cpp pklib/explode.cpp pklib/implode.cpp
|
||||
FILES.o = $(FILES.cpp:.cpp=.o)
|
||||
|
||||
LIB = libStorm.so
|
||||
|
||||
CXX = g++
|
||||
CFLAGS = -Wall -s -D__SYS_ZLIB
|
||||
I_FLAGS =
|
||||
LDFLAGS = -lz -lbz2
|
||||
|
||||
all: $(LIB)
|
||||
|
||||
$(LIB): $(FILES.o)
|
||||
$(LD) -shared $(LDFLAGS) -o $(LIB) $(FILES.o)
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) $(CFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
$(RM) $(FILES.o) $(LIB)
|
||||
|
||||
new: clean all
|
||||
|
||||
mrproper: clean
|
||||
$(RM) Makefile.deps
|
||||
|
||||
mrnew: mrproper new
|
||||
|
||||
install: $(LIB)
|
||||
install $(I_FLAGS) $(LIB) /usr/local/lib
|
||||
mkdir -p /usr/local/include/StormLib
|
||||
cp Storm.h /usr/local/include/StormLib
|
||||
cp StormPort.h /usr/local/include/StormLib
|
||||
ldconfig
|
||||
|
||||
deps:
|
||||
$(CXX) -MM $(CFLAGS) $(FILES.cpp) > Makefile.deps
|
||||
|
||||
-include Makefile.deps
|
||||
|
||||
.PHONY: all clean new mrpoper mrnew install deps
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,101 +1,101 @@
|
||||
DROP TABLE IF EXISTS `custom_texts`;
|
||||
CREATE TABLE `custom_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_scripts`;
|
||||
CREATE TABLE `eventai_scripts` (
|
||||
`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
|
||||
`creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier',
|
||||
`event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type',
|
||||
`event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in',
|
||||
`event_chance` int(3) unsigned NOT NULL default '100',
|
||||
`event_flags` int(3) unsigned NOT NULL default '0',
|
||||
`event_param1` int(11) signed NOT NULL default '0',
|
||||
`event_param2` int(11) signed NOT NULL default '0',
|
||||
`event_param3` int(11) signed NOT NULL default '0',
|
||||
`event_param4` int(11) signed NOT NULL default '0',
|
||||
`action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action1_param1` int(11) signed NOT NULL default '0',
|
||||
`action1_param2` int(11) signed NOT NULL default '0',
|
||||
`action1_param3` int(11) signed NOT NULL default '0',
|
||||
`action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action2_param1` int(11) signed NOT NULL default '0',
|
||||
`action2_param2` int(11) signed NOT NULL default '0',
|
||||
`action2_param3` int(11) signed NOT NULL default '0',
|
||||
`action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action3_param1` int(11) signed NOT NULL default '0',
|
||||
`action3_param2` int(11) signed NOT NULL default '0',
|
||||
`action3_param3` int(11) signed NOT NULL default '0',
|
||||
`comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_summons`;
|
||||
CREATE TABLE `eventai_summons` (
|
||||
`id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT,
|
||||
`position_x` float NOT NULL default '0',
|
||||
`position_y` float NOT NULL default '0',
|
||||
`position_z` float NOT NULL default '0',
|
||||
`orientation` float NOT NULL default '0',
|
||||
`spawntimesecs` int(11) unsigned NOT NULL default '120',
|
||||
`comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_texts`;
|
||||
CREATE TABLE `eventai_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `script_texts`;
|
||||
CREATE TABLE `script_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `script_db_version`;
|
||||
CREATE TABLE `script_db_version` (
|
||||
`version` varchar(255) NOT NULL default '' COMMENT 'Script Database version string'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
DROP TABLE IF EXISTS `custom_texts`;
|
||||
CREATE TABLE `custom_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Custom Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_scripts`;
|
||||
CREATE TABLE `eventai_scripts` (
|
||||
`id` int(11) unsigned NOT NULL COMMENT 'Identifier' AUTO_INCREMENT,
|
||||
`creature_id` int(11) unsigned NOT NULL default '0' COMMENT 'Creature Template Identifier',
|
||||
`event_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Event Type',
|
||||
`event_inverse_phase_mask` int(11) signed NOT NULL default '0' COMMENT 'Mask which phases this event will not trigger in',
|
||||
`event_chance` int(3) unsigned NOT NULL default '100',
|
||||
`event_flags` int(3) unsigned NOT NULL default '0',
|
||||
`event_param1` int(11) signed NOT NULL default '0',
|
||||
`event_param2` int(11) signed NOT NULL default '0',
|
||||
`event_param3` int(11) signed NOT NULL default '0',
|
||||
`event_param4` int(11) signed NOT NULL default '0',
|
||||
`action1_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action1_param1` int(11) signed NOT NULL default '0',
|
||||
`action1_param2` int(11) signed NOT NULL default '0',
|
||||
`action1_param3` int(11) signed NOT NULL default '0',
|
||||
`action2_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action2_param1` int(11) signed NOT NULL default '0',
|
||||
`action2_param2` int(11) signed NOT NULL default '0',
|
||||
`action2_param3` int(11) signed NOT NULL default '0',
|
||||
`action3_type` tinyint(5) unsigned NOT NULL default '0' COMMENT 'Action Type',
|
||||
`action3_param1` int(11) signed NOT NULL default '0',
|
||||
`action3_param2` int(11) signed NOT NULL default '0',
|
||||
`action3_param3` int(11) signed NOT NULL default '0',
|
||||
`comment` varchar(255) NOT NULL default '' COMMENT 'Event Comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Scripts';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_summons`;
|
||||
CREATE TABLE `eventai_summons` (
|
||||
`id` int(11) unsigned NOT NULL COMMENT 'Location Identifier' AUTO_INCREMENT,
|
||||
`position_x` float NOT NULL default '0',
|
||||
`position_y` float NOT NULL default '0',
|
||||
`position_z` float NOT NULL default '0',
|
||||
`orientation` float NOT NULL default '0',
|
||||
`spawntimesecs` int(11) unsigned NOT NULL default '120',
|
||||
`comment` varchar(255) NOT NULL default '' COMMENT 'Summon Comment',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='EventAI Summoning Locations';
|
||||
|
||||
DROP TABLE IF EXISTS `eventai_texts`;
|
||||
CREATE TABLE `eventai_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `script_texts`;
|
||||
CREATE TABLE `script_texts` (
|
||||
`entry` mediumint(8) NOT NULL,
|
||||
`content_default` text NOT NULL,
|
||||
`content_loc1` text,
|
||||
`content_loc2` text,
|
||||
`content_loc3` text,
|
||||
`content_loc4` text,
|
||||
`content_loc5` text,
|
||||
`content_loc6` text,
|
||||
`content_loc7` text,
|
||||
`content_loc8` text,
|
||||
`sound` mediumint(8) unsigned NOT NULL default '0',
|
||||
`type` tinyint unsigned NOT NULL default '0',
|
||||
`language` tinyint unsigned NOT NULL default '0',
|
||||
`comment` text,
|
||||
PRIMARY KEY (`entry`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Script Texts';
|
||||
|
||||
DROP TABLE IF EXISTS `script_db_version`;
|
||||
CREATE TABLE `script_db_version` (
|
||||
`version` varchar(255) NOT NULL default '' COMMENT 'Script Database version string'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
@@ -1,85 +1,85 @@
|
||||
=========================================
|
||||
Texts Documentation
|
||||
=========================================
|
||||
|
||||
Scriptdev2 Revision 695 introduces a new format for using texts in EventAI and SD2 Scripts.
|
||||
This information relates to the three *_texts tables located in the ScriptDev Database.
|
||||
|
||||
Any script can at any time access and use text from any of the three text tables, as long as the entry does in fact exist.
|
||||
Custom scripters are adviced to store their text data in custom_texts.
|
||||
|
||||
The three different tables has ranges of entries allowed for that table.
|
||||
eventai_texts: entry -1 -> -999999
|
||||
script_texts: entry -1000000 -> -1999999
|
||||
custom_texts: entry -2000000 -> -2999999
|
||||
Any entry out of range for that table will display a startup error.
|
||||
|
||||
|
||||
=========================================
|
||||
Basic Structure of eventai_texts, script_texts and custom_texts
|
||||
=========================================
|
||||
Below is a the list of current fields within the texts tables.
|
||||
|
||||
Field_Name Description
|
||||
-----------------------------------------------------------
|
||||
entry This value is mearly an NEGATIVE identifier of the current text number. Required for sql queries.
|
||||
content_default This is the actual text presented in the default language (English).
|
||||
|
||||
content_loc1 This is the actual text presented in the Localization #1 Clients (Korean)
|
||||
content_loc2 This is the actual text presented in the Localization #2 Clients (French)
|
||||
content_loc3 This is the actual text presented in the Localization #3 Clients (German)
|
||||
content_loc4 This is the actual text presented in the Localization #4 Clients (Chinese)
|
||||
content_loc5 This is the actual text presented in the Localization #5 Clients (Taiwanese)
|
||||
content_loc6 This is the actual text presented in the Localization #6 Clients (Spanish)
|
||||
content_loc7 This is the actual text presented in the Localization #7 Clients (Spanish Mexico)
|
||||
content_loc8 This is the actual text presented in the Localization #8 Clients (Russian)
|
||||
|
||||
sound This value is the Sound ID that corresponds to the actual text used (Defined in SoundEntries.dbc).
|
||||
type Variables used to define type of text (Say/Yell/Textemote/Whisper).
|
||||
language This value is the Language that the text is native in (Defined in Languages.dbc).
|
||||
comment This is a comment regarding the text entry (For ACID, accepted format is to use Creature ID of NPC using it).
|
||||
|
||||
Note: Fields `content_loc1` to `content_loc8` are NULL values by default and are handled by seperate localization projects.
|
||||
|
||||
|
||||
=========================================
|
||||
Text Types (type)
|
||||
=========================================
|
||||
Below is the list of current Text types that texts tables can handle. These were previously seperate Actions in ACID.
|
||||
|
||||
# Internal Name Description
|
||||
-----------------------------------------------------------
|
||||
0 CHAT_TYPE_SAY This type sets the text to be displayed as a Say (Speech Bubble).
|
||||
1 CHAT_TYPE_YELL This type sets the text to be displayed as a Yell (Red Speech Bubble) and usually has a matching Sound ID.
|
||||
2 CHAT_TYPE_TEXT_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log.
|
||||
3 CHAT_TYPE_BOSS_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log (Used only for specific Bosses).
|
||||
4 CHAT_TYPE_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log.
|
||||
5 CHAT_TYPE_BOSS_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log (Used only for specific Bosses).
|
||||
|
||||
|
||||
=========================================
|
||||
Language Types (language)
|
||||
=========================================
|
||||
Below is the list of current Language types that are allowed.
|
||||
This is the Race Language that the text is native to (So it will display properly)
|
||||
|
||||
# Internal Name Description
|
||||
-----------------------------------------------------------
|
||||
0 UNIVERSAL Text in this language is understood by ALL Races.
|
||||
1 ORCISH Text in this language is understood ONLY by Horde Races.
|
||||
2 DARNASSIAN Text in this language is understood ONLY by the Night Elf Race.
|
||||
3 TAURAHE Text in this language is understood ONLY by the Tauren Race.
|
||||
6 DWARVISH Text in this language is understood ONLY by the Dwarf Race.
|
||||
7 COMMON Text in this language is understood ONLY by Alliance Races.
|
||||
8 DEMONIC Text in this language is understood ONLY by the Demon Race (Not Implimented).
|
||||
9 TITAN This language was used by Sargeras to speak with other Titians (Not Implemented).
|
||||
10 THALASSIAN Text in this language is understood ONLY by the Blood Elf Race.
|
||||
11 DRACONIC Text in this language is understood ONLY by the Dragon Race.
|
||||
12 KALIMAG Text will display as Kalimag (not readable by players, language of all elementals)
|
||||
13 GNOMISH Text in this language is understood ONLY by the Gnome Race.
|
||||
14 TROLL Text in this language is understood ONLY by the Troll Race.
|
||||
33 GUTTERSPEAK Text in this language is understood ONLY by the Undead Race.
|
||||
35 DRAENEI Text in this language is understood ONLY by the Draenai Race.
|
||||
36 ZOMBIE (not currently used?)
|
||||
37 GNOMISH BINARY Binary language used by Alliance when drinking Binary Brew
|
||||
=========================================
|
||||
Texts Documentation
|
||||
=========================================
|
||||
|
||||
Scriptdev2 Revision 695 introduces a new format for using texts in EventAI and SD2 Scripts.
|
||||
This information relates to the three *_texts tables located in the ScriptDev Database.
|
||||
|
||||
Any script can at any time access and use text from any of the three text tables, as long as the entry does in fact exist.
|
||||
Custom scripters are adviced to store their text data in custom_texts.
|
||||
|
||||
The three different tables has ranges of entries allowed for that table.
|
||||
eventai_texts: entry -1 -> -999999
|
||||
script_texts: entry -1000000 -> -1999999
|
||||
custom_texts: entry -2000000 -> -2999999
|
||||
Any entry out of range for that table will display a startup error.
|
||||
|
||||
|
||||
=========================================
|
||||
Basic Structure of eventai_texts, script_texts and custom_texts
|
||||
=========================================
|
||||
Below is a the list of current fields within the texts tables.
|
||||
|
||||
Field_Name Description
|
||||
-----------------------------------------------------------
|
||||
entry This value is mearly an NEGATIVE identifier of the current text number. Required for sql queries.
|
||||
content_default This is the actual text presented in the default language (English).
|
||||
|
||||
content_loc1 This is the actual text presented in the Localization #1 Clients (Korean)
|
||||
content_loc2 This is the actual text presented in the Localization #2 Clients (French)
|
||||
content_loc3 This is the actual text presented in the Localization #3 Clients (German)
|
||||
content_loc4 This is the actual text presented in the Localization #4 Clients (Chinese)
|
||||
content_loc5 This is the actual text presented in the Localization #5 Clients (Taiwanese)
|
||||
content_loc6 This is the actual text presented in the Localization #6 Clients (Spanish)
|
||||
content_loc7 This is the actual text presented in the Localization #7 Clients (Spanish Mexico)
|
||||
content_loc8 This is the actual text presented in the Localization #8 Clients (Russian)
|
||||
|
||||
sound This value is the Sound ID that corresponds to the actual text used (Defined in SoundEntries.dbc).
|
||||
type Variables used to define type of text (Say/Yell/Textemote/Whisper).
|
||||
language This value is the Language that the text is native in (Defined in Languages.dbc).
|
||||
comment This is a comment regarding the text entry (For ACID, accepted format is to use Creature ID of NPC using it).
|
||||
|
||||
Note: Fields `content_loc1` to `content_loc8` are NULL values by default and are handled by seperate localization projects.
|
||||
|
||||
|
||||
=========================================
|
||||
Text Types (type)
|
||||
=========================================
|
||||
Below is the list of current Text types that texts tables can handle. These were previously seperate Actions in ACID.
|
||||
|
||||
# Internal Name Description
|
||||
-----------------------------------------------------------
|
||||
0 CHAT_TYPE_SAY This type sets the text to be displayed as a Say (Speech Bubble).
|
||||
1 CHAT_TYPE_YELL This type sets the text to be displayed as a Yell (Red Speech Bubble) and usually has a matching Sound ID.
|
||||
2 CHAT_TYPE_TEXT_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log.
|
||||
3 CHAT_TYPE_BOSS_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log (Used only for specific Bosses).
|
||||
4 CHAT_TYPE_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log.
|
||||
5 CHAT_TYPE_BOSS_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log (Used only for specific Bosses).
|
||||
|
||||
|
||||
=========================================
|
||||
Language Types (language)
|
||||
=========================================
|
||||
Below is the list of current Language types that are allowed.
|
||||
This is the Race Language that the text is native to (So it will display properly)
|
||||
|
||||
# Internal Name Description
|
||||
-----------------------------------------------------------
|
||||
0 UNIVERSAL Text in this language is understood by ALL Races.
|
||||
1 ORCISH Text in this language is understood ONLY by Horde Races.
|
||||
2 DARNASSIAN Text in this language is understood ONLY by the Night Elf Race.
|
||||
3 TAURAHE Text in this language is understood ONLY by the Tauren Race.
|
||||
6 DWARVISH Text in this language is understood ONLY by the Dwarf Race.
|
||||
7 COMMON Text in this language is understood ONLY by Alliance Races.
|
||||
8 DEMONIC Text in this language is understood ONLY by the Demon Race (Not Implimented).
|
||||
9 TITAN This language was used by Sargeras to speak with other Titians (Not Implemented).
|
||||
10 THALASSIAN Text in this language is understood ONLY by the Blood Elf Race.
|
||||
11 DRACONIC Text in this language is understood ONLY by the Dragon Race.
|
||||
12 KALIMAG Text will display as Kalimag (not readable by players, language of all elementals)
|
||||
13 GNOMISH Text in this language is understood ONLY by the Gnome Race.
|
||||
14 TROLL Text in this language is understood ONLY by the Troll Race.
|
||||
33 GUTTERSPEAK Text in this language is understood ONLY by the Undead Race.
|
||||
35 DRAENEI Text in this language is understood ONLY by the Draenai Race.
|
||||
36 ZOMBIE (not currently used?)
|
||||
37 GNOMISH BINARY Binary language used by Alliance when drinking Binary Brew
|
||||
38 GOBLIN BINARY Binary language used by Horce when drinking Binary Brew
|
||||
@@ -1,36 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
|
||||
*
|
||||
* Copyright (C) 2008 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// THIS FILE IS DEPRECATED
|
||||
|
||||
#ifndef TRINITY_SYSTEMCONFIG_H
|
||||
#define TRINITY_SYSTEMCONFIG_H
|
||||
|
||||
#include "Platform/Define.h"
|
||||
|
||||
// THIS IS TEMP :)
|
||||
#define _FULLVERSION "Trinity"
|
||||
|
||||
#define DEFAULT_PLAYER_LIMIT 100
|
||||
#define DEFAULT_WORLDSERVER_PORT 8085 //8129
|
||||
#define DEFAULT_REALMSERVER_PORT 3724
|
||||
#define DEFAULT_SOCKET_SELECT_TIME 10000
|
||||
#endif
|
||||
/*
|
||||
* Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
|
||||
*
|
||||
* Copyright (C) 2008 Trinity <http://www.trinitycore.org/>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// THIS FILE IS DEPRECATED
|
||||
|
||||
#ifndef TRINITY_SYSTEMCONFIG_H
|
||||
#define TRINITY_SYSTEMCONFIG_H
|
||||
|
||||
#include "Platform/Define.h"
|
||||
|
||||
// THIS IS TEMP :)
|
||||
#define _FULLVERSION "Trinity"
|
||||
|
||||
#define DEFAULT_PLAYER_LIMIT 100
|
||||
#define DEFAULT_WORLDSERVER_PORT 8085 //8129
|
||||
#define DEFAULT_REALMSERVER_PORT 3724
|
||||
#define DEFAULT_SOCKET_SELECT_TIME 10000
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user