Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd w skrypcie. Tylko gdzie?
Forum PHP.pl > Forum > Przedszkole
attila1356
Witam!
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 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>
Niktoś
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

No chyba ten błąd Ciebie o wszystkim informuje.
mortus
Doradzę tylko, abyś pozbył się Krasnala (z tego co się orientuję jest on "troszkę" nieaktualny). Alternatyw masz kilka np. WampServer, xampp.

Poza tym komunikat błędu mówi sam za siebie, wystarczy przeczytać, ewentualnie wrzucić do translatora, przetlumaczyć i przeczytać ze zrozumieniem.
attila1356
Cytat(Niktoś @ 1.04.2012, 12:59:51 ) *
No chyba ten błąd Ciebie o wszystkim informuje.


Rozumiem mniej więcej w czym problem tylko nie mam pojęcia jak to naprawić. Nie znam się kompletnie na tym dlatego piszę w odpowiednim do mojego poziomu dziale.

Cytat(mortus @ 1.04.2012, 13:16:34 ) *
Doradzę tylko, abyś pozbył się Krasnala (z tego co się orientuję jest on "troszkę" nieaktualny). Alternatyw masz kilka np. WampServer, xampp.


Potzrebuje tą stronkę tylko do jednej czynności także krasnal zupełnie wystarczy o ile zacznie działać poprawnie:) Poza tym ledwo ogarniam krasnala a domyślam się że nowsze odpowiedniki są jeszcze bardziej pomieszane:)
thek
Problem w tym, że bazowy krasnal serv to po prostu antyk: Apache 1.3, Php 4, Mysql 3.x... Przy takich składnikach część rzeczy po prostu nie będzie działać, bo te stare wersje tego nie mają i tym samym nie obsłużą, ale sypną błędami, które nie powinny się pokazać... Ja krasnala używałem w jakoś 2004 roku, a już wtedy nie był zbyt świeży. Nie dziw się więc, że coś Ci nie chce działać. Nawet poprawne zapytania SQL mogą Ci się wywalać, bo przykładowo ta wersja MySQL nie obsługiwała jeszcze UNION. Naprawdę... Zanim zaczniesz sie grzebać w kodzie zrób takie środowisko, aby po jego wrzuceniu gdziekolwiek, działało to bez problemów i wielkich przeróbek.
attila1356
Dobra zainstaluje coś nowszego i zobaczymy czy błąd będzie się powtarzał.
Wieczorem dam znać czy zmiana krasnala coś dała.

Tak jak zalecaliście zmieniłem program na xamppa teraz tylko podpowiedzcie mi jak i gdzie wrzucić mój szablon?
Z tego co wyczytałem to do htdosc uprzednio usówając całą zawartość foldera, jak tak zrobie to wyskakuje mi poprostu nie można wyświetlić strony:/
Szablon mam w takiej postaci:

Wrzucając to do krasnala odpalało się bez problemu. Niestety do xamppa nie znalazłem poradnika dla laików dotyczących szblonu także mam nadzieje że mi podpowiecie.

Kolejna sprawa to jak zgrać moją bazę danych servera (postawiona na SQLEVAL 2000) ze stroną? W krasnalu przy odpaleniu był poprostu formularz gdzie wklepałem ip hasło itd i śmigało tu niestety nie wiem jak to zrobićsmile.gif

Pytania pewnie balnalne ale niestety google nie pomogło a ja jak już wspomniałem jestem w tej kwestii zielony:P
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.