SMS feldolgozó HIBA
Sziasztok, egy world of warcraft szerverhez elkezdtem készíteni egy sms feldolgozó scriptett, de sajnos hibába ütköztem, nem hajtja végre amit kell neki és egy hiba kodott sem ír!
Valakinek valami ötlet? :/Amit készitettem hozzá SQL:
■ Valakinek valami ötlet? :/
- <?
- if($_SERVER["REMOTE_ADDR"] == '***' or $_SERVER["REMOTE_ADDR"] == '***'){
- //Adatbázis kapcsolat
- $SQL_HOST = '******'; //host
- $SQL_USER = '******'; //username
- $SQL_PASS = '******'; //jelszo
- $sqlServ = mysql_connect($SQL_HOST, $SQL_USER, $SQL_PASS);
- $id = $_GET['id'];
- $prefix = $_GET['prefix'];
- $uzenet = $_GET['uzenet'];
- $telefonszam = $_GET['telefonszam'];
- $kategoria = $_GET['kategoria'];
- $added = date("Y-m-d H:i:s");
- $sms_kod = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz123456789',12)),0,12);
- //Beállítjuk mennyi kredit-et kap a rendelő
- if ($kategoria == 160) {$coins = 305;} //kredit 160 forintért
- if ($kategoria == 252) {$coins = 610;} //kredit 252 forintért
- if ($kategoria == 400) {$coins = 966;} //kredit 400 forintért
- if ($kategoria == 800) {$coins = 2032;} //kredit 800 forintért
- if ($kategoria == 1600) {$coins = 4068;} //kredit 1600 forintért
- if ($kategoria == 4000) {$coins = 8134;} //kredit 4000 forintért
- //Generálunk egy kódot!
- $query_dolgozz = mysql_query("SELECT * FROM auth.sms WHERE sms_kod='{$sms_kod}'");
- if(mysql_num_rows($query_dolgozz)> 0) {
- $sms_kod = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz123456789',12)),0,12);
- }
- //beállítjuk a hibaszámlálót
- $limit = 0;
- //megpróbáljuk beírni az adatbázisba az új kártyaszámot és a jelszót
- while(!$sqlvQry and $limit <= 15){ //15x próbálja meg, ha nem sikerül, lentebb találod mi a teendő
- $sqlvCmd = "INSERT INTO auth.sms (id,sms_kod,coins,limit,telefonszam,uzenet,ar) VALUES ($id,$sms_kod,$coins,$limit,$telefonszam,'$uzenet',$kategoria)";
- $sqlvQry = mysql_query($sqlvCmd,$sqlServ);
- //ha nem sikerül generálunk új kártyát
- if(!$sqlvQry) {
- $sms_kod = substr(str_shuffle(str_repeat('ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz123456789',12)),0,12);
- }
- $limit++;
- }
- //ha sikerült létrehozni a kártyát akkor ez lesz az üzenet
- if($sqlvQry) {
- $text = "$coins Kredit-> Kód: $sms_kod Köszönjük a rendelést!";
- //ha 15-ödszörre sem sikerül létrehozni a kártyát akkor ezt a hibaüzenetet kapja a rendelő
- } else {
- $text = "Hiba történt! Kérlek jelentsd a hibát egy adminnak! admin##kukac##escwow.nolagg.eu " . mysql_error($sqlServ) . "";
- }
- //elküldjük a válasz sms-t
- echo "text=",rawurlencode($text);
- } else {
- //ha nem az sms szerver akarja ezt használni
- if(isset($_SESSION['cw_user']) && $_SESSION['cw_user']>=0)
- {
- if(isset($_POST['submit']) && $_POST['submit']=="Kuldes!") {
- $sqlCmd = "SELECT sms_kod,coins,status FROM auth.sms WHERE sms_kod = '".$_POST['sms_kod']."'";
- $sqlQry = mysql_query($sqlCmd,$sqlServ);
- $num_rows = mysql_num_rows($sqlQry);
- while($getCK=mysql_fetch_object($sqlQry)) {
- $newcoins = $_SESSION['coins']+$getCK->value;
- if ($getCK->status=='folyamatban') {
- $sqlCmdd = "UPDATE auth.account_data SET dp='".$newcoins."' WHERE id = '".account::getAccountID($_SESSION['cw_user'])."' LIMIT 1";
- //echo"$sqlCmdd";
- $sqlQryy = mysql_query($sqlCmdd,$sqlServ);
- if($sqlQryy) {
- $sqlCmddd = "UPDATE auth.sms SET status='felhasznalva', account='".$_SESSION['cw_user']."' WHERE sms_kod = '".$_POST['sms_kod']."' LIMIT 1";
- $sqlQryyy = mysql_query($sqlCmddd,$sqlServ) or die("A MySQL error has occurred.<br />Your Query: " . $sqlCmd . "<br /> Error: (" . mysql_errno() . ") " . mysql_error());
- echo"Sikeresen feltöltöttél $getCK->value Kreditet! <br/> <a href=index.php> Vissza<a/> ";
- }
- } else {
- echo'Ezt a kódot már felhasználtad.<br/> <a href=index.php> Próbáld újra!<a/>';
- }
- }
- if ($num_rows == 0) {
- echo'Hibás Kód vagy Jelszó.<br/> <a href=index.php> Próbáld újra!<a/>';
- }
- } else {
- ?>
- Add meg a kodot:<br/>
- <form action="/?p=feldolgozas" method="POST">
- <table>
- <tr>
- <th class="topLine">sms kod:</th>
- <td class="tdunkel"><input type="text" name="sms_kod" maxlength="16" size="16"/> </td>
- </tr>
- <tr>
- <th class="topLine" style="text-align:center;" colspan="2"><input type="submit" name="submit" value="Kuldes!"/> • <input type="reset" value="torles"/></th>
- </tr>
- </table>
- </form>
- <?PHP
- }
- } else {
- echo'Jelentkezz be vagy Regisztrálj.';
- }
- }
- ?>
- CREATE TABLE IF NOT EXISTS `sms` (
- `id` int(50) NOT NULL AUTO_INCREMENT,
- `sms_kod` varchar(12) NOT NULL,
- `coins` int(99) NOT NULL,
- `ar` int(5) NOT NULL,
- `status` varchar(99) NOT NULL DEFAULT 'folyamatban',
- `account` text,
- `errors` int(5) NOT NULL,
- `telefonszam` int(12) NOT NULL,
- `uzenet` text CHARACTER SET utf8 COLLATE utf8_hungarian_ci,
- PRIMARY KEY (`id`),
- UNIQUE KEY `asd1` (`sms_kod`) USING BTREE
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT AUTO_INCREMENT=2 ;
Mi a hiba?
Az az egész lényege hogy küld
Honnan tudod, hogy nem az sms
Írtam sql-be mint ha az sms
Csak néhány tipp ha nem
Hogyan próbáltad meg kideríteni, hogy hol akad el a feldolgozás?
A generált kód bekerül az adatbázisba?
Az SMS kimegy? A gateway él?
A tárolásnál van a gond vagy amikor a felhasználó érvényesíteni akarja azt?
Ha ezekre válaszolsz magadnak szerintem megleled a problémát.
Számomra túl sok az ismeretlen tényező, hogy kitaláljam ezeket.