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.