[RISOLTO] GDRCD 5.5.1 Tre "piccoli" problemi
[RISOLTO] GDRCD 5.5.1 Tre "piccoli" problemi postato il 26/06/2021 10:48:46 nel forum programmazione, open source e hosting e modificato da alejandra il 01/07/2021 09:14:33
Salve, premetto che non sono una programmatrice e avrei bisogno di direttive chiare come se fossi tonta.
Problema 1 ) Errore al Cambio Nome:
Parse error: syntax error, unexpected '}' in /membri/ostrov/pages/user_cambio_nome.inc.php on line 71
Sono andata a vedere la riga che mi dice ma non so cosa non vada ^^"
71 <?php
72 if($_SESSION['permessi'] == SUPERUSER) {
Problema 2) da gestore, provo a cancellare un account ma non mi considera minimamente nonostante il sito mi dica "modifica eseguita" il pg rimane tranquillamente anche in anagrafe.
Problema 3) Una volta iscritto un personaggio nuovo questo non riesce ad effettuare il login ne con la password mandata ne con il recupero password dando "personaggio o password non riconusciuti"
Grazie a tuttǝ
Pagine → 1
26/06/2021 11:34:25
alejandra ha scritto: ...
> Problema cambio nome
Prova a correggere la linea di codice prima di quella evidenziata, che dovrebbe essere cosi:
<?php} else {
Mettila così:
<?php } else {
La mancanza dello spazio, non codifica bene la chiusura della parentesi e quindi manda in errore la pagina.
Sarebbe da aggiornare su GDRCD, come BUG.
> Problema cambio nome
Per quanto riguarda la pagina user_cancella_pg.inc.php, purtroppo ho individuato diverse problematiche di base. I MODERATOR è giusto che disabilitino gli account, senza cancellarli, mentre i SUPERUSER dovrebbero proprio cancellarli. Ho applicato una modifica che allinei con questa logica.
Devi sostituire questo:
*Cancella altri*/
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == MODERATOR)) {
gdrcd_query("UPDATE personaggio SET permessi = -1 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."' AND permessi < ".SUPERUSER."");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'".gdrcd_filter('in', $MESSAGE['interface']['user']['delete']['deleted'])."')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
/*Cambio pass utenti*/
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("UPDATE personaggio SET permessi = -1 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'->')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
/*Cambio pass utenti*/
if((gdrcd_filter('get', $_POST['op']) == 'get_back') && ($_SESSION['permessi'] >= MODERATOR)) {
gdrcd_query("UPDATE personaggio SET permessi = 0 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'<-')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
Con questo:
/*Cancella altri - MODERATORE (Disabilita account)*/
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == MODERATOR)) {
gdrcd_query("UPDATE personaggio SET permessi = -1 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."' AND permessi < ".SUPERUSER."");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'".gdrcd_filter('in', $MESSAGE['interface']['user']['delete']['deleted'])."')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
/*Cancella altri - SUPERUSER (Cancella account) */
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("DELETE FROM personaggio WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'->')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
/*Ripristina account*/
if((gdrcd_filter('get', $_POST['op']) == 'get_back') && ($_SESSION['permessi'] >= MODERATOR)) {
gdrcd_query("UPDATE personaggio SET permessi = 0 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".gdrcd_filter('in', $_POST['account'])."','".$_SESSION['login']."', NOW(), ".DELETEPG." ,'<-')");
?>
<div class="warning">
<?php echo gdrcd_filter('out', $MESSAGE['warning']['modified']); ?>
</div>
<div class="link_back">
<a href="main.php?page=user_cancella_pg">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['user']['link']['back']); ?>
</a>
</div>
<?php }
Kasa.
Ho provato a correggerle, aggiornando anche i commenti.
26/06/2021 11:52:35
kasa ha scritto: [quote]alejandra ha scritto: ...
Intanto GRAZIE mi hai risolto non pochi dilemmi.
Il cambio nome funziona, il cancella account funziona alla grande.
Unico problema è che, se faccio il cambio pass a un account, quando faccio il login non lo fa accedere e mi dice fallimento
26/06/2021 12:07:51
alejandra ha scritto:
Unico problema è che, se faccio il cambio pass a un account, quando faccio il login non lo fa accedere e mi dice fallimento
Strano.
Ho effettuato diverse verifiche con la versione vanilla di GDRCD#5.5.1 e non ho riscontrato problemi. Hai la certezza di aver comunicato la giusta password all'utente? Compresa anche di lettere in maiuscolo e via dicendo? La nuova password conteneva caratteri speciali?
Kasa.
26/06/2021 13:38:05
Ho notato che in alcuni casi il sistema inserisce uno spazio dopo la casella email e/o dopo la password ed è quello che da problemi. Almeno, tutte le volte che un utente da noi ha cercato di recuperare la pass, senza riuscire, era perché poi controllando la sua email, c'era uno spazio alla fine che dava fastidio.
Non so se questo ti può essere d'aiuto.
26/06/2021 15:58:36
kasa ha scritto:
Strano.
Ho effettuato diverse verifiche con la versione vanilla di GDRCD#5.5.1 e non ho riscontrato problemi. Hai la certezza di aver comunicato la giusta password all'utente? Compresa anche di lettere in maiuscolo e via dicendo? La nuova password conteneva caratteri speciali?
Kasa.
Risolto questo punto però adesso il cambio password eseguito dall'utente non funziona.
Quando inserisce la mail di registrazione e poi la nuova pass, da "impossibile eseguire"
Io continuo a ringraziarvi per la pazienza e i consigli <3
27/06/2021 21:12:48
alejandra ha scritto: ...
L'errore deriva da un BUG presente su GDRCD#5.5.1.
Con le ultime modifiche applicate al metodo di iscrizione, oltre alla password, viene criptata anche l'email dell'utente, probabilmente per tenere l'engine in linea con le ultime disposizioni GDPR. Tuttavia, il modulo pages/user_cambio_pass.inc non è stato allineato con questo aggiornamento ed è rimasto indietro sulla verifica dell'email.
Per correggere, sostituire questa linea:
if(($email == gdrcd_filter_email($_POST['email'])) && (gdrcd_check_pass($_POST['new_pass']) === true)) {
Con questa:
if((gdrcd_password_check(gdrcd_filter_email($_POST['email']),$email)) && (gdrcd_check_pass($_POST['new_pass']) === true)) {
Dovrebbe tornare a funzionare.
Kasa.
27/06/2021 22:17:18
[b]kasa ha scritto:
Dovrebbe tornare a funzionare.
Kasa.
Io ti devo di sicuro almeno una bevuta. Se passi dalle parti di Livorno avvisami *_* che un grazie come minimo te lo devo.
27/06/2021 22:45:43
alejandra ha scritto:
Io ti devo di sicuro almeno una bevuta. Se passi dalle parti di Livorno avvisami *_* che un grazie come minimo te lo devo.
Figurati!
Non serve alcuna bevuta, si tratta alla fine di meri BUG.
Ricordati di segnalre il thread come risolto, in modo che se un giorno ci saranno altre persone che riscontrano lo stesso problema, glielo si può inoltrare.
Per il resto,
Buon Gioco!
Kasa.
01/07/2021 11:35:54
WARNING!
Effettuando qualche verifica sul funzionamento delle operazioni di manutenzione assieme a @staff shadowland, qui riassunte https://www.gdr-online.com/readforum.asp?id=241471 ↗, ho notato che la disattivazione degli account prevista in Menu Utente > Cancella account è corretta, anche in caso di SUPERUSER.
Di fatto, gli account non vengono cancellati, come spiegavo, ma disattivati. Una volta disattivati, per completare la cancellazione occorre andare in Gestione > Manutenzione e quindi effettuare l'operazione Elimina i personaggi provvisoriamente cancellati.
In questo modo, oltre che a confermare la cancellazione degli account (che non appariranno nemmeno più in Anagrafe, si andranno ad eliminare i messaggi e i log, evitando anomalie.
Se si effettua la cancellazione diretta, come avevo suggerito erroneamente, non sarà più possibile cancellare messaggi e log, salvo ovviamente aggiungere ulteriori query nel processo in Manutenzione.
Pertanto, chiunque ha applicato la mia modifica, lo invito a sostituire in user_cancella_pg.inc.php la riga:
/*Cancella altri - SUPERUSER (Cancella account) */
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("DELETE FROM personaggio WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
Con:
/*Cancella altri - SUPERUSER (Disattiva account) */
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("UPDATE personaggio SET permessi = -1 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
In questo modo, il processo tornerà ad essere corretto e si potrà effettuare una cancellazione più accurata del Personaggio tramite Gestione > Manutenzione.
Chiedo venia per la svista.
Kasa.
30/07/2021 18:37:48
kasa ha scritto: WARNING!
Effettuando qualche verifica sul funzionamento delle operazioni di manutenzione assieme a @staff shadowland, qui riassunte https://www.gdr-online.com/readforum.asp?id=241471 ↗, ho notato che la disattivazione degli account prevista in Menu Utente > Cancella account è corretta, anche in caso di SUPERUSER.
Di fatto, gli account non vengono cancellati, come spiegavo, ma disattivati. Una volta disattivati, per completare la cancellazione occorre andare in Gestione > Manutenzione e quindi effettuare l'operazione Elimina i personaggi provvisoriamente cancellati.
In questo modo, oltre che a confermare la cancellazione degli account (che non appariranno nemmeno più in Anagrafe, si andranno ad eliminare i messaggi e i log, evitando anomalie.
Se si effettua la cancellazione diretta, come avevo suggerito erroneamente, non sarà più possibile cancellare messaggi e log, salvo ovviamente aggiungere ulteriori query nel processo in Manutenzione.
Pertanto, chiunque ha applicato la mia modifica, lo invito a sostituire in user_cancella_pg.inc.php la riga:
/*Cancella altri - SUPERUSER (Cancella account) */
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("DELETE FROM personaggio WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
Con:
/*Cancella altri - SUPERUSER (Disattiva account) */
if((gdrcd_filter('get', $_POST['op']) == 'force') && ($_SESSION['permessi'] == SUPERUSER)) {
gdrcd_query("UPDATE personaggio SET permessi = -1 WHERE nome = '".gdrcd_filter('in', $_POST['account'])."'");
In questo modo, il processo tornerà ad essere corretto e si potrà effettuare una cancellazione più accurata del Personaggio tramite Gestione > Manutenzione.
Chiedo venia per la svista.
Kasa.
Mi scuso per il ritardo nel rispondere ma ero nel periodo esame. Comunque funziona tutto a dovere con la nuova correzione. Grazie ancora
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Foundation Galactic Frontier ↗
Wuthering Waves ↗
Storie di Agarthi ↗
Seconda Era ↗
AlterEgo ↗
Raja Dunia ↗
Enlisted ↗
New Orleans ↗
State of Survival ↗