Autor Zpráva
radecek
Profil
Ahoj,

dejme tomu že máme web, který umí odesílat vzkazy kamarádům po odeslání vzkazu chceme uživateli vypsat - VZKAZ BYL ODESLAN. Jak to udělat dobře aby uživatel neviděl předaní žádné proměnné - URL.

Napadly mě 3 řešení:
SESSION
MySQL - do tabulky by se napsala buď celá hláška, její kód, ... a uživatelské ID při vypsaní by se řádky vymazaly
URL - uživatel všechno vidí
Předav ve scriptu - nechci při reloadu se uloží řádek 2x, i když by se mohlo dát do formu neviditelné tlačítko s časem nebo nečím takovým
jogurt
Profil
Poslat ho na stranku, kde bude napsano "VZKAZ BYL ODESLAN"?
grimword
Profil
vyhodnocovací stránka
if(post[vzkaz] != "" and session[prihlasen] == "ano")
{ 
mysql insert odkoho & komu & zprava
echo zprava ulozena
}
else
{
echo vyskytl se problem
}
radecek
Profil
jogurt
Toto řešení se mi nelíbí zdržuje. Třebas je na některých fórech že za 10 sekund budu přesměrovaný na téma.

grimword
Toto je standartní řešení, ale při zmáčknutí F5 nebo obnovení stránky se vzkaz odešlě ještě jednou.

Potřebuju vymazat POST, aby při obnovení stránky neexistovala..
Mastodont
Profil
PŘE-SMĚ-RO-VAT, je to tu stokrát.
radecek
Profil
PŘE-SMĚ-RO-VAT, je to tu stokrát.

uživatel neviděl předaní žádné proměnné - URL.

Jak to udělat jinak? Co by bylo nejlepší a vždy funkční? Nechci psát do adresy msg=3 chci tento zápís schovat.
Mastodont
Profil
Přesměruj třeba na index.php a do sešny ulož parametr, který do titulní stránky jednou přidá rámeček se vzkazem. Variant je iks.
radecek
Profil
Session se nedá vypnout jako cookie že? A jak si myslíte že je to použitelné to s tabulkou.
#header
if(post){
  vloz_vzkaz = insert vzkaz values(v);
  vloz_msg = insert msg values("OK");
  location("home.php");
}

#body
sel = select msg;
while(m = mysql_fetch_array(sel)){
  echo m[msg];
}
del = delete vzkaz where id = UID


Toto byla taková kostra algoritmu :)
Mastodont
Profil
Ne, sešnu klient nevypne. Ale proč to strkat do tabulky a mít další select z databáze?
radecek
Profil
Takže session je ideální.. Dobře zkusím to ;)
Majkl578
Profil
session se da vypnout, staci mit zakazane cookies. v tom pripade se pokazde vytvori nova a vzdy bude prazdna.
Anonymní
Profil *
Majkl578
Hmm fakt :) Ale zase na druhou stranu když má někdo vyplné cookie tak se ani nepříhlásí, tak žádné vzkazy odesílat nemůže.
radecek
Profil
Odhlásilo mě to :( No nevadí
joe
Profil
Mastodont
Sessions jsou spojené s cookies, tak jak by mohly pořád fungovat?!

radecek
Před přesměrování ulož do sessions třeba přímo ten text nebo jen její nějaké id.
Po přesměrování zobraz ten text a tu session proměnnou smaž pomocí unset.
radecek
Profil
joe
Před přesměrování ulož do sessions třeba přímo ten text nebo jen její nějaké id.
Po přesměrování zobraz ten text a tu session proměnnou smaž pomocí unset.


Jasně toto jsem potřeboval vědět :) A co se týče složitosti a rychlosti scriptu tak se zas tak moc neděje že?
joe
Profil
radecek
Složité, je to na dva řádky :-) Je to běžný postup.
Mastodont
Profil
joe
Já měl dojem, že sešny mohou fungovat i pomocí trans_id, tedy bez cookies. Víš o nějaké novince v tomto směru?
joe
Profil
Mastodont
Jasně že můžou, ale už i z důvodů bězpečnosti se to nedoporučuje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: