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 »

Správa sa to ako keby to ignorovalo nastavenie "display" v CSSku a najprv sa to prestavilo na none.
Vyebal som s tým, obrátil som podmienku a už to ide ako má. Super :good:
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 »

Je nejaký pekný spôsob ako validovať vstup s diakritikou pomocou "preg" ?
Má niekto nejaké výhrady k týmto regexom ?

Kód: Vybrať všetko

	const RX_LOGIN = '/^[a-zA-Z0-9_\-\.\*\#áéíýúäôľščťžňďěřůÁÉÍÝÚĽŠČŤŽŇĎĚŘŮ]{3,30}$/';
	const RX_PW = '/^[a-zA-Z0-9_\-\.\*\#áéíýúäôľščťžňďěřůÁÉÍÝÚĽŠČŤŽŇĎĚŘŮ]{3,30}$/';
	const RX_EMAIL = '/^[_a-z0-9\-]+(\.[_a-z0-9\-]+)*@[a-z0-9-]{3,}(\.[a-z]{2,4})$/';
	const RX_NAME = '/^[a-zA-ZáéíýúäôľščťžňďěřůÁÉÍÝÚĽŠČŤŽŇĎĚŘŮ]{3,20}$/';
	const RX_ADRESS = '/^[a-zA-Z \.\-\s]{3,}\s[0-9/]{1,}$/';
	const RX_CITY = '/^[a-zA-Z\-\sáéíýúäôľščťžňďěřůÁÉÍÝÚĽŠČŤŽŇĎĚŘŮ]{3,}$/';
	const RX_POSTN = '/^[0-9]{5}$/';
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 »

Nepomôže niekto ? Sú tie výrazy bezpečné, alebo nie ?
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 »

Po presťahovaní aplikácie na nový server mi prestal fungovať košík.

Toto je kód na pridávanie tovaru do košíka, ktorý šlape na localhoste aj na servri kde bol doteraz.

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;
		}
	}
Teraz, keď pridám prvý produkt, nevyhodí žiadny error, iba mi nič nezobrazí pri vypisovaní košíka.
Pri pridaní druhého produktu mi už vyhodí Fatal error: Cannot use object of type Cart as array ...

Nevie niekto čo za tým 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'); ?>
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 »

Keď opravím $_SESSION['cart'][$i]->ID na $_SESSION['cart']->$i->ID tak mi to nehodí error, ale stále mi nič neukáže pri vypisovaní.

Prečo sa zmení pole na objekt. Mohol by mi to niekto, prosím vysvetliť ?
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 »

Fakt mi už na tomto fóre nikto nevie pomôcť ? :rolleyes:
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 »

1. Toto forum fakt nie je idealne na programatorske otazky, ja osobne mam napriklad s PHP uz celkom problemy, naposledy som v nom pisal nieco 2-3 roky dozadu :).
2. Poznas funkciu var_dump ? Ak nie, tak ju zacni pouzivat.
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 »

Samozrejme že ju poznám. Ale deje sa jedna naozaj čudná vec. Polia sa mi nejako záhadne transformujú samé od seba na objekty.

V metóde addItem (dával som ju sem) keď dám var_dump, vyhodí mi toto array(1) { [0]=> object(stdClass)#2 (4) { ["ID"]=> string(1) "5" ["amount"]=> int(1) ["name"]=> string(25) "Razer ProTone m100, white" ["price"]=> string(5) "19.99" } } , čo je správne (neviem síce čo je ten objekt na nultom indexe, ale dobre).

Pri výpise si dám tak isto var_dump tej istej premennej, s ktorou sa nič nerobilo dovtedy a už mi vypíše object(Cart)#3 (0) { } .

Takto mi to robí iba na novom serveri, na localhoste aj na starom to je OK (ten istý kód).

Čiže potrebujem odhaliť tento záhadný "transformátor" a zistiť ako ho zrušiť, lebo kód písať na novo, to sa mi teda nechce.
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 »

Zdá sa že ja mám šťastie na takéto nevysvetliteľné javy, ktoré nevie vyriešiť hádam nikto na svete.

Písal som aj technikovi odkiaľ mám hosting aj na jedno fórum o php kde je bežne naraz online aj 300 ľudí a nikto to doteraz nevyriešil. Samozrejme na gúgli taký problém nenájdem nikde.

Vyskúšal som také isté vytvorenie poľa + rovnaký prístup ako mám v kóde v dvoch rôznych súboroch a funguje to.

Toto už čo je ?
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 »

1) Nuz, stdClass tam je preto, lebo ho vytvaras ty sam. Ze ako ? Nuz zapisom :

Kód: Vybrať všetko

$_SESSION['cart'][$i]->ID
Ak chces, aby to bolo pole a aj ostalo pole, tak by si mal pouzivat zapis :

Kód: Vybrať všetko

$i = count($_SESSION['cart']);
$_SESSION['cart'][$i]=array();
$_SESSION['cart'][$i]['ID'] = $id;
$_SESSION['cart'][$i]['amount'] = $amt;
$_SESSION['cart'][$i]['name'] = $nm;
$_SESSION['cart'][$i]['price'] = $prc;
2) nieco medzi nahodenim polozky do cart session premennej a a vypisom toho "object(Cart)#3 (0) {}" musi menit obsah session premennej cart. Neexistuje aby sa ti samo prekonvertovalo z array na objekt urciteho typu.
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 prepisoval kvôli tomu, že mi to vypísalo tú chybu. Pôvodone to bolo tak ako píšeš ty a teraz to je tiež tak a nejde to.

Skontroloval som kód a nikde inde sa to pole neprepisuje.

A keby aj, tak by to robil hádam aj na ďalších dvoch serveroch, nie ?
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 »

Netvrd mi ze sa neprepisuje. Objekt typu Cart si PHP sam od seba nevymysli. Jedine ak by novy server mal nejaky modul, ktory pouziva prave session premennu cart. Napriklad nejaky auto_prepend zo servra.
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 »

Tvrdím ti to na 100% že neprepisuje, iba raz číta a porovnáva položky a kontroluje či je pole prázdne. :)

Zajtra (resp. dnes) sa pozrem na ten auto_prepend (?).
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 »

A ja ti hovorim, ze nieco ti to meni. Mne je jedno ci je to tvoj kod, ci je to kod providera, ci je to nejaky modul v PHP na tom servri - ale sam od seba sa nieco v session nezmeni na objekt s typom. Nieco to musi menit - ked to nie je tvoj kod tak je to kod niekoho ineho, ale niekto tam proste tu premennu meni/prepisuje.
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 »

Maník od elbie to predsa len vyriešil !
Myslel som si že to bude niečo v nastaveniach servera... nakoniec som si spravil súbor .htaccess s obsahom

Kód: Vybrať všetko

php_value register_globals off
a už to fičí ako má.
:)
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"