Autor | Zpráva | ||
---|---|---|---|
Lechy Profil |
#1 · Zasláno: 27. 2. 2011, 16:45:57
Ahoj, plánuju si udělat na web jednoduché posílání soukromých zpráv mezi uživateli.
Akorát mi teď vrtá hlavou, jak udělat, když budu mít čtení zprávy ve tvatu www.mujweb.cz/index.php?page=szpravy&id=5 tak to uvidí každej uživatel, když si změní ručne ID v adrese, jak se něco podobného ošetřuje? Jde mi oto, aby uživatel mohl číst zprávy samozřejmě, který jsou jeho. |
||
Taps Profil |
#2 · Zasláno: 27. 2. 2011, 16:47:29 · Upravil/a: Taps
Lechy:
tak kontroluj zprávu podle toho komu je určena. |
||
GeneralDv Profil |
#3 · Zasláno: 27. 2. 2011, 17:15:10
Mno tak když jsme u PM - otázka. Taky plánuju něco takovýho udělat, ale nechci aby se z DB dal text zprávy jednoduše přečíst, respektive chce to nějakou dobrou šifru, jinač nevim. Co mi doporučíte / používáte?
|
||
panther Profil |
#4 · Zasláno: 27. 2. 2011, 18:16:24 · Upravil/a: panther
Lechy, GeneralDv:
jelikož jsou SZ vázány na přihlášení, tato URL je v pořádku. V SQL dotazu bude podmínka kromě na ID zprávy i na příjemce, zda jsem to já, který jsem přihlášený. Pro jednoho bude SZ s ID = 5 platná, pro druhého ne. |
||
1Pupik1989 Profil |
#5 · Zasláno: 27. 2. 2011, 18:55:17
A nejlépe to udělat na ID uživatele kdyby se náhodou v budoucnosti měnila jeho přezdívka.
|
||
panther Profil |
#6 · Zasláno: 27. 2. 2011, 19:00:13 · Upravil/a: panther
1Pupik1989:
to je samozřejmé, že ne na přihlašovací jméno, ale na ID. Veškeré vzájemné propojování záznamů je vhodné dělat na základě unikátního identifikátoru. To jsem bral jako samozřejmost, proto jsem to ani nezmiňoval. A při tvorbě čehosi se SZ očekávám jistou, nezačátečnickou znalost. |
||
1Pupik1989 Profil |
#7 · Zasláno: 27. 2. 2011, 19:06:50
No já kdysi takovou blbost udělal, tak upozorňuji aby to ostatní nezblbli jako já :) Je tedy pravda, že já měl přejmenování nemožný, respektive jsem to nedovolil. Jakou přezdívku si uživatel vybere, takovou prostě má. Další otázka je, jestli chce dotyčný i hromadné zprávy, pak by to bylo trošičku jinak. Třeba oddělené středníkem nebo čárkou.
|
||
panther Profil |
#8 · Zasláno: 27. 2. 2011, 19:10:21
1Pupik1989:
„Třeba oddělené středníkem nebo čárkou.“ to je téměř vždy špatně. Do DB by v takovém případě měla příijít zpráva/uživatel každá na samostatný řádek. Bude-li tedy určena 10 uživatelům, vloží se do DB 10 řádků a zpráva s ID = 5 bude přístupně všem těmto 10. První problém by ti nastal, kdyby jeden z těchto uživatelů oddělenýh čárkou chtěl záznam smazat. Ne, že by to nešlo, ale zbytečné komplikace navíc. |
||
1Pupik1989 Profil |
#9 · Zasláno: 27. 2. 2011, 19:19:03
Jo, teď mi došlo, že jsem napsal pěknou blbost, jelikož bych pokaždé ve sloupci "prijemce" musel hledat "id_uzivatele;". Vlastně ani nevím proč jsem to napsal, sám to tak neřeším :D Já si pomocí implode udělám víc záznamů do INSERT a pak to teprve pošlu.
|
||
Lechy Profil |
#10 · Zasláno: 28. 2. 2011, 17:00:46 · Upravil/a: Lechy
Díky všem, už sem si udělal jednoduché soukromé zprávy. Teď sem u toho zabezpečení. Nyní to mám tak, že uživatel může prohlížet zprávu, jen která mu je určená. Vypisuju taky zprávy, který sem já odeslal některýmu uživatelovi a chci aby mě to pustilo do detailu zprávy, což mě už nepustí, jelikož mě ta zpráva nebyla doručena.
Pro výpis detailu zprávy mám kod: $sql_nove = MySQL_Query("SELECT * FROM zpravy WHERE id = ".$_GET["id"]." AND komu = '$iduser' "); strukturu databáze mám: id, od, komu, vytvoreno, predmet, zprava, precteno jak docílit toho, když já s id 8(od) odešlu zprávu uživatelovi s id 5(komu) tak abych si i já mohl přečíst co sem napsal? Lze to nějak vyešit? |
||
panther Profil |
#11 · Zasláno: 28. 2. 2011, 17:31:29 · Upravil/a: panther
Lechy:
MySQL_Query("SELECT * FROM zpravy WHERE id = ".(int)$_GET["id"]." AND (komu = ". (int)$iduser . " OR od = " . (int)$iduser . ") "); Předpokládám, že $_GET['id'] a $iduser jsou číselné hodnoty.
|
||
Lechy Profil |
#12 · Zasláno: 28. 2. 2011, 17:56:52
ano $_GET['id'] , $iduser jsou číselné hodnoty
pořád mi to ale píše, že zpráva nebyla nalezena(nemám přístup) |
||
Lechy Profil |
#13 · Zasláno: 28. 2. 2011, 18:01:07
omlouvám se, běží jak má mockrát děkuji :)
|
||
Časová prodleva: 1 rok
|
|||
czechiaa Profil * |
#14 · Zasláno: 11. 6. 2012, 17:00:14
Zdravím. Vím, že již je tato debata postarší, ale mám totožný problém, nýbrž s uživately nemám spjaté jejich ID, ale prostě používám jejich user (nick) .. Jak přeformulovat query, aby to funkovalo stejně ?
Předek děkuji za odpověď |
||
jenikkozak Profil |
MySQL_Query("SELECT * FROM zpravy WHERE id = ".(int)$_GET["id"]." AND (komu = '". mysql_real_escape_string($userNick) . "' OR od = '" . mysql_real_escape_string($userNick) . "') "); |
||
Časová prodleva: 12 let
|
0