PHP Scriptík

Pokec o čemkoliv ostatním
Message
Autor
Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

PHP Scriptík

#1 Příspěvekod KotasMan » 07 kvě 2013, 11:29

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
Spoiler: zobrazit
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.
Obrázek

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Scriptík

#2 Příspěvekod Mysteria » 07 kvě 2013, 13:57

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áš:

Kód: Vybrat vše

if(empty($id)) {
die("Error");
}

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.

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Scriptík

#3 Příspěvekod Mysteria » 07 kvě 2013, 14:52

Třeba takhle:

Kód: Vybrat vše

<?php
// Logování do souboru
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); // Zalogování chyby
        
mysql_select_db($dbname);
        if ((
$e mysql_error()) !== ''writeError($e); // Zalogování chyby
        
$idquery mysql_query("SELECT * FROM `authme` WHERE `id` = '$id'");
        if ((
$e mysql_error()) !== ''writeError($e); // Zalogování chyby
        
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); // Zalogování chyby
            
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); // Zalogování chyby
            
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); // Zalogování chyby
            
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.

Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

Re: PHP Scriptík

#4 Příspěvekod KotasMan » 07 kvě 2013, 15:40

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.
Obrázek

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Scriptík

#5 Příspěvekod Mysteria » 07 kvě 2013, 16:36

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ří. :)

Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

Re: PHP Scriptík

#6 Příspěvekod KotasMan » 07 kvě 2013, 17:16

Nefunguje to, stále manuálne to pridá ale cez testovaciu sms nič ani sa log nevytvorí. (mám nastavené práva)
Obrázek

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Scriptík

#7 Příspěvekod Mysteria » 07 kvě 2013, 18:57

Tak mě napadá, máš správně zadanou adresu toho skriptu v CP?

Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

Re: PHP Scriptík

#8 Příspěvekod KotasMan » 07 kvě 2013, 19:01

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
Obrázek

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: PHP Scriptík

#9 Příspěvekod Mysteria » 07 kvě 2013, 20:02

Přidej do toho mého skriptu nad ten tvůj první řádek $dbhost tohle:

Kód: Vybrat vše

writeError('URL zavolána.'); 
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.

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 36
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: PHP Scriptík

#10 Příspěvekod zdenda204 » 08 kvě 2013, 09:53

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 :D
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦


Zpět na „Off topic“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů