akichan
napoveda vypnout Akichan patička

Akihabara.cz


Autor Téma: Programování  (Přečteno 62916 krát)

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

Offline FaraonX

  • Starý kořen
  • ****
  • なんくるないさ
Re:Programování
« Odpověď #105 kdy: 13. Červen 2013 - 03:33:25 »
tusim ti honim karmu (nechces byt na temnej strane len tak nahodou..?)
mal si pravdu, volal som to pred pripojenim na databazu. Na localhoste mi to fungovalo a este aj funguje (teraz uz nepouzivam db na locale, ale tu na serveri), tak som to nebral ako chybu.

a este som nasiel jednu chybu, tusim a dufam, ze uz poslednu - nejde mi header( ); napr.
Kód: [Vybrat]
header( 'Location: ./index.php?stranka=error&error=er014' ); skratka mi tam neskoci.
Temná strana je mocná, já to pak nějak doženu. :-)

Myslíš jako, že ti nefachá redirect v http hlavičce? Pokud jo a máš to takhle zapsaný, tak problém je více než zřejmý. Zde musí být cesta absolutní, nejde to dělat relativně jako "hyperlink". Tedy místo tečky na začátku odkazu tam nasoukej např.
Kód: [Vybrat]
http://www.example.czA já se mohu jít v klidu dokoukat, jestli Boston udrží vítězství v prvním finálovém zápase. :-D
« Poslední změna: 13. Červen 2013 - 03:35:02 od FaraonX »

Offline Benda_11

  • Admin
  • Veterán
  • *******
  • Live a life in RL
Re:Programování
« Odpověď #106 kdy: 13. Červen 2013 - 11:45:21 »
Jen dodám vsuvku, za každý header musí přijít příkat exit protože jinak se zpracuje i ta další část scriptu, která je za headerem, což pak může vykazovat chyby, zbytečné spojení na databázi, atp. Script nekončí když dorazí na header, jen si to zapamatuje, že se má přesměrovat, zpracuje další příkazy a až na konci scriptu provede přesměrování.

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #107 kdy: 13. Červen 2013 - 20:12:27 »
Myslíš jako, že ti nefachá redirect v http hlavičce? Pokud jo a máš to takhle zapsaný, tak problém je více než zřejmý. Zde musí být cesta absolutní, nejde to dělat relativně jako "hyperlink". Tedy místo tečky na začátku odkazu tam nasoukej např. ...

Ak by to bolo az tak lahke, nemusel by som sa pytat.. problem bude niekde inde.


Offline FaraonX

  • Starý kořen
  • ****
  • なんくるないさ
Re:Programování
« Odpověď #108 kdy: 13. Červen 2013 - 22:10:32 »
Pokud jsi ještě neudělal, to co říkal Benda, tak tam ten
Kód: [Vybrat]
exit; za to ještě foukni. Nic tím nezkazíš, ale má pravdu, že tě to ochrání před případnými problémy.

V čem to ale vázne, dle mě bude ten ošklivý "ampersand" v odkazu. Koukal jsem na to i prve, ale asi to s ním fakt neprojde ani tu. :-) Vyescapuj ten znak a mělo by začít fachat jestli se nepletu.

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #109 kdy: 13. Červen 2013 - 23:12:48 »
ampersandem to neni.. na skusanie mam test.php a v nom:
Kód: [Vybrat]
<?php
header
'Location: http://izahori.sk/obeczavod/index.php?stranka=result2' );
exit;
?>
a nejde ani tak...

alebo idem pozriet este iny sposob redirectovania, snad nieco najdem..

Offline FaraonX

  • Starý kořen
  • ****
  • なんくるないさ
Re:Programování
« Odpověď #110 kdy: 13. Červen 2013 - 23:31:52 »
ampersandem to neni.. na skusanie mam test.php a v nom:
Kód: [Vybrat]
<?php
header
'Location: http://izahori.sk/obeczavod/index.php?stranka=result2' );
exit;
?>
a nejde ani tak...

