GDRCD 5.4 - creazione chat private su richiesta
Pagine → 1 2
22/06/2020 09:16:44
mimelaine ha scritto: Grazie mille! Di norma risolvo sbattendo la testa, ma evidentemente c'è qualcosa che proprio mi sfugge.
Ecco, apri re-header, non so dirti la linea esatta essendo tutto modificato da me negli anni, certa la sezione con il commento:
/** * Controllo per impedire il print in chat delle azioni dei precedenti proprietari di una stanza privata
* Per stanze non private ora_prenotazione equivarrà ad un tempo sempre inferiore all'orario dell'azione inviata
* facendo risultare quindi sempre veritiero il controllo in questo caso.
* @author Blancks
*/
Ecco il codice da sostituire:
if ($_SESSION['luogo'] != <ID_STANZA_CON_CODICI>) {
$query= gdrcd_query(" SELECT chat.sesso, chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tipo, chat.ora, chat.testo, personaggio.url_img_chat, mappa.ora_prenotazione
FROM chat
INNER JOIN mappa ON mappa.id = chat.stanza
LEFT JOIN personaggio ON personaggio.nome = chat.mittente
WHERE chat.id > ".$last_message." AND stanza = ".$_SESSION['luogo']." AND chat.ora > IFNULL(mappa.ora_prenotazione, '0000-00-00 00:00:00') AND DATE_SUB(NOW(), INTERVAL 60 MINUTE) < ora ORDER BY id ". $typeOrder."", 'result');
} else {
$codice = gdrcd_query("SELECT destinatario FROM chat WHERE chat.mittente = '".$_SESSION['login']."' AND stanza = <ID_STANZA_CON_CODICI> ORDER BY ora DESC LIMIT 1");
$query= gdrcd_query(" SELECT chat.sesso, chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tipo, chat.ora, chat.testo, personaggio.url_img_chat, mappa.ora_prenotazione
FROM chat
INNER JOIN mappa ON mappa.id = chat.stanza
LEFT JOIN personaggio ON personaggio.nome = chat.mittente
WHERE chat.id > ".$last_message." AND stanza = <ID_STANZA_CON_CODICI> AND chat.ora > IFNULL(mappa.ora_prenotazione, '0000-00-00 00:00:00') AND DATE_SUB(NOW(), INTERVAL 60 MINUTE) < ora AND chat.destinatario = '".$codice['destinatario']."' ORDER BY id ". $typeOrder."", 'result');
}
Cosa fa questo codice?
Praticamente esegue un controllo iniziale (se ti trovi nella stanza dei codici).
Se non sei li, se ne frega e usa il codice normale, altrimenti prima del codice normale preleva il campo destinatario della tabella chat (conosciuto come Tag anche).
In base all'ultima azione eseguita in quella chat con un tag specifico (quindi il "codice" segreto), carica la lista di tutti i messaggi con quel codice.
Esempio: Gioco in quella chat, metto nel tac: PIPPOPLUTO e mando l'azione, solo chi ha fatto un'azione con il TAG PIPPOPLUTO potrà vedere la mia azione.
Ho fatto due prove al volo e sembra funzionare correttamente.
22/06/2020 12:12:15
Grazie mille.
Ma se sbaglio il tag? Io pensavo ad un piccolo form che appare solo nella chat che prende i codici.
Vedo se riesco ad adattarlo appena ho un minuto.
Grazie ancora!
22/06/2020 15:16:48
mimelaine ha scritto: Grazie mille.
Ma se sbaglio il tag? Io pensavo ad un piccolo form che appare solo nella chat che prende i codici.
Vedo se riesco ad adattarlo appena ho un minuto.
Grazie ancora!
Non esiste un Tag sbagliato, semplicemente entri in un "canale" sbagliato.
Se metti un menu a tendina o altro aiuti solo a "entrare" in un canale che non è quello stabilito.
A mio avviso per renderla il più privata possibile bisogna specificare ai player di fare attenzione al Tag usato (maiuscole, minuscole, caratteri accentati etc).
Se sbagliano semplicemente non vedono le azioni degli altri, chiaro se qualcuno usa il tag "LKJNSDLSäPöLD£öDLïlHED*UOz890" sono affari suoi se nessuno riesce a usare il codice XD
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Seconda Era ↗
Cafuné ↗
Fallen Gods ↗