Akihabara.cz


Autor Téma: Pomoc s webovými stránkami  (Přečteno 24863 krát)

0 uživatelů a 1 Host prohlíží toto téma.

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #30 kdy: 10. Březen 2017 - 23:11:56 »
mám web se stránkou "index.php" kde vytvořím session. dále menu, které mění její hodnotu, a podle hodnoty se mění obsah samotné stránky. (přes refresh indexu) problém je v tom, že první kliknutí je vždy "naprázdno". (předpokládám že je to tím, že session nemá po vytvoření žádnou hodnotu) dá se tohle nějak vyřešit, nebo je lepší zapomenout na session a udělat vše přes klasické odkazy?

Offline 8B3CE273

  • Otaku
  • ***
  • Karma: +10/-9
Re:Pomoc s webovými stránkami
« Odpověď #31 kdy: 11. Březen 2017 - 07:44:40 »
stačí zadat
Kód: [Vybrat]
if (! is_set($_SESSION)) {[i]nastaveni nějaké výchozí stránky[/i]}, ale jinak bych to přes session nedělal a aktuální stránku posílal přes GET, bude to mnohem praktičtější

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #32 kdy: 11. Březen 2017 - 09:49:25 »
..
díky.. no já jsem v php naprostý noob, takže to už bych to spíš přepsal do čistého html.. ale zatím to  asi nechám tak..

Offline FaraonX

  • Starý kořen
  • ****
  • Karma: +58/-16
  • なんくるないさ
Re:Pomoc s webovými stránkami
« Odpověď #33 kdy: 12. Březen 2017 - 00:13:52 »
... dá se tohle nějak vyřešit, nebo je lepší zapomenout na session a udělat vše přes klasické odkazy?
Většina věcí se dá vyřešit, ale jak psal i 8B3CE273 je lepší na session v tomhle směru zapomenout. Dávej si trochu bacha, aby sis ze session nedělal takový odpadkový koš. ;-)

Jinak s tím přepsáním do čistého html... jednodušší cesta většinou nebývá ta nejlepší. Jako pokud chceš mít jen 5 statických stránek, který budeš měnit 1x za rok, tak proč ne, ale pokud tohle není ten příklad, tak mi věř, že tenhle nápad budeš jednou dost proklínat. :-) Toho PHP se neboj, sice jako všechno chvilku zabere, než se v tom zorientuješ, ale ono se to podá. A s ušetřením pár nervů ti na začátku pomůžou i Frameworky, abys nemusel řešit třeba ošetřování vstupů na DB atd. Pro začátečníky je dle mého názoru nejlepší CodeIgniter. Jednoduchý na naučení i orientaci. Nebo můžeš zkusit i Laravel, ale co si pamatuji, tak neměl tak hezkou dokumentaci, a byl o fous komplikovanější. Ale zase bych tipoval, že na něj najdeš asi víc video tutorialů. Takže hlavně se toho nebát. ;-)

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #34 kdy: 12. Březen 2017 - 00:58:56 »
..
tak mám jen jednu session, na to menu. prozatím předpokládám, že se obsah moc často měnit nebude. ale mám notepad (++) a total commander.. ^_^ pokud by současné řešení v budoucnu nestačilo, spíš bych nainstaloval nějaký hotový produkt. na vývoj něčeho svého nemám moc podmínky, i když bych se něco rád naučil. (teď jsem rád, že jsem zprovoznil kontaktní formulář ^^;)

Offline FaraonX

  • Starý kořen
  • ****
  • Karma: +58/-16
  • なんくるないさ
Re:Pomoc s webovými stránkami
« Odpověď #35 kdy: 12. Březen 2017 - 02:08:22 »
tak mám jen jednu session, na to menu. prozatím předpokládám, že se obsah moc často měnit nebude. ale mám notepad (++) a total commander.. ^_^ pokud by současné řešení v budoucnu nestačilo, spíš bych nainstaloval nějaký hotový produkt. na vývoj něčeho svého nemám moc podmínky, i když bych se něco rád naučil. (teď jsem rád, že jsem zprovoznil kontaktní formulář ^^;)
Notepad++ je šikovnej všeuměl, ale použitelný je jen na menší věci. U větších projektů je už komplexnější IDE k nezaplacení. Ale s tím ti teď asi nemá cenu motat hlavu. Možná bys ještě mohl zkusit
Visual studio code. Je to taky takový odlehčený prostředí, a četl jsem na to dobrý recenze, že se lidi od Mrkvosoftu vcelku vytáhli, takže na to pomalu přelézají lidi co dříve používali Sublime.
Správně TotalCommander to je základ úspěchu. :-)

