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

Cooldown w PHP?

0 głosów
711 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 (607,960 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 (607,960 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 (607,960 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 (607,960 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 (607,960 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ź 260 wizyt
pytanie zadane 4 maja 2021 w JavaScript przez Ktosi Nowicjusz (140 p.)
0 głosów
1 odpowiedź 638 wizyt
pytanie zadane 14 lutego 2016 w HTML i CSS przez MatiiTv Gaduła (3,800 p.)
0 głosów
0 odpowiedzi 440 wizyt
pytanie zadane 7 kwietnia 2023 w PHP przez kingkushlee Gaduła (3,960 p.)

93,731 zapytań

142,668 odpowiedzi

323,286 komentarzy

63,289 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...