Skocz do zawartości
Zaloguj się, aby obserwować  
SaVaGe123

Doładowanie

Polecane posty

Witam,

Napisałem skrypt doładowania pkt za kod. Wszystko działa ok oprócz komunikatu. Gdy usunę linijkę z dodaniem kodu jako zużytego, działa jak powinno. A jak jest to wywala zły komunikat a mimo to dodaje pkt. Oto kod:

<?php
if(isset($_POST['submit'])) {
$ext1 = mysql_query("SELECT * FROM `coupons` WHERE `code`='".$_POST['code']."' AND `used`='0'");
$ext = mysql_fetch_object($ext1);
if($ext->id != ""){
mysql_query("UPDATE `fusiond5dvP_users` SET `portfel`=`portfel`+'$ext->coins' WHERE `user_id`='".$userdata['user_id']."'");
mysql_query("UPDATE `coupons` SET `used`='1' WHERE `code`='".$_POST['code']."'");   // jak to wywale chodzi ok 
$wiadomosc = "<div>Pomyślnie dodano <b>{$ext->coins}</b> punktów!</div>";
}
else{
$wiadomosc = "<div>Wpisałeś zły kod, lub został on już zużyty!</div>";
}}
?></br></br>
<?php echo $wiadomosc; ?>
<form method="post">
<table class="form">
<tr>
 <td width="150px"><b>Wpisz kod:</b></td>
 <td>
  <input type="text" name="code" /><br />  
 </td>
</tr>
<tr>
 <td></td>
 <td><input type="submit" name="submit" value="Wyślij" /></td>
</tr>
</table></br>
<div>
<div>Jeśli posiadasz kod, wpisz go w pole powyżej i potwierdź, a otrzymasz punkty.</div>
<a href="sms.php"><div><b>Nie posiadasz kodu ? Możesz kupić go tutaj!</b></div></a>
</div>
</form>

 

Możliwe że to banalny błąd, ale nie mogę go sam znaleźć. Próbowałem już wszystkiego.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość

Ładny sql injection może pójść na ten skrypt biggrin.png Przefiltruj najpierw $_POST['code']

Jakiś błąd się wyświetla? oprócz tego że nie działa komunikat

Edytowano przez Gość (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Funkcja mysql_fetch_object zwraca

Returns an object with string properties that correspond to the fetched row, or FALSE if there are no more rows.

więc powinno wystarczyć

if($ext) {

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, lecz nie to jest problemem. Skrypt nadal zwraca błędny wynik a nawet jak umieszczę $ext->coins w drugim komunikacie dane wyparowywują i nie wyświetla się jego zawartość.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm.. A potrzebne Ci jest trzymanie zużytych kodów w bazie?

Może poprostu:

<?php
if(isset($_POST['submit'])) {
$ext1 = mysql_query("SELECT * FROM `coupons` WHERE `code`='".$_POST['code']."'");
$ext = mysql_fetch_object($ext1);
if($ext->id != ""){
$code = $_POST['code'];
mysql_query("UPDATE `fusiond5dvP_users` SET `portfel`=`portfel`+'$ext->coins' WHERE `user_id`='".$userdata['user_id']."'");
mysql_query("DELETE from `coupons` WHERE `code`='". $code ."'");  
$wiadomosc = "<div>Pomyślnie dodano <b>{$ext->coins}</b> punktów!</div>";

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×