Witam,
mam pewien problem. Posiadam skrypt pobierania za sms i jest w nim jeden problem. Gdy ktoś wyśle sms to normalnie przychodzi do niego kod zwrotny, który musi wpisać na stronie. Lecz przy wpisywaniu od razu po zatwierdzeniu oznacza go jako błędy kod dostępu. Sprawdzając w bazie kod zostaje oznaczony jako wykorzystany. Najdziwniejsze jest to, że u większości wszystko działa poprawnie i można pobrać dany plik.
function check_code($code)
{
$res = database_query("SELECT msg_id FROM messages WHERE msg_code = '$code'");
if(database_error())
{
printf("ERROR\nProblem z baza danych podczas weryfikacji kodu:".database_error
()); }
if(database_next_row($res))
return false;
return true;
}
//wygeneruj kod, sprawdz, czy jest unikalny.
$code = code_generate($config_code_length);
while(!check_code($code))
$code = code_generate($config_code_length);
//zapisz kod, nowa wiadomosc w bazie danych
database_query("INSERT INTO messages(msg_orig,msg_dest,msg_text,msg_code,msg_smsid,msg_code_value) VALUES ('$_sms_orig','$_sms_dest','$_sms_msg','$code',$_sms_id,".sms_value($_sms_dest).")");
if(database_error())
{
printf("ERROR\r\nProblem z baza danych podczas zapisywania wiadomosci:".database_error
()); }
oraz plik codecheck.inc
function code_check($_code)
{
$res = database_query("SELECT * FROM messages WHERE msg_code = '".database_escape_string($_code)."' AND msg_tm > '".$codeDate."' AND msg_code_used IS NULL");
if(database_error()) return false;
$row = database_next_row($res);
if(!$row)
{
return Array("code"=>-1, "value"=>0
); }
return Array("code"=>$row["msg_id"], "value"=> $row["msg_code_value"], "sms_text"=> $row["msg_text"]); }