Autor | Zpráva | ||
---|---|---|---|
Fastman Profil |
Dobrý den,
Mám tenhle problém. Zde mám skript. <?php $log_file = FOpen('log.txt', 'a'); // Otevirate soubor FPutS($log_file, Date("Y-m-d H:i:s") . " " . $_GET['sms'] . " " . $_GET['country'] . " " . $_GET['operator'] . " " . $_GET['debug'] . "\n"); // Zapisujete text z prichozi SMS zpravy FClose($log_file); // Uzavirate soubor echo "Dekujeme za platbu, zapsali jsme si ji. Vase VIP pro csgo aktivujeme co nejrychleji."; // Odpovidate zakaznikovi $server = "127.0.0.1"; // jméno serveru $login = "xx"; // přihlašovací jméno $heslo = "xxxx"; // heslo $databaze = "vipcsgo"; // název databáze $table = "STAMM_DB_1"; $text = $_GET['sms']; MySQL_Connect($server, $login, $heslo) or die("Nepodařilo se připojit k databázi"); // připojení k databázi MySQL_Select_DB($databaze) or die("Nepodařilo se otevřít databázi"); // výběr databáze $sql = "UPDATE `vipcsgo`.`STAMM_DB_1` SET `points` = `points` + 300 WHERE `STAMM_DB_1`.`steamid` = '$_GET[sms]'"; $result=mysql_query($sql) or trigger_error(mysql_error().$sql); ?> Do položky $_GET[sms] se odesílá zpráva z SMS. Formát SMS je tenhle "PM CSGO steamid". Problém je, že v tabulce steamid jsou jenom položky "STEAM_1:1:42471801" a ono to odesílá kompletní SMS "PM CSGO STEAM_1:1:42471801" a já potřebuji, aby to odeslalo jenom "STEAM_1:1:42471801" do databáze. Nevíte jak zakázat či omezit ten text "PM CSGO"? Aby se neodesílalo do databáze jenom "STEAM_1:1:42471801". Vím je to výzva, ale co se dá dělat, děkuji Vám za odpovědi. *Prostě to posílá do databáze celou SMS "PM CSGO STEAM_1:1:42471801" a to nemůže logicky vyhledat, když jsou v položce steamid jenom "STEAM_x:x:xxxxxx" a já potřebuji nějak zakázat či omezit nebo blokovat, a nebo aby to počítalo od nějakého písmena ten záznam.. už nevím. Jak udělat, aby to neodeslalo PM CSGO do databáze... Tady je konfigurace daného skriptu: http://fastmancz.sweb.cz/technicka-specifikace-mobilniplatby-cz.pdf |
||
han5vk Profil |
$sms="PM CSGO STEAM_1656461651649846blabla"; $doDB=preg_replace("/PM CSGO /","",$sms); Teda, ak sú všetky SMSky presne v tomto tvare. Ak nie, dalo by sa vydolovať pomocou preg_match to STEAM ID z iného kontextu. |
||
Fastman Profil |
#3 · Zasláno: 30. 8. 2013, 19:29:21 · Upravil/a: Fastman
han5vk:
no oni odešlou sms ve tvaru "PM CSGO steamid" což je například "PM CSGO STEAM_1:1:42471801" no a já potřebuji aby to do databáze neodeslalo "PM CSGO" ale jenom "STEAM_1:1:42471801". I tak díky za odpověď. Stejně to nefunguje :( |
||
yFang Profil |
#4 · Zasláno: 30. 8. 2013, 19:55:30
Fastman:
To co psal han5vk funguje, stačí to nahradit v tom dotazu: <?php $sql = "UPDATE `vipcsgo`.`STAMM_DB_1` SET `points` = `points` + 300 WHERE `STAMM_DB_1`.`steamid` = '" . preg_replace("/PM CSGO /","",$_GET[sms]) . "'"; Případně se dá obdobně použít funkce str_replace: <?php str_replace("PM CSGO ", "",$_GET[sms]) |
||
Fastman Profil |
#5 · Zasláno: 30. 8. 2013, 22:00:53
yFang:
Díky moc, vše funguje! Jsi vážně chytrý. :) |
||
Časová prodleva: 11 let
|
0