Tehnologii Web de Ultima Generatie
script procesare plata prin sms – Procesare coduri SMS-uri
Dupa ce primim fisierele cu codurile valide trebuie sa facem cumva sa le procesam.
De obicei se trimit in format .csv (adica un .txt cu newline intre randuri).
Tutorial:
I.
Primul pas este sa uploadam undeva fisierul si sa il citim linie cu linie.
<?php
$handle = @fopen(“8548.csv”, “r”);
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo trim($buffer);
}
fclose($handle);
}
?>
Apoi le punem intr-o baza de date pentru a le manipula mai usor. Folosim functia trim pentru a inlatura newline-ul de la sfarsitul unui cod.
<?php
$link = mysql_connect(“ip_ul serverului db”,”useru”,”parola”);
mysql_select_db(“coduri_sms”); //sau cum se cheama baza de date cu sms-uri
$handle = @fopen(“8548.csv”, “r”);
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$cod = trim($buffer);
mysql_query(“INSERT INTO 8548(cod) VALUES(‘$cod’)”);
}
fclose($handle);
}
mysql_close($link);
?>
Unde 8548 este un tabel care are doar o singura coloana – primary key numita cod. (il deschidem si stergem prima linie care e goala).
Se repeta procedeul pentru fiecare nr. de telefon (adica fiecare fisier csv) primit si se fac tabele cu ele.
Bun. Primul pas l-am rezolvat si avem codurile in tabele.
II. Procesarea efectiva a codului.
1. luam username-ul/emailul si alte informatii care ne-ar putea fi de folos.
2. verificam daca e valid codul intr-un tabel, daca da atunci procesam, daca NU atunci verificam in alt tabel iar in caz ca nu e valid il redirectionam catre o pagina de eroare unde ii logam ip-ul, data etc.
3. afisam cate credite are pe username-ul respectiv.
codul de mai jos nu este 100% complet, dar va indruma catre directia cea buna.
<?php
include “functions.php”;
$ip = get_real_ip(); //o functie buna de luat ip-ul adevarat
verificare_ip_banat($ip); //daca greseste codul de mai multe ori ii banati ip-ul
//valabil pentru joomla!. dar aici apare pagina dupa ce userul se logheaza.
$user =& JFactory::getUser();
$username = $user->username;
$email = $user->email;
//nu mai este necesar sa scrieti mysql_connect daca folositi joomla ptr. ca e deja conectat la mysql
if(!mysql_select_db(“coduri_sms”)) die(“Error”);
if(!empty($_POST['cod']))
{
$cod = htmlspecialchars($_POST['cod']);
$query =mysql_query(“SELECT COUNT(*) FROM 8685 WHERE cod=’$cod’”);
if(!$query) die(“Eroare! #1 Va rugam contactati un administrator!”);
$valid = mysql_fetch_array($query);
if($valid[0]==1){
//echo “cod valid! – 3 EURO”;
//sterge codul din baza de date
$query=mysql_query(“DELETE FROM 8685 WHERE cod=’$cod’”);
//1. ia cate credite are (daca nu are fa-i cont cu 0.
$query = mysql_query(“SELECT * FROM procesari WHERE username=’$username’”);
$num = mysql_num_rows($query);
if($num==0){
//fa-i cont;
$query=mysql_query(“INSERT INTO procesari(username,credite) VALUES(‘$username’,'27′)”);
}else{
$row=mysql_fetch_assoc($query);
$credite=$row['credite'];
$credite=$credite+27;
$query=mysql_query(“UPDATE procesari SET credite=’$credite’ WHERE username=’$username’”);
echo “<strong>Multumim pentru incarcare.</strong>”;
}
}else{
$query =mysql_query(“SELECT COUNT(*) FROM 7685 WHERE cod=’$cod’”);
if(!$query) die(“Eroare!”);
$valid = mysql_fetch_array($query);
if($valid[0]==1){
//echo “cod valid! – 10 EURO”;
//sterge codul din baza de date
$query=mysql_query(“DELETE FROM 7685 WHERE cod=’$cod’”);
//1. ia cate credite are (daca nu are fa-i cont cu 0).
$query = mysql_query(“SELECT * FROM procesari WHERE username=’$username’”);
$num = mysql_num_rows($query);
if($num==0){
//fa-i cont;
$query=mysql_query(“INSERT INTO procesari(username,credite) VALUES(‘$username’,'30′)”);
}else{
$row=mysql_fetch_assoc($query);
$credite=$row['credite'];
$credite=$credite+30;
$query=mysql_query(“UPDATE procesari SET credite=’$credite’ WHERE username=’$username’”);
echo “<strong>Multumim pentru incarcare.</strong>”;
}
}
else {
//cod invalid
echo ”
<script type=’text/javascript’>
<!–
window.location = ‘http://godlike.ro/eroare.php’
//–>
</script>
“;
}
}
}
?>
<h3> Bine ai venit <?php echo $username; ?> </h3>
<?php
$res = mysql_query(“SELECT * FROM procesari WHERE username=’$username’”);
if(mysql_num_rows($res) == 0) echo “In contul tau se afla: <span style=’color:#FF000;font-weight:bold;’>0 credite</span>”;else {
$row=mysql_fetch_assoc($res);
echo “In contul tau se afla: <span style=’color:#FF0000;font-weight:bold;’>”.$row['credite'].” de credite</span>”;
}
?>
<p>Incarcare credite</p>
<div style=”background-color:#A9D0F5; font-weight:bold; padding: 10px”>
<p>I. Comanda Credite</p>
<form method=”post” action=”http://www.godlike.ro/incarca-credite.html”>
<table width=”649″ border=”0″>
<tr>
<td width=”141″>Cod:</td>
<td width=”349″><input name=”cod” type=”text” maxlength=”30″ />
Codul care va vine prin SMS!</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label>
<input type=”submit” name=”comanda” id=”comanda” value=”Incarca Credite” />
</label></td>
</tr>
</table>
</form>
</div>
<p>
Spor la treaba!
| Print article | This entry was posted by oferta web on 08/06/2010 at 10:17, and is filed under General. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |