Autor Zpráva
eVoltEr
Profil
Zdravim,
mam problem s jednim scriptem na zakazku. Jde o to, ze kdyz se uzivatel prihlasi, tak muze vstoupit do sekce, ve ktere se mu automaticky po vstupu odecte z jeho uctu urcity pocet kreditu. Buhuzel se mi nepodarilo script rozchodit a po kliknuti na vstup do placene sekce se nic neodecte, a tvari se to, ze nejsem prihlaseny, takze nejspis bude problem v overeni session ale do PHP moc nevidim.
Oba potrebne scripty jsem nahral na FTP v txt:

http://www.mobilschemata.cz/prihlaseni.txt
http://www.mobilschemata.cz/sekce-smazat.txt

Tak prosim zkusenejsi, at prohlidnou oba scripty jestli tam neni nejaka zasadni chyba :)
Diky
bohyn
Profil
sekce-smazat - mas tam nekde session_start()? Na vetsine hostingu je treba to volat na zacatku kazdeho scriptu, ktery s nima pracuje.

Ten kod je fakt hroznej, trocha odsazovani by to udelal aspon trochu citelne. A jeste par rad:
- Druhy select v prihlasovani je zbytecny, to co potrebujes ti vybere ten prvni.
- Kdyz vybiras jeden radek tak se nepouziva while ale mysql_fetch_assoc() pro asociovany (to co pouzivas) pole a mysql_fetch_row() pro indexovany pole (pole s cislama sloupcu).
- Poslal si i heslo do databaze -> zmen si ho
- strip tags u hesla a uzivatelskeho jmena jsou na povazenou
eVoltEr
Profil
sekce-smazat - mas tam nekde session_start()? Na vetsine hostingu je treba to volat na zacatku kazdeho scriptu, ktery s nima pracuje.
Ten kod je fakt hroznej, trocha odsazovani by to udelal aspon trochu citelne. A jeste par rad:
- Druhy select v prihlasovani je zbytecny, to co potrebujes ti vybere ten prvni.
- Kdyz vybiras jeden radek tak se nepouziva while ale mysql_fetch_assoc() pro asociovany (to co pouzivas) pole a mysql_fetch_row() pro indexovany pole (pole s cislama sloupcu).
- Poslal si i heslo do databaze -> zmen si ho
- strip tags u hesla a uzivatelskeho jmena jsou na povazenou

Jak jsem psal, kod neni moje prace. Problem uz je vyreseny, chyba byla v tom session_start() jak pises. Heslo zmeneny, bylo to narychlo tak jsem si toho nevsimnul.

Takze Diky
eVoltEr
Profil
Jeste to nefunguje kompletne :( . Sice se to prihlasi, ale neodecte to zadne kredity. Namisto toho to vypise, ze KREDIT JE OK, Resource id #5 a ze jsem prihlaseny. Proc to neodecita kredity?
Jeste dodam, ze v DB je tabulka "login" se sloupci "id,login,pass a kredit"
bohyn
Profil
Zkus tohle:
<?php
$odecitar = $_SESSION['login'];
if($_SESSION['login']) {
  echo "KREDIT JE OK";
  include "db.php";
  // jestli nekde jinde nepouzivas data z tohodle dotazu tak je zbytecny
  // jestli to nebude slapat tak to zase odkomentuj
  // $sqla = mysql_query("SELECT * FROM `login` where `login`='$odecitar'") or die(mysql_error());
  
  // $ukaz=mysql_fetch_array($sqla);
  // $body= $ukaz['kredit'];
  // $body= $body-100; // TADY SI NASTAVIS KOLIK KREDITU SE MA ODECIST 
  $sql = mysql_query("UPDATE `login` SET kredit = kredit - 100 WHERE `login` = '$odecitar'") or die(mysql_error());
  // Tohle pak muzes smazat, ukaze jestli byla nejaka radka zmenena
  echo mysql_affected_rows($sql);
}
else echo "NEJSI PRIHLASEN, PROTOZE MAS MALO KREDITU A NEBO SES JESTE VUBEC NEPRIHLASIL";
echo "v session: $odecitar";
?>

Myslim ze pulka kodu je tam balast, takze jestli to bude fungovat bez toho tak ho muzes smazat, jinak tohle zase odkomentuj:
// $sqla = mysql_query("SELECT * FROM `login` where `login`='$odecitar'") or die(mysql_error());
  // $ukaz=mysql_fetch_array($sqla);
eVoltEr
Profil
Diky vsem za rady, chyba byla nakonec ve scriptu prihlaseni.php, na radku: $login= 'Jste přihlášen(a) jako: '.$_SESSION['login']; - s touhle promennou se pak dal pracuje a je jasny, ze uzivatel s nickem "Jste přihlášen(a) jako NEKDO" neexistuje :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: