• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Cooldown w PHP?

VPS Starter Arubacloud
0 głosów
318 wizyt
pytanie zadane 14 lutego 2016 w PHP przez MatiiTv Gaduła (3,800 p.)

Witam, napisałem czat w AJAXie, js i php. Jednak chciałbym wprowadzić do czatu funkcję umożliwiającą pisanie wiadomości załóżmy co 5 sekund. Chodzi mi głównie o zapis funkcji, z resztą sobie poradzę.

Jak to napisać w PHP?

A i uprzedzając to dodam że nie lepiej zrobić to w JS

Pozdrawiam

2 odpowiedzi

+1 głos
odpowiedź 14 lutego 2016 przez Comandeer Guru (604,780 p.)
wybrane 14 lutego 2016 przez MatiiTv
 
Najlepsza

Ustawienie zmiennej sesji z czasem ostatniej wiadomości i sprawdzanie przy żądaniu, czy time() - 5 >= $_SESSION['zmienna']

komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)
Jak zdobyć ten czas ostatniej wiadomości?
komentarz 14 lutego 2016 przez Comandeer Guru (604,780 p.)

Pobierając go z time() przy żądaniu usera.

komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)

problem w tym ze chce zeby wlasnie to zadanie umiescic w if i zdobycie czasu byloby po ifie gdzie wlasnie chce sprawdzic ten if

 

if(time() - 5 >= $_SESSION['czas']){
	while($extract = mysql_fetch_array($result1)){
	 $_SESION['czas'] = $time();

	}

tak by to wyglodalo

komentarz 14 lutego 2016 przez Comandeer Guru (604,780 p.)
if(!isset( $_SESSION['czas'] ) || time() - 5 >= $_SESSION['czas'])

 

komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)
To teraz gdzie zdefiniowc wartosc tej sesji?
komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)

To teraz gdzie zdefiniowc wartosc tej sesji?

caly kod: 

$msg = htmlentities($_REQUEST['msg']);

session_start();
$con = mysql_connect('localhost', 'tajnyuzytkownik', 'tajnehaslo');
mysql_select_db('csgogoat', $con);

$uname = $_SESSION['steamid'];
$avatar = $_SESSION['avatar'];
if($_SESSION['checked']==0){
	echo "Please log in to use chat!";
	exit();
}


mysql_query("INSERT INTO logs(`username`, `msg`, `avatar`) VALUES('$uname', '$msg', '$avatar')");

$result1 = mysql_query("SELECT * FROM logs ORDER by id ASC");

if($_SESSION['checked']!=0){
	while($extract = mysql_fetch_array($result1)){
	 $_SESION['time'] = $time();
	 echo "<span class='hello'>"."<img style='border-radius: 50%; padding-right: 3px;' src='".$avatar."'>"."<span class='uname'>". $extract['username']. "</span>: <span class='msg'>" . $extract['msg']. "</span></span><br>";
	}
}
?>

 

komentarz 14 lutego 2016 przez Comandeer Guru (604,780 p.)
No w tym ifie, przed zapisem do bazy.

BTW Twój kod nie działa w PHP7, powinieneś zmigrować na PDO/mysqli.
komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)

Dzięki działa :) 

Jeszcze jedno: 

Skrypt wyglada tak: 

if($_SESSION['checked']!=0 &&!isset( $_SESSION['czas'] ) || time() - 5 >= $_SESSION['czas']){
	$_SESSION['czas'] = time();
	while($extract = mysql_fetch_array($result1)){
	 echo "<span class='hello'>"."<img style='border-radius: 50%; padding-right: 3px;' src='".$avatar."'>"."<span class='uname'>". $extract['username']. "</span>: <span class='msg'>" . $extract['msg']. "</span></span><br>";
	}
}

Da się zrobić tak żeby else dotyczył tylko tego drugiego warunku?... zresztą nie ważne już wiem wystarczy zrobić if w ifie

komentarz 14 lutego 2016 przez Comandeer Guru (604,780 p.)

Albo else if

komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)

JEDNAK NIE DZIALA! ;//

Co jest zle? 

if($_SESSION['checked']!=0 &&!isset( $_SESSION['czas'] ) || time() - 5 >= $_SESSION['czas']){
	$_SESSION['czas'] = time();
	while($extract = mysql_fetch_array($result1)){
	 echo "<span class='hello'>"."<img style='border-radius: 50%; padding-right: 3px;' src='".$avatar."'>"."<span class='uname'>". $extract['username']. "</span>: <span class='msg'>" . $extract['msg']. "</span></span><br>";
	}
}

 

+1 głos
odpowiedź 14 lutego 2016 przez fckueve Dyskutant (9,470 p.)

A i uprzedzając to dodam że nie lepiej zrobić to w JS

A ja uprzejme powiem że najlepiej zrobić to i w JS i w PHP. Normalny kowalski nie będzie szukał niczego w kodzie strony żeby to ominąć, a js zawsze trochę odciąży serwer php

komentarz 14 lutego 2016 przez MatiiTv Gaduła (3,800 p.)
Tak, ale napisałem tak bo skrypt jest tak wykonany ze wyslanie wiadomosci nie wymaga przeladowania strony, gdybym to napisal w JS to daloby sie tam pisac bez logowania. Juz to sprawdzalem z JS.

Podobne pytania

0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 4 maja 2021 w JavaScript przez Ktosi Nowicjusz (140 p.)
0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 14 lutego 2016 w HTML i CSS przez MatiiTv Gaduła (3,800 p.)
0 głosów
0 odpowiedzi 331 wizyt
pytanie zadane 7 kwietnia 2023 w PHP przez kingkushlee Gaduła (3,960 p.)

92,973 zapytań

141,938 odpowiedzi

321,177 komentarzy

62,301 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...