« 1 2 3 4 5 6 7 8 »
Autor Zpráva
LosFilipos
Profil
perwin:
Máš ve skriptu na přihlašování uložení do $_SESSION?
perwin
Profil
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
perwin:
Vypiš někam na hlavní stránku do kódu
print_r($_SESSION);

Odhlaš se, a znovu se nahlaš...
perwin
Profil
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
perwin:
Máš to přesměrování ve tvaru
Header("Location: ". $url . SID);
tzn, Location je v uvozovkách a to ostatní je odděleno tečkami?
Pokud to nebude fungovat ani potom, smaž SID...
perwin
Profil
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
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
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
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
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
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
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
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
perwin:
Už je to spravené...
LosFilipos
Profil
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
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
perwin:
Ano
perwin
Profil
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
perwin:
Ano
$_SESSION["chat"][$chat_id["id_chatu"]] = true;
takto...
perwin
Profil
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
Chybí tam "
$chaty_try = mysql_query("SELECT `id_chatu` FROM `aktivni_chaty` WHERE `id_kamarada` = '".$_SESSION["id"]."'") or Die(mysql_error());
perwin
Profil
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
perwin:
A to echo s divy by mělo být až někde v mezo html tagy <body>
LosFilipos
Profil
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
LosFilipos:
OK, a co mám napsat jako ty funkce na psaní zpráv atd.?
LosFilipos
Profil
perwin:
Tady jsi psal, že umíš sestrojit chat... Tak něco vymysli. Asi tam bude nějaký formulář... Snaž se...
perwin
Profil
LosFilipos:
Formulář jako <form> ... </form>? Nebo jako zpracování toho formuláře?
LosFilipos
Profil
perwin:
Formulář jako <form> ... </form>, zpracování bude jinde, aby to šlo používat i ajaxem...
Kcko
Profil
Děláte si z toho chlapci "non-realtime-chat"?
perwin
Profil
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
« 1 2 3 4 5 6 7 8 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0