php

Sekcia o programovaní, programovacích jazykoch...
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

To som skúšal a nešlo to. Ale už som to obišiel.

Tú prvú záhadu som stále nedoriešil.
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: php

Príspevok od používateľa faugusztin »

Typicky sa oddeluju stranky pre vizual a aktivitu, takze napriklad v tomto pripade mas stranku kde mas login formular, nazvime ho login_form.php. Potom mas stranku, kam sa submitne tato stranka, tu nazvime do_login.php. Ta nema ziaden vizual, iba skontroluje heslo a ak je ok, tak nastavi v session ze aky uzivatel je prihlaseny a nasledne pomocou Redirect hlavicky presmeruje pouzivatela na index.php ci inu stranku pre admina/prihlaseneho uzivatela. Ak je heslo zle, presmerujes ho naspat na formular alebo na chybovu stranku...
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Tak som to chcel robiť, ale blbli mi tie inkludy. Teraz som to nejak vyšpekuloval, ale teraz mi jednoducho nejde pridanie do košíka. Pred tým, keď to spracoval hlavný skript, mi to išlo, teraz som to skopíroval do tohoto a nejde to.

Mohol by si sa mi na to pozrieť ? Dám ti sem kód. A viem že som núb, už mi to nemusíš hovoriť :(

časť z cart.event.php :

Kód: Vybrať všetko

	if (isset($_POST['addToCart'])) {
			$cart->addItem($_POST['pid'],1,$_POST['pname'],$_POST['pprice']);
			header('Location: ../index.php?content=cart');
		}
addItem určite prebehne a parametre sú určite správne

časť z cart.class.php :

Kód: Vybrať všetko

	public function addItem($id, $amt, $nm, $prc) {
		if (!isset($_SESSION['cart']))
			$_SESSION['cart'] = array();
		
		if (!$this->inCart($id)) {
			$i = count($_SESSION['cart']);
			$_SESSION['cart'][$i]['ID'] = $id;
			$_SESSION['cart'][$i]['amount'] = $amt;
			$_SESSION['cart'][$i]['name'] = $nm;
			$_SESSION['cart'][$i]['price'] = $prc;
		}
	}
Pri pridaní prebehnú obe časti funkcie. Napriek tomu sa košík tvári ako prázdny.
count($_SESSION['cart']) pri volaní z cart.php (skript, kt vracia HTML kód) vracia 0.
empty($_SESSION['cart']) pri volaní z main.php (tento tiež vracia HTML) vracia true.
Predtým som mal tie isté funkcie a fungovalo to. Asi som sa do toho zaplietol...
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Presne to isté robí aj login, po tom čo som to prerobil. Zdá sa, ako keby funkcia header resetla session. Ináč si to neviem vysvetliť.

Skúšal som viacerými spôsobmi kontrolovať či je nastavená session v indexe (tam kde je session_start), ale vždy mi vráti že session ešte neexistuje.

Mimochodom teraz trocha upratujem v tom kóde a mám jednu otázku :
Kód mám rozdelený na priečinky : triedy, skripty čo spracovávajú časti stránky a udalosti (ostatné sú teraz nepodstatné).
V indexe si dávam require na triedy, potom vytvorím objekty všetkých tried a potom dávam include na časti stránky. V týchto includnutých častiach sa dostanem k objektom, ale ak dám napr spracovať formulár niektorým skriptom, ktorý nebol inkludnutý v indexe, tak ten nevie pristupovať k objektu. Neovplivní to nejak funkčnosť, že v týchto skriptoch nanovo vytváram objekty niektorých tried ?

Prípadne mi poraďte niekto nejaké fórum kde je viac ľudí čo sa venuje phpčku.
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Nikto nevie ?

Aspoň nejaký tip na fórum (okrem pcforum.sk, kde sa nedá registrovať) ?
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: php

Príspevok od používateľa faugusztin »

Ja ti forum neporadim, iba to ze skusaj, upravuj, browsuj po nete a studuj anglictinu... Musis sa naucit riesit problemy sam, resp. pomocou vyhladavaca - to je totiz pre programatora nutne. Nic sa nenaucis, ak tu kazdu blbost budeme riesit za teba.
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Našiel som asi triliárd krát spomenutý tento problém, ale žiadne funkčné riešenie.

Napríklad toto - hádaj čo mi vracia funkcia session_id()...presne tak... bačov %@&.

Tak sa asi vrátim k starému sedláckemu riešeniu čo som mal pred tým :(

btw už ani neviem kedy som naposledy mal problém niečo vyjadriť v angličtine, alebo stretol nejaké neznáme anglické slovíčko.
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: php

Príspevok od používateľa faugusztin »

Nuz, session sa iba tak nestraca.
1) ako mas nastavene v php.ini session.auto_start ? Startuje ti session automaticky ? Ak nie, startujes ju na kazdej stranke raz manualne pomocou session_start() ?
2) ako mas nastavene v php.ini session.use_cookies ? Mas povolene pouzivanie cookies ? Ak nie, vid dalsiu polozku
3) ako mas nastavene v php.ini session.use_trans_sid ? Mas povolene automaticke pridavanie skrytych poli a modifikaciu URL, aby zahrnala session id ?