alebo idem pozriet este iny sposob redirectovania, snad nieco najdem..
Tak jedině mě snad ještě napadá, jestli bys neměl mít místo těch jednoduchých uvozovek '...' mít ty složitější "..." i když to je asi blbost, ale jinak fakt netuším. Když to není ani speciálním znakem, tak tam nic nekorektního už nevidím. Určitě to tam dáváš před načtením samotné html stránky?

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #111 kdy: 14. Červen 2013 - 00:05:15 »
co myslis tim nacitanim html stranky? Mam ten index.php, kde je kostra stranky(cize aj html kod) a pomocou stranka=test vkladam(include) do nej test.php..

inak podarilo sa mi najst
Kód: [Vybrat]
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php?stranka=result2">'; exit; a funguje to...


Offline FaraonX

  • Starý kořen
  • ****
  • なんくるないさ
Re:Programování
« Odpověď #112 kdy: 14. Červen 2013 - 00:32:31 »
co myslis tim nacitanim html stranky? Mam ten index.php, kde je kostra stranky(cize aj html kod) a pomocou stranka=test vkladam(include) do nej test.php..

inak podarilo sa mi najst
Kód: [Vybrat]
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php?stranka=result2">'; exit; a funguje to...
No míním tím tohle:
Kód: [Vybrat]
<?php
header
(...);
?>

// Odtud generuji(načítám) html stránku
<html>
...
...
</html>
Tedy ten redirect, aby se prostě dělal předtím, než se začne načítat samotná stránka nebo vypíše nějaké "echo".

Ale když ti to už nějak fachá, tak to necháme být. Je to traumatizující. I když fakt by mě zajímalo na čem to vázne, to ti povím heh. ;D

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #113 kdy: 14. Červen 2013 - 12:30:29 »
tak radost predcasna.. dalsia trauma na dusi.. nejdu $_SESSION
Kód: [Vybrat]
<?php
//Test.php

session_start();

$dbid "starosta";
$dbuser "starosta";
$dbrights "admin";

$_SESSION['userid']=$dbid;
$_SESSION['username']=$dbuser;
$_SESSION['rights']=$dbrights;

echo 
"$dbuser <p>";
echo 
$_SESSION['rights'];

echo 
'<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">';
?>

echo $_SESSION['rights']; vypise spravne "admin", co by mi na index.php malo spristupnit panely pre spravu, ale nestane sa nic. 
« Poslední změna: 14. Červen 2013 - 12:32:53 od Gurthfin »

Offline Aurielle

  • Redaktor Konaty
  • Otaku
  • ***
Re:Programování
« Odpověď #114 kdy: 14. Červen 2013 - 14:29:39 »
Problém musí být u tebe, ten kód je normálně funkční. Podívej se, jestli před <?php nemáš nějaký znak, zapni zobrazování všech chyb a zkontroluj konfiguraci PHP.
Session musíš inicializovat před zahájením jakéhokoliv výstupu, není problém v tom? (Poznámka o zapnutí zobrazování všech chyb platí stále.)

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #115 kdy: 14. Červen 2013 - 14:41:27 »
diky moc.. na zaciatku index.php bolo ""(edit:zeby ten "byte order mark").. neviem ale preco, lebo doma sa mi v Notepade++ nic nezobrazuje. Vsimol som si, ze ked upravujem nejaky subor cez webove rozhranie, tak mi tam vie naskocit nejake &nsb.. a ako pozeram, aj v inom subory to bolo... radsej si vsetko skontrolujem.

Offline Aurielle

  • Redaktor Konaty
  • Otaku
  • ***
Re:Programování
« Odpověď #116 kdy: 14. Červen 2013 - 14:49:14 »
Jj, přesně tyhle znaky jsou BOM.

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #117 kdy: 14. Červen 2013 - 16:02:00 »
ako vidim, mam rozhodene tusim cele kodovanie, takze musim opravit vsetky html casti ktore nie su medzi <?php?>, taktiez pridam vsetky exit;

