Autor | Zpráva | ||
---|---|---|---|
protom1 Profil |
#1 · Zasláno: 27. 8. 2014, 17:59:29
Cau lidi,
Mam tady script, ktery me pripojuje na mobilniplatby, když nedám foreach a zadny funkce, tak mi to napíše to co potřebuju v emulátoru, ale když tam dám funkce a foreach, který potřebuju, tak mi to hodí error, že to nepobralo tu hlavicku ... prosím poradte mi ... nevím si s tím rady a dělám tu už asi 1 den. <?php require_once dirname(__FILE__)."/config.php"; require_once dirname(__FILE__)."/admin_core.php"; // UKÁZKOVÉ GET HODNOTY Z SMS: //{"timestamp":"2014-08-18T18:45:00","phone":"5ksq0upt","sms":"PLATBA SMSPLATBATEST test","shortcode":"9033399","country":"CZ","operator":"VODAFONE","att":"1 ","id":"1408380300703"} //$cenaSms = str_replace("90333", "", $_GET["shortcode"]); $vyhra = str_replace("PM VZH ", "", $_GET["text"]); $resp = getResponse($vyhra); foreach ($resp as $key => $value) { $nazev = $value['nazev']; $vyh_poz = $value['vyhra_poz']; $pozice = $value['pozice']; } if($pozice == $vyh_poz) { Header("HTTP/1.1 200 OK"); echo "Gratuluji, vyhrál jste " . $nazev .". Nyní nás prosím kontaktujte skrze kontaktní formulář. Děkuji."; header('Content-Type: text/plain; charset=UTF-8'); //deletePozici($vyhra); } else { Header("HTTP/1.1 200 OK"); echo "Je nám líto ale nevyhrál jste. Vaše pořadí sms je: " . $pozice . "."; //changePozici($vyhra); header('Content-Type: text/plain; charset=UTF-8'); } ?> Díky moc Protom1 |
||
Jozin Profil |
#2 · Zasláno: 27. 8. 2014, 18:21:41
Zdravím,
chyba asi bude v getResponse , protože pokud vrátí prázdný výsledek, tak foreach bude přeskočen, následná podmínka musí vyhodit chybu, jelikož proměnná $pozice neexistuje. Error, že to nepobralo hlavičku moc nechápu, možná by se ten error hodilo tady napsat,
Jozin. |
||
protom1 Profil |
#3 · Zasláno: 27. 8. 2014, 18:28:22 · Upravil/a: protom1
Váš skript vrací nesprávný HTTP Status kód. Je vyžadován status code 200 nebo 204.
Ale kdyby přece nefungovala proměná, tak to hodí else, tím pádem by to mělo jít .. a divné taky je, že když udělám tohle, tak to funguje, prostě to musí být tím, že tam nesmějí být funkce, protože i když to funguje a já pustím to changePozici();, tak to přestane jít .. <?php require_once dirname(__FILE__)."/config.php"; require_once dirname(__FILE__)."/admin_core.php"; // UKÁZKOVÉ GET HODNOTY Z SMS: //{"timestamp":"2014-08-18T18:45:00","phone":"5ksq0upt","sms":"PLATBA SMSPLATBATEST test","shortcode":"9033399","country":"CZ","operator":"VODAFONE","att":"1 ","id":"1408380300703"} //$cenaSms = str_replace("90333", "", $_GET["shortcode"]); $vyhra = str_replace("PM VZH ", "", $_GET["text"]); /*$resp = getResponse($vyhra); foreach ($resp as $key => $value) { $nazev = $value['nazev']; $vyh_poz = $value['vyhra_poz']; $pozice = $value['pozice']; } */ $a = true; if($a) { Header("HTTP/1.1 200 OK"); echo "Gratuluji, vyhrál jste " . $nazev .". Nyní nás prosím kontaktujte skrze kontaktní formulář. Děkuji."; header('Content-Type: text/plain; charset=UTF-8'); //deletePozici($vyhra); } else { Header("HTTP/1.1 200 OK"); echo "Je nám líto ale nevyhrál jste. Vaše pořadí sms je: " . $pozice . "."; //changePozici($vyhra); header('Content-Type: text/plain; charset=UTF-8'); } ?> |
||
Kubo2 Profil |
#4 · Zasláno: 27. 8. 2014, 18:38:23
protom1:
Skús zistiť, aký HTTP status ti tvoj skript vracia. Mimochodom, dáta, ktoré obdržíš v $_GET['text'] , sú vo formáte JSON, takže by sa ti mohly hodiť PHP funkcie ako json_decode().
|
||
protom1 Profil |
#5 · Zasláno: 27. 8. 2014, 18:50:02
Vraci to http: 500 ... error ..
|
||
Kubo2 Profil |
#6 · Zasláno: 27. 8. 2014, 23:46:05
protom1:
Máš definované funkcie changePozici() a deletePozici()? V skripte je niekde fatálna alebo syntaktická chyba, ktorá pri vypnutí vypisovania chybových hlášok PHP spôsobí odosielanie HTTP 500. Poznámka, odosielanie hlavičiek po výstupe nemá žiadny efekt a generuje E_WARNING. |
||
Jozin Profil |
protom1:
Nedefinovaná proměnná, navíc pokud je nastaveno, že errory nejdou vidět a zapříčíní rovnou error 500, vyvolá notice (o čemž jsem v první reakci mluvil), která v dané situaci může error 500 vyvolat. Zkus danou proměnnou inicializovat před foreach, pokud error 500 nezmizí, tak jsem se spletl: tak jako tak se jedná o chybu, doporučuji tento článek od Jakuba Vrány. EDIT: tak dvě proměnné: $pozice a $vyh_poz , v druhé ukázce proměnnou $a inicializuješ, proč né ve výsledném kódu? Pokud jsem se mílil a i po opravě to nejede, chtělo by to i obsah volaných funkcí.
|
||
protom1 Profil |
#8 · Zasláno: 28. 8. 2014, 17:59:03 · Upravil/a: protom1
tady jsou funkce
<?php function getWinners() { $query = "SELECT * FROM vyherci ORDER BY id DESC"; $result = mysql_query($query); $arr = array(); while($item = mysql_fetch_array($result)) { $arr[count($arr)] = $item; } return $arr; } function getResponse($vyhra) { $query = "SELECT * FROM vyhry WHERE id = " . $vyhra . ""; $result = mysql_query($query); $arr = array(); while($item = mysql_fetch_array($result)) { $arr[count($arr)] = $item; } return $arr; } function changePozici($vyhra) { $query = "SELECT * FROM vyhry WHERE id = " . $vyhra . ""; $result = mysql_query($query); $pozice = mysql_fetch_array($result)['pozice'] + 1; $query = "UPDATE vyhry SET pozice = " . $pozice . ""; $result = mysql_query($query); } function deletePozici($vyhra) { $query = "UPDATE vyhry SET pozice = 0 WHERE id = " . $vyhra . ""; $result = mysql_query($query); } ?> Aj boze, já sem takový kokot, ted jsem na to prisel, daval sem do db Id cislo jako retezec v uvozovkach NO DO PICE !! :)) Sry kluci a díky |
||
Marschmallow Profil |
protom1:
„Aj boze, já sem takový kokot, ted jsem na to prisel, daval sem do db Id cislo jako retezec v uvozovkach NO DO PICE !! :))“ Nechete dát do zakázaných slov i tato - akorát bez diakritiky? Moderátora nevolám schválně. |
||
Kubo2 Profil |
Marschmallow:
> „Aj boze, já sem takový kokot, ted jsem na to prisel“ > Nechete dát do zakázaných slov i tato - akorát bez diakritiky? Len tak pre zaujímavosť, ako by si chcel napísať kokot s diakritikou? :-) |
||
Marschmallow Profil |
#11 · Zasláno: 28. 8. 2014, 22:21:08
Kubo2:
ako by si chcel napísať kokot s diakritikou? :-) To neřeš :D |
||
_es Profil |
Kubo2:
„ako by si chcel napísať kokot s diakritikou? :-)“ „Varianta s diakritikou“ je zakázaná: Odkaz. Marschmallow: „Nechete dát do zakázaných slov i tato - akorát bez diakritiky?“ To by nešlo odkázať na zaujímavé miesta (http://cs.wikipedia.org/wiki/Kokotsko) či zaujímavé osobnosti (http://cs.wikipedia.org/wiki/Kokot_%28p%C5%99%C3%ADjmen%C3%AD%29). A druhé slovo je vzhľadom na zameranie fóra asi ťažko zakázateľné: Délkové jednotky v CSS » Absolutní jednotky. |
||
Joker Profil |
#13 · Zasláno: 28. 8. 2014, 22:57:00
Kubo2:
Ale píce jde napsat s diakritikou :-) Marschmallow: „Nechete dát do zakázaných slov i tato - akorát bez diakritiky?“ Za mě ani ne. Byla tu i diskuse o zrušení těch stávajících. Já momentálně zastávám status quo; Je nesmysl se snažit filtrovat všechna možná sprostá slova, ale filtr se stejně používá primárně kvůli spammerům a u vložených slov jsou snad vychytané jejich výskyty uvnitř jiných slov (třeba špičatý). |
||
Časová prodleva: 9 let
|
0