Prowadzę serwer w grze przez hamachi od jakiegoś tygodnia. Z racji że gra już jest dopracowana zacząłem pracę nad stroną do gry ( a właściwie ściągnąłem gotowca z błędem). W krasnal serwerze przy próbie rejestracji konta wyskakuje:
Cytat
Warning: mssql_query(): message: Violation of PRIMARY KEY constraint 'PK_MEMB_INFO_1'. Cannot insert duplicate key in object 'MEMB_INFO'. (severity 14) in c:\usr\krasnal\www\hell\mupagecore\rejestracja2.php on line 172
Konto zalozone!
Konto zalozone!
Konto oczywiście nie zostaje założone.
Istniejące już konta normalnie są na stronie w trankingu normalnie można się na nie zalogować ale stworzenie konta na stronie kończy się fiaskiem.
Domyślam się że problem leży w pliku rejestracja2.php także wklejam go poniżej.
Z góry dziękuję za wychwycenie problemu i pomoc.
Cytat
<?
/*-----------------------------------------------------*\
| SkyTeam MuPage file |
| this file is connected with module $page["rejestracja"]|
| File version 1.0 |
| by Amelek (szklarzewicz@wp.pl) |
| http://lorencia.com |
\*-----------------------------------------------------*/
if(!defined('SkyTeamPageRUNNING') OR !$page["rejestracja"])
{
die("Include error..");
}
?>
<div style="text-align:center">
<?php
if($reg == 1)
{
include "mupagecore/coreincludes/logsth.php";
$login = $_POST["login"];
$pw = $_POST["pw"];
$cpw = $_POST["cpw"];
$login = trim($login);
$pw = trim($pw);
$cpw = trim($cpw);
$name = $login;
if($page["validate_by_email"])
{
$naglowki = $lang_email_header;
function IsEMail($e)
{
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // allowed characters for part before "at" character
$domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // allowed characters for part after "at" character
$regex = '^' . $atom . '+' . // One or more atom characters.
'(\.' . $atom . '+)*'. // Followed by zero or more dot separated sets of one or more atom characters.
'@'. // Followed by an "at" character.
'(' . $domain . '{1,63}\.)+'. // Followed by one or max 63 domain characters (dot separated).
$domain . '{2,63}'. // Must be followed by one set consisting a period of two
'$'; // or max 63 domain characters.
if (strlen($e) == 0)
{
return false;
}
elseif(count(explode("@",$e)) != 2)
{
return false;
}
else
{
if (eregi($regex, $e))
{
return true;
}
else
{
return false;
}
}
return false;
}
if(isEMail($_POST['email']))
{
// check if its in database..
if(strpos($_POST['email'], "'") !== false)
$email = false;
else
{
$check_mail = mssql_query("SELECT EMail FROM ST_EMAIL WHERE EMail = '".$_POST['email']."'");
$check_mail = mssql_fetch_row($check_mail);
if($check_mail[0] == $_POST['email'])
{
echo $lang_email_alredy_used.'<br>';
$email = false;
}
else
{
$email = $_POST['email'];
$mail_hash = md5(md5($nazwa.$email).md5($login,psw).md5(date('U')));
}
}
}
else
{
$email = false;
}
}
else
{
$email = 'Rejestracja przez strone';
}
//temp
//$email = 'Rejestracja przez strone';
$prq = "pyt";
$pra = "odp";
if(!$email)
{
echo $lang_email_error;
addtolog("<b>Wrong Email ".$_POST['email']."</b>","REG");
}
elseif((strtoupper($_POST['regconfirm']) != $HTTP_SESSION_VARS['regcode'] OR empty($_POST['regconfirm'])) AND $page["reg_code"])
{
echo $lang_reg_wrong_confirm_code;
addtolog("<b>Wrong code</b>","REG");
}
elseif(ereg("[^0-9a-zA-Z_-]", $login, $str))
{
echo $lang_login_wrong_chars;
addtolog("<b>Wrong Chars (login) $login</b>","REG");
}
elseif(ereg("[^0-9a-zA-Z_-]", $pw, $str))
{
echo $lang_pw_wrong_chars;
addtolog("<b>Wrong Chars (pass) $pass</b>","REG");
}
else
{
$login_test = strtolower($login);
$resultx = mssql_query("SELECT LOWER(memb___id) FROM MEMB_INFO WHERE LOWER(memb___id) = ('$login_test')") or die;
if (mssql_num_rows($resultx))
{
echo $lang_this_acc_exist;
addtolog("<b>Exist account $login</b>","REG");
}
elseif (empty($login) || empty($name) || empty($email) || empty($pw) || empty($cpw))
{
echo $lang_fill_fields;
}
elseif (strlen($login) < 4)
{
echo $lang_login_too_short;
}
elseif (strlen($pw) < 4)
{
echo $lang_pass_too_short;
}
elseif (strlen($pw) > 10)
{
echo $lang_pass_too_long;
}
elseif (strlen($login) > 10)
{
echo $lang_login_too_long;
}
elseif ($pw != $cpw)
{
echo $lang_pass_not_correct;
}
else
{
if($page["validate_by_email"] AND !$page["register_after_validation"]) // send mail..
{
mail($_POST['email'], $nazwa.$lang_email_title, sprintf($lang_email_content_1,$login,$nazwa,$mail_hash), $naglowki);
mssql_query("INSERT INTO ST_EMAIL (AccountID,EMail,Fine,hash) values('$login','$email',0,'$mail_hash',".date('U').")");
echo $lang_email_you_will_get_it.'<br>';
}
if(!$page["register_after_validation"] OR !$page["validate_by_email"])
{
addtolog("<b>REG: $login $pw</b>","REG");
mssql_query("INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Sect
ion,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20055','1',1234,'$login','$login',1,'7','6','3','6','6',getdate(),'0' )") or die('error, account exists');
mssql_query("SET IDENTITY_INSERT MEMB_INFO ON INSERT INTO MEMB_INFO (memb_guid,memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta
,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,
out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('1','$login','$pw','$name', '1','1234','11111','personalid','12343','$email','$email','$prq','$pra','1',getdate(),getdate(),getdate(),getdate(),'1','0','1')") or die('error, query failed');
echo $lang_acc_done;
}
else
{
mail($_POST['email'], $nazwa.$lang_email_title, sprintf($lang_email_content_2,$login,$nazwa,$mail_hash), $naglowki);
mssql_query("INSERT INTO ST_EMAIL (AccountID,EMail,Fine,hash) values('$login','$email',0,'$mail_hash',".date('U').")");
addtolog("<b>Wait to register: $login $pw [$mail_hash]</b>","REG");
echo $lang_email_you_need_to_veryf_your_acc_before_you_can_play;
}
}
}
}
else
{
echo $lang_sorry_reg_off;
include "mupagecore/coreincludes/logsth.php";
addtolog("<b>TRYING TO HACK REG SCRIPT: $login $pw</b>","REG");
}
$login2 = $HTTP_SESSION_VARS['loginvar'];
$login = $HTTP_SESSION_VARS['loginvar'];
?>
</div>
/*-----------------------------------------------------*\
| SkyTeam MuPage file |
| this file is connected with module $page["rejestracja"]|
| File version 1.0 |
| by Amelek (szklarzewicz@wp.pl) |
| http://lorencia.com |
\*-----------------------------------------------------*/
if(!defined('SkyTeamPageRUNNING') OR !$page["rejestracja"])
{
die("Include error..");
}
?>
<div style="text-align:center">
<?php
if($reg == 1)
{
include "mupagecore/coreincludes/logsth.php";
$login = $_POST["login"];
$pw = $_POST["pw"];
$cpw = $_POST["cpw"];
$login = trim($login);
$pw = trim($pw);
$cpw = trim($cpw);
$name = $login;
if($page["validate_by_email"])
{
$naglowki = $lang_email_header;
function IsEMail($e)
{
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // allowed characters for part before "at" character
$domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)'; // allowed characters for part after "at" character
$regex = '^' . $atom . '+' . // One or more atom characters.
'(\.' . $atom . '+)*'. // Followed by zero or more dot separated sets of one or more atom characters.
'@'. // Followed by an "at" character.
'(' . $domain . '{1,63}\.)+'. // Followed by one or max 63 domain characters (dot separated).
$domain . '{2,63}'. // Must be followed by one set consisting a period of two
'$'; // or max 63 domain characters.
if (strlen($e) == 0)
{
return false;
}
elseif(count(explode("@",$e)) != 2)
{
return false;
}
else
{
if (eregi($regex, $e))
{
return true;
}
else
{
return false;
}
}
return false;
}
if(isEMail($_POST['email']))
{
// check if its in database..
if(strpos($_POST['email'], "'") !== false)
$email = false;
else
{
$check_mail = mssql_query("SELECT EMail FROM ST_EMAIL WHERE EMail = '".$_POST['email']."'");
$check_mail = mssql_fetch_row($check_mail);
if($check_mail[0] == $_POST['email'])
{
echo $lang_email_alredy_used.'<br>';
$email = false;
}
else
{
$email = $_POST['email'];
$mail_hash = md5(md5($nazwa.$email).md5($login,psw).md5(date('U')));
}
}
}
else
{
$email = false;
}
}
else
{
$email = 'Rejestracja przez strone';
}
//temp
//$email = 'Rejestracja przez strone';
$prq = "pyt";
$pra = "odp";
if(!$email)
{
echo $lang_email_error;
addtolog("<b>Wrong Email ".$_POST['email']."</b>","REG");
}
elseif((strtoupper($_POST['regconfirm']) != $HTTP_SESSION_VARS['regcode'] OR empty($_POST['regconfirm'])) AND $page["reg_code"])
{
echo $lang_reg_wrong_confirm_code;
addtolog("<b>Wrong code</b>","REG");
}
elseif(ereg("[^0-9a-zA-Z_-]", $login, $str))
{
echo $lang_login_wrong_chars;
addtolog("<b>Wrong Chars (login) $login</b>","REG");
}
elseif(ereg("[^0-9a-zA-Z_-]", $pw, $str))
{
echo $lang_pw_wrong_chars;
addtolog("<b>Wrong Chars (pass) $pass</b>","REG");
}
else
{
$login_test = strtolower($login);
$resultx = mssql_query("SELECT LOWER(memb___id) FROM MEMB_INFO WHERE LOWER(memb___id) = ('$login_test')") or die;
if (mssql_num_rows($resultx))
{
echo $lang_this_acc_exist;
addtolog("<b>Exist account $login</b>","REG");
}
elseif (empty($login) || empty($name) || empty($email) || empty($pw) || empty($cpw))
{
echo $lang_fill_fields;
}
elseif (strlen($login) < 4)
{
echo $lang_login_too_short;
}
elseif (strlen($pw) < 4)
{
echo $lang_pass_too_short;
}
elseif (strlen($pw) > 10)
{
echo $lang_pass_too_long;
}
elseif (strlen($login) > 10)
{
echo $lang_login_too_long;
}
elseif ($pw != $cpw)
{
echo $lang_pass_not_correct;
}
else
{
if($page["validate_by_email"] AND !$page["register_after_validation"]) // send mail..
{
mail($_POST['email'], $nazwa.$lang_email_title, sprintf($lang_email_content_1,$login,$nazwa,$mail_hash), $naglowki);
mssql_query("INSERT INTO ST_EMAIL (AccountID,EMail,Fine,hash) values('$login','$email',0,'$mail_hash',".date('U').")");
echo $lang_email_you_will_get_it.'<br>';
}
if(!$page["register_after_validation"] OR !$page["validate_by_email"])
{
addtolog("<b>REG: $login $pw</b>","REG");
mssql_query("INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Sect
ion,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20055','1',1234,'$login','$login',1,'7','6','3','6','6',getdate(),'0' )") or die('error, account exists');
mssql_query("SET IDENTITY_INSERT MEMB_INFO ON INSERT INTO MEMB_INFO (memb_guid,memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta
,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,
out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('1','$login','$pw','$name', '1','1234','11111','personalid','12343','$email','$email','$prq','$pra','1',getdate(),getdate(),getdate(),getdate(),'1','0','1')") or die('error, query failed');
echo $lang_acc_done;
}
else
{
mail($_POST['email'], $nazwa.$lang_email_title, sprintf($lang_email_content_2,$login,$nazwa,$mail_hash), $naglowki);
mssql_query("INSERT INTO ST_EMAIL (AccountID,EMail,Fine,hash) values('$login','$email',0,'$mail_hash',".date('U').")");
addtolog("<b>Wait to register: $login $pw [$mail_hash]</b>","REG");
echo $lang_email_you_need_to_veryf_your_acc_before_you_can_play;
}
}
}
}
else
{
echo $lang_sorry_reg_off;
include "mupagecore/coreincludes/logsth.php";
addtolog("<b>TRYING TO HACK REG SCRIPT: $login $pw</b>","REG");
}
$login2 = $HTTP_SESSION_VARS['loginvar'];
$login = $HTTP_SESSION_VARS['loginvar'];
?>
</div>