Autor | Zpráva | ||
---|---|---|---|
LosFilipos Profil |
#1 · Zasláno: 14. 11. 2010, 11:43:53
perwin:
Máš ve skriptu na přihlašování uložení do $_SESSION? |
||
perwin Profil |
#2 · Zasláno: 14. 11. 2010, 11:44:38 · Upravil/a: perwin
LosFilipos:
Ano, mám Takto vypadá script při přihlášení: <?php ob_start(); session_start(); if(isset($_POST['jmeno'])){ require 'db.php'; $name = mysql_real_escape_string($_POST['jmeno']); $pass = md5($_POST['heslo']); $query = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error()); $Vysledek = mysql_fetch_array($query); $Vysledek['jmeno']; if($Vysledek['jmeno']){ $_SESSION['prihlasen'] = 1; $_SESSION['login'] = $Vysledek['jmeno']; $_SESSION['UserId'] = $Vysledek['id']; $_SESSION['UserWeb'] = $Vysledek['web']; $_SESSION['UserMail'] = $Vysledek['mail']; $_SESSION['Prava'] = $Vysledek['prava']; $_SESSION['heslo'] = $Vysledek['heslo']; $_SESSION['foto'] = $Vysledek['foto']; $_SESSION['nejpredmet'] = $Vysledek['nejpredmet']; $_SESSION['icq'] = $Vysledek['icq']; $_SESSION['zaliby'] = $Vysledek['zaliby']; $_SESSION['bydliste'] = $Vysledek['bydliste']; $_SESSION['online'] = $Vysledek['online']; $yes="yes"; $query = mysql_query("UPDATE uzivatele SET online='$yes' WHERE jmeno='$_SESSION[login]' ") or die (mysql_error()); $bl="web.php" . ((!empty($_POST['cil'])) ? "?page={$_POST['cil']}" : ''); header("Location: $bl"); } else { $bl="web.php?page={$_POST['cil']}&Alert=6"; header("Location: $bl"); } mysql_free_result($query); } else{ echo "Zde nic není ;-)"; } ob_end_flush(); ?> |
||
LosFilipos Profil |
#3 · Zasláno: 14. 11. 2010, 11:47:32 · Upravil/a: LosFilipos
perwin:
Vypiš někam na hlavní stránku do kódu print_r($_SESSION); Odhlaš se, a znovu se nahlaš... |
||
perwin Profil |
#4 · Zasláno: 14. 11. 2010, 11:52:26
LosFilipos:
Ano, děkuji, teď mi to už funguje... Co mám dělat dál? Když se potom napíše to web.php?page=uvodSID, tak mi to napíše, že tato stránka neexistuje. |
||
LosFilipos Profil |
#5 · Zasláno: 14. 11. 2010, 11:56:18 · Upravil/a: LosFilipos
perwin:
Máš to přesměrování ve tvaru Header("Location: ". $url . SID); Pokud to nebude fungovat ani potom, smaž SID... |
||
perwin Profil |
#6 · Zasláno: 14. 11. 2010, 12:03:14 · Upravil/a: perwin
Ne,
Header("Location: ". $url . SID); nefunguje, takže co mám smazat? A k čemu je tam vlastně to SID? Co tam má vykonávat? Ale, všiml jsem si, že se do databáze, do sloupce id_uzivatele nic nezapsalo, co s tím? |
||
LosFilipos Profil |
#7 · Zasláno: 14. 11. 2010, 12:10:05
perwin:
„takže co mám smazat?“ .SID „A k čemu je tam vlastně to SID? Co tam má vykonávat?“ viz http://diskuse.jakpsatweb.cz/?action=vthread&forum=3&topic=117784&page=0#21 Pokud tě to neodhlásí při přesměrování pomocí headers, tak to tam být nemusí. Třeba já na svých stránkách to musím používat. „Počkat, všiml jsem si, že se do databáze, do sloupce id_uzivatel nic nezapsalo, co s tím?“ Ve skriptu pridej.php musí být session_start(); |
||
perwin Profil |
#8 · Zasláno: 14. 11. 2010, 12:15:06
LosFilipos:
Takže kód nyní vypadá takto: <?php session_start(); require_once "db.php"; $id_uzivatele = $_SESSION["login"]; $id_kamarada = mysql_real_escape_string($_GET["pridej"]); $add = mysql_query("INSERT INTO `activechats` (`id_chatu`,`id_uzivatele`,`id_kamarada`) VALUES (null,'$id_uvizatele','$id_kamarada')") or Die(mysql_error()); $url = urldecode($_GET["url"]); if($add) { Header("Location: ".$url ); } else { Header("Location: ".$url."?error=nepodarilo_se_pripojit_k_chatu" ); } exit(); ?> Ale stále se do sloupce id_uzivatele nic nezapsalo. |
||
LosFilipos Profil |
#9 · Zasláno: 14. 11. 2010, 12:19:27 · Upravil/a: LosFilipos
Je tam překlep, sorry...
$add = mysql_query("INSERT INTO `activechats` (`id_chatu`,`id_uzivatele`,`id_kamarada`) VALUES (null,'$id_uzivatele','$id_kamarada')") or Die(mysql_error()); |
||
perwin Profil |
#10 · Zasláno: 14. 11. 2010, 12:23:01 · Upravil/a: perwin
LosFilipos:
Dobrá, tak toto je vyřešeno, ale co mám udělat dál, aby se zaplo nějaké chatové okno? Sice se mi nyní uloží id_uzivatele a id_kamarada do databáze, ale nic se nezapne. Co dál? viz. str.1 #10: Skript pozná, že v tabulce je Markovo id a tudíž mu otevře okno chatu. Napíšeš Markovi zprávu: ,,Nazdar Marku, jak je?" do tabluky zpravy se uloží následující: (náhodou to bude zrovna 10000. zpráva v tabulce zprávy) id_zpravy | id_chatu | id_autora | text_zpravy 10000 | 265 | 1 | Nazdar Marku, jak je? - Jak na to? 1) Jak nastavit, že id_chatu v tabulce zpravy = id_chatu v tabulce activechats? 2) Jak udělat, aby se otevřelo okno s chatem tomu, kdo je v té tabulce? *3) V zájmu vzhledu: Šlo by, aby to okno s chatem bylo něco jako alert-box v JS, a dalo se zminimalizovat a zase zmaximalizovat do rohu stránky? Třeba něco jako na Facebooku jak je ta lišta s chaty dole. Děkuji |
||
LosFilipos Profil |
#11 · Zasláno: 14. 11. 2010, 12:51:40 · Upravil/a: LosFilipos
perwin:
„ale co mám udělat dál, aby se zaplo nějaké chatové okno?“ Máš dvě možnosti, obě dvě počítají s úpravou skriptu pridej.php a.) Okno chatu se otevře, pokud bude v url stránky parametr chat_window=true; b.) Okno chatu se otevře, pokud bude v $_SESSION uloženo něco ve smyslu $_SESSION["chat_window"] = true; Aby jsi mohl chatovat s více uživateli než jen jedním, b.) je řešením. skript pridej.php obohať o následující: $chat_id = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `aktivni_chaty`"),0); $_SESSION["chaty"][$chat_id] = true; // do session se ti uloží číslo posledního přidaného chatu... No a na ostatní stránky napiš: if(isset($_SESSION["chaty"])) { echo '<div>' . funkce na psaní zpráv atd... . '</div>'; } |
||
perwin Profil |
#12 · Zasláno: 14. 11. 2010, 12:55:47 · Upravil/a: perwin
LosFilipos:
Takto?: <?php session_start(); require_once "db.php"; $_SESSION["chaty"]["chat_id"] = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM `aktivni_chaty`),0); $id_uzivatele = $_SESSION["login"]; $id_kamarada = mysql_real_escape_string($_GET["pridej"]); $add = mysql_query("INSERT INTO `activechats` (`id_chatu`,`id_uzivatele`,`id_kamarada`) VALUES (null,'$id_uzivatele','$id_kamarada')") or Die(mysql_error()); $url = urldecode($_GET["url"]); if($add) { Header("Location: ".$url ); } else { Header("Location: ".$url."?error=nepodarilo_se_pripojit_k_chatu" ); } exit(); ?> To ale říká: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users/perwin/sss/web/aktivnichat.php on line 5 Na jaké ostatní stránky to mám napsat? |
||
LosFilipos Profil |
#13 · Zasláno: 14. 11. 2010, 12:58:05 · Upravil/a: LosFilipos
perwin:
„2) Jak udělat, aby se otevřelo okno s chatem tomu, kdo je v té tabulce?“ AJaxem, aby to bylo realtime. Zatím přidej na stránky něco ve smyslu: <?php $chaty_try = mysql_query("SELECT `id_chatu` FROM `aktivni_chaty` WHERE `id_kamarada` = '".$_SESSION["id"]."'") or Die(mysql_error()); $pocet_chatu = mysql_num_rows(); if($pocet_chatu >0) { while($chat_id = mysql_fetch_array($chat_try)) { $_SESSION["chat"][$chat_id["id_chatu"]] = true; } } ?> |
||
LosFilipos Profil |
#14 · Zasláno: 14. 11. 2010, 13:00:20
perwin:
Už je to spravené... |
||
LosFilipos Profil |
#15 · Zasláno: 14. 11. 2010, 13:01:06
perwin:
„Na jaké ostatní stránky to mám napsat?“ Přes include to dej na všechny, na kterých se má zobrazovat možnost chatu... |
||
perwin Profil |
#16 · Zasláno: 14. 11. 2010, 13:03:27
LosFilipos:
"Přes include to dej na všechny, na kterých se má zobrazovat možnost chatu..." Takže to stačí dát na stránku web.php, z které se načítají ostatní přes page=? |
||
LosFilipos Profil |
#17 · Zasláno: 14. 11. 2010, 13:07:05
perwin:
Ano |
||
perwin Profil |
#18 · Zasláno: 14. 11. 2010, 13:19:10
LosFilipos:
A tohle: <?php $chaty_try = mysql_query("SELECT `id_chatu` FROM `aktivni_chaty` WHERE `id_kamarada` = '".$_SESSION["id"]."') or Die(mysql_error()); $pocet_chatu = mysql_num_rows(); if($pocet_chatu >0) { while($chat_id = mysql_fetch_array($chat_try)) { $_SESSION["chat"][$chat_id["id_chatu"]]; } } ?> mám dát taky na web.php? |
||
LosFilipos Profil |
#19 · Zasláno: 14. 11. 2010, 13:22:41
perwin:
Ano $_SESSION["chat"][$chat_id["id_chatu"]] = true; |
||
perwin Profil |
#20 · Zasláno: 14. 11. 2010, 13:26:30 · Upravil/a: perwin
LosFilipos:
Ale řekne to: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users/perwin/sss/web/web.php on line 14 Začátek kódu stránky web.php: <?php session_start(); print_r($_SESSION); if(isset($_SESSION["chaty"])) { echo '<div> </div>'; } ?> <?php $chaty_try = mysql_query("SELECT `id_chatu` FROM `aktivni_chaty` WHERE `id_kamarada` = '".$_SESSION["id"]."') or Die(mysql_error()); $pocet_chatu = mysql_num_rows(); if($pocet_chatu >0) { while($chat_id = mysql_fetch_array($chat_try)) { $_SESSION["chat"][$chat_id["id_chatu"]] = true; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ... |
||
LosFilipos Profil |
#21 · Zasláno: 14. 11. 2010, 13:28:35
Chybí tam "
$chaty_try = mysql_query("SELECT `id_chatu` FROM `aktivni_chaty` WHERE `id_kamarada` = '".$_SESSION["id"]."'") or Die(mysql_error()); |
||
perwin Profil |
#22 · Zasláno: 14. 11. 2010, 13:29:48
No a teď mi to hlásí:
Array ( [prihlasen] => 1 [login] => perwin [UserId] => [UserWeb] => [UserMail] => vrba.vojtech@gmail.com [Prava] => 2 [heslo] => 9af881287d2a21e245739b3f4601e6a8 [foto] => [nejpredmet] => [icq] => [zaliby] => [bydliste] => [online] => no [chaty] => Array ( [] => 1 ) ) Access denied for user 'zakaznik'@'srv11.endora.cz' (using password: NO) |
||
LosFilipos Profil |
#23 · Zasláno: 14. 11. 2010, 13:30:57 · Upravil/a: LosFilipos
perwin:
A to echo s divy by mělo být až někde v mezo html tagy <body> |
||
LosFilipos Profil |
#24 · Zasláno: 14. 11. 2010, 13:31:59 · Upravil/a: LosFilipos
perwin:
Taky tam musí být připojení k db... Za to array může to print_r($_SESSION), to je ta, jen pro tvojí informaci... |
||
perwin Profil |
#25 · Zasláno: 14. 11. 2010, 13:32:16
LosFilipos:
OK, a co mám napsat jako ty funkce na psaní zpráv atd.? |
||
LosFilipos Profil |
#26 · Zasláno: 14. 11. 2010, 13:36:13 · Upravil/a: LosFilipos
perwin:
Tady jsi psal, že umíš sestrojit chat... Tak něco vymysli. Asi tam bude nějaký formulář... Snaž se... |
||
perwin Profil |
#27 · Zasláno: 14. 11. 2010, 13:37:33 · Upravil/a: perwin
LosFilipos:
Formulář jako <form> ... </form>? Nebo jako zpracování toho formuláře? |
||
LosFilipos Profil |
#28 · Zasláno: 14. 11. 2010, 13:41:14
perwin:
Formulář jako <form> ... </form>, zpracování bude jinde, aby to šlo používat i ajaxem... |
||
Kcko Profil |
#29 · Zasláno: 14. 11. 2010, 13:41:33
Děláte si z toho chlapci "non-realtime-chat"?
|
||
perwin Profil |
#30 · Zasláno: 14. 11. 2010, 13:46:46
LosFilipos:
1) Tak co mám dát mezi ty <div> ... </div>? ... 2) Když kliknu na jméno toho, s kým chci začít chat, tak mě se sice zobrazí to, co napíšu mezi ty divy, ale ne tomu druhému. Děkuji |
||
Téma pokračuje na další straně.
|
0