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

Skrypt doładowania pieniędzy

Polecane posty

Skrypt działa następującą:

W bazie jest tabela o nazwie "kody_2zl" oto zawartość:

--
-- Struktura tabeli dla  `kody_2zl`
--
CREATE TABLE IF NOT EXISTS `kody_2zl` (
 `kod` varchar(8) NOT NULL,
 `status` tinyint(4) NOT NULL default '0',
 `data` datetime NOT NULL,
 `gracz` int(11) NOT NULL default '0',
 PRIMARY KEY  (`kod`),
 KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

A to skrypt dzięki któremu wpisany kod dodaje nam pieniądze.

 

<?php
if(!empty($_POST['kod'])){
$_POST['kod'] = mysql_real_escape_string($_POST['kod']);
$msg = "";
mysql_query("update kody_2zl set status = 1, data = now(), gracz = ".$login." where kod = '".$_POST['kod']."' and status = 0");
if(mysql_affected_rows() == 1){
 mysql_query("update users set waluta = waluta + 2 where login = '$login'");
 $row->waluta += 2;
 $msg = "Dodano 2 złote";
} else $msg = "Niepoprawny kod";
echo $msg."<br><br><br>";
}
?>
Posiadasz: <b><?php while ($row = mysql_fetch_object($result)) { echo $row->waluta;}?></b> złote<br><br><br>
Doładuj monety<br><br>
<form action='dot.php?a=vip' method='post'>
Kod: <input type='text' name='kod'> <input type='submit' value='Użyj'>
</form>

Na samym początku dane:

<?php
ob_start();
ob_implicit_flush(0);
session_start();
if(@$_SESSION['zalogowany']==0)
{
header('Location: logowanie.php ');
}
include('db_fns.php');
$pass=$_POST['pass'];
$pass2=$_POST['pass2'];
$sha1pass=sha1($pass);
@$login = $_SESSION['login'];
$log = mysql_query("SELECT * FROM users WHERE login = '$login'") or die (mysql_error());
$logi = mysql_fetch_assoc($log);
$old=$logi['password'];
$oldpas=$_POST['oldpass'];
$oldpass=sha1($oldpas);
$result = mysql_query("SELECT * FROM users WHERE login = '$login'");
?>

A to struktura tabeli "users":

 

--
-- Struktura tabeli dla  `users`
--
CREATE TABLE IF NOT EXISTS `users` (
 `id` int(11) NOT NULL auto_increment,
 `login` varchar(32) character set utf8 collate utf8_polish_ci NOT NULL,
 `password` varchar(40) character set utf8 collate utf8_polish_ci NOT NULL,
 `email` varchar(50) character set utf8 collate utf8_polish_ci NOT NULL,
 `token` text character set utf8 collate utf8_polish_ci NOT NULL,
 `potwierdzenie` tinyint(4) NOT NULL default '0',
 `waluta` int(11) NOT NULL default '0',
 `ftp` text character set utf8 NOT NULL,
 `baza` text character set utf8 collate utf8_polish_ci NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

Skrypt wywala błąd ze niepoprawny kod. Nie mogę sobie z tym poradzić. Uprzedzam pytania ! Nie otwieram firmy hostingowej !

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A spróbuj dać data = 'now()' i dla gracza też w lini

mysql_query("update kody_2zl set status = 1, data = now(), gracz = ".$login." where kod = '".$_POST['kod']."' and status = 0");

i zobaczyć efekt. Jak nie pomoże to rób sobie echo tego zapytani przed wywołaniem i spróbuj wykonać je w phpmyadmin i zobaczyć czy jakiegoś błędu nie wywala.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Gracz musi byc też w apostrofach, bo teraz nie jest w żaden sposób zabezpieczany. Dodatkowo radziłbym $_POST['kod'] potraktować np. mysql_real_escape_string.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Moim błędem było to że gracza dałem w "$login" a powinienem w '$login' żeby kodu nie dzielić. Redgos i Misiek wielkie dzięki. I mam jeszcze jedno pytanko do Miska bo ja tam niby dałem

$_POST['kod'] = mysql_real_escape_string($_POST['kod']);

Można w takiej formie ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

I kolejny problem sad.png

Rozbudowałem skrypt ze po wpisaniu kodu wartego 2 zł dodaje 2 zł a jak kod warty 6 zł to dodaje 6 zł wszystko ładnie pięknie działa tylko mam problem w wywalaniem komunikatu. Jeśli wpisze kod za 2 3 lub 6 zł to wywala mi "Niepoprawny kod" lecz dodaje pieniądze a jesli za 9 zł (ostatni w skrypcie) to wtedy "Dodano 9 złotych". Jak przerobic ten kod aby posprawdzało wszystkie w bazie i jak niebędzie wywaliło jeden komunikat ? Oto kod :

<?php
if(!empty($_POST['kod'])){
$_POST['kod'] = mysql_real_escape_string($_POST['kod']);
$msg = "";
mysql_query("update kody_2zl set status = 1, data = now(), gracz = '.$login.' where kod = '".$_POST['kod']."' and status = 0");
if(mysql_affected_rows() == 1){
 mysql_query("update users set waluta = waluta + 2 where login = '$login'");
 $row->waluta += 2;
 $msg = "<p class='true'>Dodano 2 złote</p>";
}
mysql_query("update kody_3zl set status = 1, data = now(), gracz = '.$login.' where kod = '".$_POST['kod']."' and status = 0");
if(mysql_affected_rows() == 1){
 mysql_query("update users set waluta = waluta + 3 where login = '$login'");
 $row->waluta += 3;
 $msg = "<p class='true'>Dodano 3 złote</p>";
}
 mysql_query("update kody_6zl set status = 1, data = now(), gracz = '.$login.' where kod = '".$_POST['kod']."' and status = 0");
if(mysql_affected_rows() == 1){
 mysql_query("update users set waluta = waluta + 6 where login = '$login'");
 $row->waluta += 6;
 $msg = "<p class='true'>Dodano 6 złotych</p>";
}
 mysql_query("update kody_9zl set status = 1, data = now(), gracz = '.$login.' where kod = '".$_POST['kod']."' and status = 0");
if(mysql_affected_rows() == 1){
 mysql_query("update users set waluta = waluta + 9 where login = '$login'");
 $row->waluta += 9;
 $msg = "<p class='true'>Dodano 9 złotych</p>";
}
else $msg = "<p class='error'>Niepoprawny kod</p>";
echo $msg."<br><br><br>";}
?>

Edytowano przez SaVaGe123 (zobacz historię edycji)

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ć  

×