ak by niekoho napadla este nejaka rada na taketo zaciatocnicke chyby, napiste. V ramci prechadzania celeho scriptu by som to chcel opravit co najviac...

Offline Benda_11

  • Admin
  • Veterán
  • *******
  • Live a life in RL
Re:Programování
« Odpověď #118 kdy: 30. Červen 2013 - 23:43:27 »
Jak to funguje s připojením k MySQL? Už jsem relativně dokončil serverovou část pro svoji hru. Mám to dělané tak, že v každém vlákně, ve kterém je připojen klient k serveru se provádí dotazy k mysql. Script je postaven, tak že při každém dotazu vytvoří nové spojení, které se po dotazu automaticky zavře. Z technických důvodů nelze, aby v každém vlákně bylo vytvořené pernamentní spojení. To by zachvilku databáze totálně zkolabovala. A moje otázka zní, co je lepší, jestli to nechat tímhle způsebem a nebo vytvořit nové vlákno, ve kterém by bylo pernamentní spojení s databází a z ostatních vláken by se sem posílali dotazy, které by se zpracovávali postupně.  Jelikož když si to vezmu, tak při každém dotazu se zamkne tabulka, do které se šahá, a další dotaz se zpracuje až potom, co se tabulka odemkne. Tak proto si říkám, že druhý způsob by byl efektivnější. Avšak na úkor toho, že ve vlákně, kde jsem odeslal dotaz na databázi, by se musela vytvořit čekací fronta, která by teoreticky mohla zpomalit odezvu ke klientovi - klient by mohl teoreticky vzato čekat o chlup delší čas, než by vlákno poznalo, že úloha pro spojení s databází by se zpracovala. Příklad: ve frontě je dejme tomu 300 dotazů, které se mají zpracovat, a klient by musel čekat, než co se všechny dotazy před ním zpracují. Ve skutečnosti zase na druhou stranu dotaz na databázi není nikterak dlouhý a zabírá několik málo nanosekund, což při malé frontě nemusí být tolik znát, ale nabízí se otázka, co když by bylo těch dotazů ne v řádu stovek, ale tisíců až-li desetitisíců? Ale zase ve druhém příkladě bych ulehčil hodně databázi, mysql by nemuselo samo vyhodnocovat zda-li je tabulka zamknutá nebo není. Př: do jedné tabulky pošlu naráz 300 dotazů na vyhodnocení a stejně se každý dotaz musí zpracovat postupně, jelikož se tabulka s každým novým dotazem zamkne a další dotaz se zpracuje až po úspěsňe předešlém zpracovaném dotazu. Navíc ve druhém způsobu spojení bych také ulehčil databázi neustálým ověřováním, při novém spojení, když bych měl jedno pernamentní spojení. Oba způsoby spojení mají své výhody i svá úskalí. Teď jen nevím co je lepší.

Offline Gurthfin

  • Veterán
  • *****
  • Madao Maven
Re:Programování
« Odpověď #119 kdy: 01. Červenec 2013 - 14:15:01 »
volil by som server <-> databaza permanentne a klient <-> server fronta. (alebo pre mna lakavejsia moznost server <-> databaza fronta a klient <-> server fronta a samostatneho agenta na monitorovanie a spravovanie oboch front). O databazu by som sa nebal, lebo celu zataz ponesie server (spracovanie spojenia, volanie db, spracovanie vysledkov db, a spat ku klientovi). A ked ti to nehodou nebude stihat, nikto ti do programovania nevidi, tak preco nepouzit Stand Alone Complex a trebars zobrat posledny vysledok a ten pouzit. (Priklad - HentaiVerse, ked sekam nejaku priserku, tak naco sa pripajat na databazu kvoli kazdemu seku, ked moje statistiky sa nemenia - cize seknem 10x za sebou, tak naco sa 10x pripajat na db, ked hodnoty seku priblizne rovnake, tak kazdy 3 sek sa pouzije hodnota predchadzajuceho upravena o malu random hodnotu. Usetri sa tak cas na db, ak je fronta plna)