Autor | Zpráva | ||
---|---|---|---|
eVoltEr Profil |
#1 · Zasláno: 14. 11. 2008, 19:37:02
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 |
#2 · Zasláno: 14. 11. 2008, 20:30:15 · Upravil/a: bohyn
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 |
#3 · Zasláno: 14. 11. 2008, 20:47:11
„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 |
#4 · Zasláno: 14. 11. 2008, 20:54:19
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 |
#5 · Zasláno: 14. 11. 2008, 21:11:18
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 |
#6 · Zasláno: 14. 11. 2008, 23:03:22
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 :)
|
||
Časová prodleva: 15 let
|
0