Stránka 1 z 2
PHP Scriptík
Napsal: 07 kvě 2013, 11:29
od KotasMan
Zdravím , vedel by mi niekto pomôcť kde mám chybu alebo čo robím zle? Keď si chcem vyvolať callback cez testovaciu sms tak sa nič nestane proste sa nič nepripočíta ale keď to urobím manuálne link
www.mojlink.eu/xxx/kredit.php?sms=test&time=test&credit=2&custom_nick=4
Tak všetko funguje bez chyby. Prikladám aj script:
Kód: Vybrat vše
<?php
$dbhost = "xxx";
$dbuser = "xxx";
$dbpassword = "xxx";
$dbname = "xxx";
$credit = $_GET['credit'];
$id = $_GET['custom_nick'];
if(empty($id)) {
die("Error");
} else {
if(empty($credit)){
die("Error");
} else {
mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname);
$idquery = mysql_query("SELECT * FROM `authme` WHERE `id` = '$id'");
if(mysql_num_rows($idquery) != 1) {
die("Tento už. neexistuje");
} else {
$query = mysql_query("SELECT * FROM `authme` WHERE `id` = '$id'");
while($rows = mysql_fetch_array($query)) {
$kred = $rows['kredit'];
$name = $rows['username'];
}
}
switch($credit) {
case 2:
$ukredit = 200 + $kred;
mysql_query("UPDATE `authme` SET `kredit` = '$ukredit' WHERE `id` = '$id' AND `username` = '$name'");
break;
case 50:
$ukredit = 200 + $kred;
mysql_query("UPDATE `authme` SET `kredit` = '$ukredit' WHERE `id` = '$id' AND `username` = '$name'");
break;
}
}
}
?>
PS: Nemusíte mi hovoriť že by to išlo urobiť lepšie. Viem o tom.
Re: PHP Scriptík
Napsal: 07 kvě 2013, 13:57
od Mysteria
Těžko říct, ideálně na zjištění chyby by bylo potřeba, aby ti ten skript logoval co dělá, třeba jednoduše do souboru.
Třeba jak máš:
Tak před die udělat aby to do nějakého txt souboru zapsalo něco jako "Prázdné IDčko." a tohle pro všechny podmínky, kde by to mohlo selhat. Pak si to zavolej manuálně, pokud to půjde, tak pošli testovací SMSku a pak se jenom podíváš do souboru, na kterým kroku to selhalo.
Re: PHP Scriptík
Napsal: 07 kvě 2013, 14:52
od Mysteria
Třeba takhle:
Kód: Vybrat vše
<?php
function writeError($message) {
$date = date('Y_m_d', time());
$time = date('d. m. Y H:i:s: ', time());
if (($file = @fopen('./errors_' . $date . '.log', 'a+')) !== false) {
if (@fwrite($file, $time . $message . PHP_EOL) !== false) {
if (@fclose($file) !== false) {
return true;
} else { return false; }
} else { return false; }
} else { return false; }
}
$dbhost = "93.91.240.151";
$dbuser = "121777_mysql_db";
$dbpassword = "xxx";
$dbname = "121777_mysql_db";
$credit = $_GET['credit'];
$id = $_GET['custom_nick'];
if(empty($id)) {
writeError('Parametr URL neobsahuje IDčko.');
die('Parametr URL neobsahuje IDčko.');
} else {
if (empty($credit)) {
writeError('Parametr URL neobsahuje kredity.');
die('Parametr URL neobsahuje kredity.');
} else {
mysql_connect($dbhost,$dbuser,$dbpassword);
if (($e = mysql_error()) !== '') writeError($e); mysql_select_db($dbname);
if (($e = mysql_error()) !== '') writeError($e); $idquery = mysql_query("SELECT * FROM `authme` WHERE `id` = '$id'");
if (($e = mysql_error()) !== '') writeError($e); if (mysql_num_rows($idquery) != 1) {
writeError('Uživatel s daným IDčkem v databázi neexistuje.');
die("Tento uživatel neexistuje.");
} else {
$query = mysql_query("SELECT * FROM `authme` WHERE `id` = '$id'");
if (($e = mysql_error()) !== '') writeError($e); while($rows = mysql_fetch_array($query)) {
$kred = $rows['kredit'];
$name = $rows['username'];
}
}
switch($credit) {
case 2:
$ukredit = 200 + $kred;
mysql_query("UPDATE `authme` SET `kredit` = '$ukredit' WHERE `id` = '$id' AND `username` = '$name'");
if (($e = mysql_error()) !== '') writeError($e); break;
case 50:
$ukredit = 200 + $kred;
mysql_query("UPDATE `authme` SET `kredit` = '$ukredit' WHERE `id` = '$id' AND `username` = '$name'");
if (($e = mysql_error()) !== '') writeError($e); break;
}
}
}
?>
Výsledkem pak bude ve stejné složce jako skript soubor ve formátu errors_rok_mesic_den.log a v něm něco jako:
Kód: Vybrat vše
07. 05. 2013 12:49:40: Nemohlo být vytvořeno žádné připojení, protože cílový počítač je aktivně odmítl.
07. 05. 2013 12:49:40: Access denied for user ''@'localhost' (using password: NO)
07. 05. 2013 12:49:40: Access denied for user ''@'localhost' (using password: NO)
07. 05. 2013 12:49:40: Uživatel s daným IDčkem v databázi neexistuje.
Re: PHP Scriptík
Napsal: 07 kvě 2013, 15:40
od KotasMan
Počkať. To si mám ten súbor vytvoriť sám a potom to do neho bude logovať alebo sa to vytvorí samé? Lebo nahraj som to na FTP , nastavil tomu oprávnenia ale nič sa nestalo.
Re: PHP Scriptík
Napsal: 07 kvě 2013, 16:36
od Mysteria
Stačí nastavit tomu adresáři, kde je umístěnej ten skript práva na 777 a vytvoří se sám při prvním zápisu.
Samozřejmě pokud žádný z těch chyb nenastane, tak se nevytvoří.

Re: PHP Scriptík
Napsal: 07 kvě 2013, 17:16
od KotasMan
Nefunguje to, stále manuálne to pridá ale cez testovaciu sms nič ani sa log nevytvorí. (mám nastavené práva)
Re: PHP Scriptík
Napsal: 07 kvě 2013, 18:57
od Mysteria
Tak mě napadá, máš správně zadanou adresu toho skriptu v CP?
Re: PHP Scriptík
Napsal: 07 kvě 2013, 19:01
od KotasMan
mám, ešte raz to všetko skontrolujem.
EDIT:
Mám to tam správne tak, buď to ten callback nevyvolá alebo už neviem
Re: PHP Scriptík
Napsal: 07 kvě 2013, 20:02
od Mysteria
Přidej do toho mého skriptu nad ten tvůj první řádek $dbhost tohle:
Za předpokladu, že máš nastaveny atributy adresáře na 777 a nic to nevypíše do souboru (nebo se ani nevytvoří), a máš správně nastavenou adresu, tak bych to tipnul, že ten callback nefunguje.
Re: PHP Scriptík
Napsal: 08 kvě 2013, 09:53
od zdenda204
Jak to tu tak čtu, jste si jistí že ty práva 777 nastavil složce kde ten skript je? Mám pocit že to nastavil skriptu
