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!