Tak záleží co potřebuješ. Ale pravda, vývoj něčeho vlastního stojí strašně času, a čím to nabírá na komplexnosti, tak i nervů, pokud se to snažíš psát, aby kód byl snadno udržovatelný. Na druhou stranu, umět alespoň základy není rozhodně naškodu, protože pak si alespoň můžeš ty hotové produkty ohýbat k obrazu svému. Namísto naříkání, že nemůžeš najít přesně to, co bys potřeboval. ;-)

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #36 kdy: 12. Březen 2017 - 02:46:56 »
..
jj, před pár dny jsem právě hledal nějaký nákupní košík, ale ten, co se mi líbil nejvíc, byl napsaný v javascriptu, který už do toho míchat nechci. takže jsem tam dal "jen" php kontaktní formulář, který mi ale nakonec přijde k danému účelu o něco vhodnější, a u kterého jsem si byl aspoň schopný přidat svoje položky, naformátovat odesílanou zprávu, a dodělat primitivní antispam..

Offline Skogen

  • Veterán
  • *****
  • Karma: +94/-31
  • Cynický objektivista
Re:Pomoc s webovými stránkami
« Odpověď #37 kdy: 12. Březen 2017 - 21:41:34 »
Tak zrovna pro košík by bylo použití session smysluplnější než pro přechod mezi stránkami...

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #38 kdy: 12. Březen 2017 - 22:53:49 »
Tak zrovna pro košík by bylo použití session smysluplnější než pro přechod mezi stránkami...
jo, pro mojí současnou situaci asi i ano, protože potřebuju, v ideálním případě, přidat do košíku vždy jen jednu položku. ale pokud bych chtěl napsat normální košík, pro více položek, neobešel bych se bez array, protože potřebuju pracovat i s hmotností. a i když si na array zatím netroufám, přijde mi to jednodušší, než se snažit rozchodit něco s multiple sessions..

Offline Skogen

  • Veterán
  • *****
  • Karma: +94/-31
  • Cynický objektivista
Re:Pomoc s webovými stránkami
« Odpověď #39 kdy: 13. Březen 2017 - 11:59:42 »
S jednorozměrným polem si vůbec hlavu nedělej. Není to nic složitého. Potřebuješ jen explode, count a cyklus for.

První ti rozdělí řetězec podle tebou určeného znaku, druhá funkce spočítá počet prvků pole (u tebe položek), no a když počet prvků pole dosadíš jako maximum opakování cyklu, for ti položky vypíše.

V session $_SESSION['kosik'] je dejme tomu uloženo

~Hentai 200,- Kč~Zase hentai 300,- Kč~Super hentai 400,-Kč

nasekáš tedy řetězec z session na položky

$ukazKosik = explode("~", $_SESSION['kosik']);

spočítáš počet položek

$pocet = count($ukazKosik);

a pak už jen vypíšeš cyklem

for($c = 1; $c <= $pocet; $c++){
echo "<br/>".$ukazKosik[$c];
}

To je princip. Z každé položky pole taky můžeš získat další pole, abys dostal zvlášť název a zvlášť cenu (když si je při ukádání do session taky oddělíš [jiným] separátorem), kterou pak můžeš sčítat... Nebo si hrát s hmotností...

Tady jsem kdysi dělal košík právě přes session.
« Poslední změna: 13. Březen 2017 - 12:13:10 od Skogen »

Offline ピンクセイコ

  • Veterán
  • *****
  • Karma: +70/-22
  • なんかちがう...
Re:Pomoc s webovými stránkami
« Odpověď #40 kdy: 13. Březen 2017 - 13:35:04 »
..
ok.. koukám, že mám tu čest s profesionálem. ^_^ a jsem částečně překvapen, a částečně demotivován. ^^; překvapen proto, že jsem vůbec netušil, jaký má vlastně session potenciál, a demotivován, když se podívám na to, s čím zápasím já.. někde jsem kdysi četl něco o použití více session, tak by mě vůbec nenapadl ten trik se separátorem, a vidím, že tohle dává mysl, a bohatě by to stačilo.. takže zkusím co nejdříve zprovoznit to, co mám, a pokud by byl nějaký zájem, tohle se zdá být dobrá cesta pro tvorbu nějakého jednoduchého eshopu.. a potěšilo mě, že aspoň ten antispam mám podobný.. ^_^

Offline FaraonX

  • Starý kořen
  • ****
  • Karma: +58/-16
  • なんくるないさ
Re:Pomoc s webovými stránkami
« Odpověď #41 kdy: 13. Březen 2017 - 14:29:51 »
...

