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

Zmienna dla wielu sesji, lub działający cały czas skrypt

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 6 maja 2016 w PHP przez Ambroz Obywatel (1,840 p.)
Witajcie.

1. Czy jest jakaś możliwość utworzenia zmiennej w PHP, która będzie widziana dla wielu sesji? Chodzi o uniemożliwienie dostępu do danego skryptu lub urządzenia, kiedy ono jest zajęte.

 

2. Czy da się uruchomić skrypt, np. z kolejką FIFO tak by on był cały czas aktywny i by użytkownicy z różnych sesji mieli do niej dostęp oraz dopisywali się ni niej, a następnie inny skrypt by ściągał pojedynczo informacje z kolejki?

 

Z góry dziękuje za wszelkie rady i sugestie.

3 odpowiedzi

+1 głos
odpowiedź 6 maja 2016 przez event15 Szeryf (93,790 p.)

Jeśli chodzi o kolejkowanie to znam dwa rozwiązania, które nie są de facto phpowe.

  • RabbitMQ
  • Apache Kafka

Są to dwa z pierdyliardów rozwiązań, ale z obu korzystam w pracy i są zadowalające. Aczkolwiek pewnie nie chcesz tak duzych rozwiązań, więc poszukaj sobie jakiś skryptów dla protokołu AMQP.

Jeśli chodzi o zmienną - to zaśmierdywa mi tu cookie. Jeśli chodzi o możliwość korzystania z aplikacji na wielu urządzeniach to i tak każde z nich musi mieć swoją sesję i muszą być identyfikowane - przecież to podstawa bezpieczeństwa.

0 głosów
odpowiedź 6 maja 2016 przez niezalogowany
A co chciałbyś zrealizować? Może da się to zrobić w inny sposób
komentarz 6 maja 2016 przez Ambroz Obywatel (1,840 p.)

Mam jedno urządzenie do wysyłania sms-ów. Niestety psuje się wszystko kiedy dwóch lub więcej użytkowników wysyła sms-y mniej więcej w tym samym czasie.

kod jaki mam do wysyłania sms-ów:

    <?php
//session_start();
//$modembusy = false;

$numer = $_POST['numer']; //pobranie loginu wysłanego z indexu
$wiadomosc = $_POST['wiadomosc']; //pobranie hasła
$msgCenter = array();
$numerArray = explode(",", $numer);

for($i = 0; $i < count($numerArray); $i++) {
  array_push($msgCenter, array($numerArray[$i], $wiadomosc));
 // $modembusy = true;
 // $_SESSION['modembusy'] = true;
}

 // if (isset($modembusy)){
   echo $modembusy;
 fifomsgs($msgCenter,$i);

function fifomsgs($msg,$licznik) {
static $modembusy=true;
for (;$licznik!=0;$licznik--){
    Send_Message($msg[0][0], $msg[0][1]);
    array_shift($msg);
   sleep(5);

  }
  $modembusy = false;
 // $GLOBALS["modembusy"]=false;
}

function Send_Message($sendToNumer, $sendToMessage) {

  include_once "php_serial.class.php";
  $serial = new phpSerial();
  $serial->deviceSet("COM1");
  $serial->confBaudRate(115200);
  $serial->confCharacterLength(8);
  $serial->deviceOpen('w+');
  $serial->sendMessage("at+cmgf=1");
  $serial->sendMessage(chr(13));
  $serial->sendMessage("at+cmgs=\"".$sendToNumer."\"");
  $serial->sendMessage(chr(13));
  $serial->sendMessage($sendToMessage);
  $serial->sendMessage(chr(26));
  $serial->deviceClose();
}
	//header("Location: ../php/bramka.php");
?>

I jest tu kolejka FIFO, która działa jedynie dla danej sesji. Teraz właśnie chodzi o to, by ten skrypt 1. czekał aż się zwolni, lub 2. kolejka FIFO działała jakoś osobno i przyjmowała numery i wiadomości a potem przekazywała to do modemu.

Dostałem tez maila z propozycją by użyć: flock() http://www.w3schools.com/php/func_filesystem_flock.asp

0 głosów
odpowiedź 6 maja 2016 przez maly Nałogowiec (37,190 p.)
Może APC, shmop, memcache albo inne shared memory?

Podobne pytania

–1 głos
2 odpowiedzi 176 wizyt
0 głosów
2 odpowiedzi 224 wizyt
0 głosów
1 odpowiedź 97 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...