Cytat(mortus @ 27.02.2011, 20:01:56 )

W kodzie z pliku doladuj.php masz błąd w 3 linijce. Powinno być $_SESSION['id'], a jest $_SESSION[id]. Popraw to i powinno działać tak, jak mówił kolega Blame.
Nie prawda. W tablicach asocjacyjnych stosuje się apostrof do oznaczania indexów stringowych tylko jeśli cała zmienna nie jest w cudzysłowie.
Czyli:
echo 'To jest zamienna '.$zmienna['raz'].' lalala';
echo "To jest zmienna $zmienna[raz] lalala";
echo "To jest zmienne ".$zmienna['raz']." lalala";
Wszystkie 3 zapisy są poprawne.
Cytat(Blame @ 27.02.2011, 20:02:03 )

Zamieniłeś java script:history.go(-1); na window.location ="index.php"; i nie działa? Daj przykład na żywo, będzie prościej pomóc.
Pewnie, że nie działa bo sesja $_SESSION['kasa'] jest (za pewne) tworzona przy logowaniu i pozostaje niezmienna. Dlatego autor pisze, że tylko po logowaniu się zmienia.
Ja zrobiłbym to tak:
if(isset($_SESSION['logged'])) {
$plus=1; //lub inna dowolna liczba
mysql_query("UPDATE users SET kasa=kasa+$plus WHERE id = $_SESSION[id]"); echo 'Doładowano pomyslnie! :)<br />'; echo 'Powrót: <a href="#" onClick="java script:history.go(-1);">powrót</a>'; // jeśli nie jest zalogowany
$_SESSION['kasa']=$_SESSION['kasa']+$plus;
}
else
{
echo '<a href="login.php">Zaloguj się</a> lub <a href="register.php">zarejestruj nowe konto</a>'; }
Jednak jeszcze radziłbym trochę inaczej podejść do logowania. Domyślam się że przy logowaniu tworzysz kilka różnych sesji i do nich zapisujesz wartości z bazy, natomiast przy sprawdzaniu czy user jest zalogowany sprawdzasz czy istnieje $_SESSION['logged']. Radziłbym zapisywać dane, czyli cały wiersz z bazy danego usera w poniższy sposób:
//logowanie
if(!isset($_SESSION['logged']) && isset($_POST['login']) && $_POST['login']!='' && isset($_POST['przycisk_submit_z_formularza_logowania']) && isset($_POST['password']) && $_POST['password']!=''){ $sql=mysql_query("SELECT * FROM users WHERE login='$_POST[login]'"); $num=mysql_num_row($sql);
if($num>0){
}else{ echo 'nie ma takiego usera lub zle haslo';} }
if(isset(isset($_POST['przycisk_submit_z_formularza_logowania']) && (empty($_POST['login']) || empty($_POST['password']) )){ echo 'Wypelnij pola login i haslo!'; }
Od teraz zamiast $_SESSION['id'] uzywasz $_SESSION['logged']['id'], zamiast $_SESSION['kasa'] uzywasz $_SESSION['logged']['kasa'] itd. Ułatwi Ci to nieco życie bo posługujesz się jedną sesją, która jest tablicą. Sprawdzając czy user jest zalogowany robisz po prostu if(isset($_SESSION['logged'])){
I w celach informacyjnych sprawdź sobie co zawiera sesja po zalogowaniu:
Wstaw to sobie w dowolnym miejscy w kodzie ale oczywiscie po
session_start