Ak nemas zapnute spravne volby, tak sa necuduj ze sa ti session ID nepreposiela, resp. nefunguje session.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: php

Príspevok od používateľa pEpinko »

Don Ferignon napísal:Napríklad toto - hádaj čo mi vracia funkcia session_id()...presne tak... bačov %@&.
Je to uz davno co som nieco vascie robil v php a triedy som nepouzival nikdy. Ale riesenie na tom linku je ked sa pouziva predavanie id session pomocou GET a vacsina ludi teraz pouziva cookies na ulozenie session_id. Cize neviem ako to mas ty, ale urcite nemiesaj oba sposoby. Ked mas pomocou cookies, tak skontroluj v browseri ci ti ta tvoja stranka nastavi nejake session_id (sid).
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: php

Príspevok od používateľa faugusztin »

A este som zabudol na jednu vec - dufam ze v nazve domeny nepouzivas znak _. Ak ano, tak si to hned vyhod z hlavy, IE u stranok s domenou obsahujuci znak podtrhnutie cookies jednoducho neposiela, znak _ totiz nie je povolenym znakom pre nazov domeny.
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

No najprv som si myslel, že to nefunguje, ale po reštarovaní apachu som neveril vlastným očiam. Ono to ide :-)

Toto by som sám asi ťažko vyriešil. Dúfam že mi pomôžeš aj nabudúce. Snažím sa každý problém vygúgliť, ale toto som proste nenašiel.
Ďakujem ti miliókrát za radu a aj pepinkovi že sa zapojil.
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Trochu od témy - týka sa to javascriptu.

Ako to, že k obrázku sa viem dostať spôsobom document.idobrazku a k divu sa viem dostať iba pomocou document.GetElementById("iddivu") ? Obe majú nastavené iba ID (žiadny name).
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: php

Príspevok od používateľa faugusztin »

Pretoze Internet Explorer... Pouzivaj vzdy iba getElementById, ostatne varianty mozu, ale nemusia byt kompatibilne s inymi prehladacmi.
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

// díky

Už som vyriešil tento problém. - ten margin mi to tam dodrbkal
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>
Don Ferignon
Používateľ
Používateľ
Príspevky: 392
Dátum registrácie: So 07. Jún, 2008, 10:49
Bydlisko: Štúrovo

Re: php

Príspevok od používateľa Don Ferignon »

Mám tu jeden menší problém s javascriptom. Chcem kliknutím na odkaz zobraziť/skryť komentáre k produktu. Napísal som si jednoduchú funkciu :

Kód: Vybrať všetko

function hideComments() {
	if (document.getElementById('comments').style.display == 'none') {
		document.getElementById('comments').style.display = 'block';
		document.getElementById('commentHider').innerHTML = '(skryť)';
	}
	else {
		document.getElementById('comments').style.display = 'none';
		document.getElementById('commentHider').innerHTML = '(ukázať)';
	}
}
Problém je v tom, že prvýkrát musím kliknúť 2 na odkaz, aby sa mi zobrazili. Potom to už ide normálne.
Defaultne tam je nastavené display:none, to som už preveril.

Nevie niekto čím to môže byť ?
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB

<?php $_GET['rich'] or die('trying'); ?>

Návrat na "Programovanie"