Ten for cyklus ti skončí errorem. Takhle by to mělo být:
Kód: [Vybrat]
for($c = 0; $c < $pocet; $c++){
A ten způsob bych nedoporučil, protože je dost neforemný.

Jinak když tam má rovnou array, tak je zápis přeci jen kratší a přehlednější:
Kód: [Vybrat]
foreach ($_SESSION['kosik'] as $value) {
    var_dump($value);
}

... a i když si na array zatím netroufám, přijde mi to jednodušší, než se snažit rozchodit něco s multiple sessions.

Vůbec se toho neboj. Práce s poli je jednoduchá. Důležitý je jen si dát na začátku bacha, že pole se indexuje od nuly a ne od jedničky. Což je trochu proti srsti, ale zvykneš si. ;-) A zrovna PHP má plno implementovaných funkcí na práci s poli, takže to není jako kdybys musel řešit práci s polem v C-éčku.

A jak si poslat data z formu jako array, taky jednoduše vygooglíš.  ;)

Offline Skogen

  • Veterán
  • *****
  • Karma: +94/-31
  • Cynický objektivista
Re:Pomoc s webovými stránkami
« Odpověď #42 kdy: 13. Březen 2017 - 14:46:56 »
Pročpak by to mělo skončit chybou :)? Testoval jsi to? Já jo. Menší nebo rovno je tam z toho důvodu, že první položka přece bude v indexu začínat jedničkou ($c = 1), takže nemůžu vypisovat $ukazKosik[0], tedy s <= proběhne žádoucí cyklus navíc. A nebude tam mít pole, bude tam mít string. Foreach by tedy skončil chybou.


No, já jsem taky samouk a věnuju se tomu jen tak bokem. Faraon má pravdu, že foreach by byl vhodnější, pokud bys ukládal do session rovnou pole. Prostě si s tím pohraj, časem to stejně uděláš :)
« Poslední změna: 13. Březen 2017 - 15:15:17 od Skogen »

Offline FaraonX

  • Starý kořen
  • ****
  • Karma: +58/-16
  • なんくるないさ
Re:Pomoc s webovými stránkami
« Odpověď #43 kdy: 13. Březen 2017 - 17:14:18 »
Pročpak by to mělo skončit chybou :)? Testoval jsi to? Já jo. Menší nebo rovno je tam z toho důvodu, že první položka přece bude v indexu začínat jedničkou ($c = 1), takže nemůžu vypisovat $ukazKosik[0], tedy s <= proběhne žádoucí cyklus navíc. A nebude tam mít pole, bude tam mít string. Foreach by tedy skončil chybou.
Ok, tak to vyhodí jen notice. PHP je odolný jazyk. :-D Problém je v tom, že exclude odděluje přes znak "~" je mu jedno jestli je něco před nebo za. Takže pokud mu pošleš jen string "~", tak ti to udělá pole o dvou prvcích s prázdnou hodnotou. To co tam posíláš teď ti vrátí pole o 4 prvcích:
Kód: [Vybrat]

[0]=> ""
[1]=> "Hentai 200,- Kč"
[2]=> "Zase hentai 300,- Kč"
[3]=> "Super hentai 400,-Kč"

Tudíž až dojdeš na index "4", tak by ti to mělo napsat, že offset není definován.
Tady je vidět první problém, že musíš řešit že první prvek je prázdný a píšeš zbytečně kód navíc. Ale hlavní problémy začnou nastávat, když pak bude mít nějaká položka nějaké parametry co ta druhá nemá atd. A pak to rozklíčovávat do nějaké formy, bude utrpení. Takže já jsem jasně pro array.  :)
Ono asi úplně nejsprávnější by bylo, kdyby v dnešní době plné objektů měl v té session uložené pole se serializovanými objekty reprezentující položky košíku. Ale to nemá v tomhle stádiu cenu řešit.

Jsme se s foreach-em nepochopili. Pravda, napsal jsem tu svou větu trochu krkolomně. :-[ Myslel jsem to jako, kdyby tam už měl rovnou v té session ten array, takže to stačí napsat s tím foreachem.

Prostě si s tím pohraj, časem to stejně uděláš :)
Souhlas. Důležitý je brát to jako hraní, a ono se to pak samo podá.
« Poslední změna: 13. Březen 2017 - 17:16:03 od FaraonX »

Offline Skogen

  • Veterán
  • *****
  • Karma: +94/-31
  • Cynický objektivista
Re:Pomoc s webovými stránkami
« Odpověď #44 kdy: 13. Březen 2017 - 17:56:40 »
Nevyhodí to ani report. Ostatně, proč by prvek pole nemohl být prázdný...

Já ti rozumím a nehádám se. Vztahovalo se to k tomu konkrétnímu příkladu, kde samozřejmě dostanu pole o čtyřech prvcích, kdy v cyklu for (protože $c = 1, aby bylo možno pro výčet použít $c++) dostávám jako první hodnotu 1 a nikoliv 0 a právě proměnná $c je použita jako index pro výpis prvku pole. Jiná možnost by byla od $c odečítat 1, prašť jako uhoď.

Klidně může do session ukládat rovnou pole, myslím, že už si s tím nějak poradí :)