Accessi bacheche riservate
Accessi bacheche riservate postato il 31/08/2009 18:55:35 nel forum programmazione, open source e hosting
Salve a tutti!
Ennesimo problema con il codice: a quanto pare, nel pacchetto Extreme, l'accesso ad eventuali bacheche per i capi corporazione è legato al simboletto di master di corporazione.
Poichè in questo modo non avrebbero accesso alla bacheca eventuali master fato che siano anche master c e, viceversa, avrebbero l'accesso i vice capi corporazione che avessero il masterato corporativo, ho provato a cambiare l'impostazione legandola ad un nuovo campo inserito nella tabella personaggio.
Qui casca l'asino: pare che io non riesca a legare questo campo ai controlli condizionali nel file bacheca.php, tant'è che se al posto di:
If ((($Capo==1) && ($Master_Araldo != 1)) && ($_SESSION['Master'] != 2))
{
echo '<font color=white>Sezione riservata agli Alti Rappresentanti!</font><br><br>';
echo '<a href="araldo.php"><font color=white>Torna alla bacheca</font></a>';
exit();
inserisco:
If ((($Capo==1) && ($CC_Araldo != 1)) && ($_SESSION['CC'] != 1))
{
echo '<font color=white>Sezione riservata agli Alti Rappresentanti!</font><br><br>';
echo '<a href="araldo.php"><font color=white>Torna alla bacheca</font></a>';
exit();
dove "CC" è il campo da me inserito nella tabella dei personaggi e "CC_Araldo" è stato precedentemente aggiunto nel codice nell'elenco dei campi da annoverare nei controlli, inserendo la stringa:
$CC_Araldo = $rs['CC'];
non accade praticamente nulla. Se invece rimuovo ($Capo==1), la bacheca viene visualizzata da tutti.
Qualcuno sa dirmi cosa sbaglio?
Grazie in anticipo.
Pagine → 1
31/08/2009 19:23:08 e modificato da blancks il 31/08/2009 19:24:41
Prova a spiegare un secondo su due piedi la logica dei dati da te preparati.
Tipo cosa dovrebbe significare se un pg ha CC o CC_Araldo su 1 :s
edit: per come l'hai impostato ora, se un pg ha $capo = 1, CC e CC_araldo diversi da 1 non passa, altrimenti se uno qualsiasi di questi confronti è falso passa, quindi con capo = 1 e CC = 1 un pg ipotetico passa
31/08/2009 20:22:04 e modificato da chesterfieldred il 31/08/2009 20:43:11
Che mentre prima il controllo era impostato su Master_Araldo, adesso il controllo è impostato su CC_Araldo, e come prima se il pg aveva Master=2 (perchè Master=1 sarebbe il master fato, mentre il 2 è il Master corporativo, per com'è impostato su Extreme) poteva accedere alla bacheca, così adesso si presume che il pg con CC=1 abbia accesso alla bacheca... tuttavia non funge :p
CC_Araldo non è la stessa cosa di CC. CC è il campo dei pg, CC_Araldo è il campo della bacheca. Quindi se la bacheca ha CC_Araldo=1 ed il pg ha CC<1, non dovrebbe poter entrare.
31/08/2009 22:51:32
chesterfieldred ha scritto: Che mentre prima il controllo era impostato su Master_Araldo, adesso il controllo è impostato su CC_Araldo, e come prima se il pg aveva Master=2 (perchè Master=1 sarebbe il master fato, mentre il 2 è il Master corporativo, per com'è impostato su Extreme) poteva accedere alla bacheca, così adesso si presume che il pg con CC=1 abbia accesso alla bacheca... tuttavia non funge :p
CC_Araldo non è la stessa cosa di CC. CC è il campo dei pg, CC_Araldo è il campo della bacheca. Quindi se la bacheca ha CC_Araldo=1 ed il pg ha CC<1, non dovrebbe poter entrare.
Considera che, attualmente il CC_Araldo influenza direttamente il controllo e quindi se sei un una bacheca con il CC_Araldo su 0 ti butterà sempre fuori, indipendentemente da chi sei.
quindi
if ($Capo && ($CC_Araldo && $_SESSION['CC']))
In sostanza, gli ho detto di controllare prima se CC Araldo è 1 e session CC vale altrettanto, se è così e Capo vale anch'esso 1 si ha accesso alla bacheca.
Se invece nella tua ideologia delle cose, il pg col parametro capo = 1 passa indipendentemente dal controllo del cc, allora invece di un and devi mettere un or:
if ($Capo || ($CC_Araldo && $_SESSION['CC']))
altrimenti se ho capito male reistruiscimi perpiacere xD
31/08/2009 23:35:20
Ma se fosse come dici tu, dovrebbe buttarmi fuori da qualsiasi bacheca che non ha CC_Araldo=1. Tutto ciò non accade, poichè quell'if non significa che non si può accedere ad alcuna bacheca che ha CC_Araldo diverso da 1, bensì che se il campo CC_Araldo della bacheca è uguale ad uno, allora tutti coloro che non hanno il campo CC uguale ad 1 vengono sbattuti fuori.
Sempre se è ciò che intendevi tu...
Perdonami se dovessi aver capito male il tuo discorso xD
01/09/2009 12:19:08 e modificato da spongebobtheking il 01/09/2009 12:19:51
scusa ma per avere l'accesso si deve avere 0 o 1? perché tu hai vietato l'accesso a chi a 1 ò.ò u.u e comunque non potresti mettere OR invece che l'&& ò.ò così poi puoi dare accesso in qualsiasi momento a qualsiasi utente a seconda che tu lo voglia o no ò.ò, cioè a mio parere è meno complicato xD
01/09/2009 14:21:33
La mia intenzione era di vietare l'accesso a chi non ha 1.
Anche io non mi capacito del perchè di quel !=1, però per la bacheca master funziona :p
Ho usato quel tipo di sintassi per il semplice motivo che era la stessa utilizzata da Faber per la bacheca master, per l'appunto, copiandola pari pari per ciò che interessava a me.
Comunque non funziona manco nell'altra maniera... le ho provate tutte.
01/09/2009 15:41:26
non conosco molto bene extreme, quindi non so cosa rappresentano le variabili coinvolte, comunque se il tuo if non va c'è qualcosa nella logica che fallisce.
ti consiglierei di mettere un bell'echo prima dell'if dove far stampare i valori che richiami nel controllo, tipo:
echo "$Capo: ".$Capo." - $CC_Araldo: ".$CC_Araldo." - CC: ".$_SESSION['CC'];
così puoi avere un riscontro diretto di cosa succede, di come viene interpretato il tuo if e aggiustare le condizioni di conseguenza.
01/09/2009 21:25:18
Posto la soluzione del dilemma per chi volesse avvantaggiarsene :p
Alla fine non sono comunque riuscita a comprendere come mai il campo CC inserito nel personaggio non funzionasse, ma ho risolto in altro modo.
If (($CC_Araldo==1) && ((((0 + $IDGilda_S) % 100) != 0) || (0 + $IDGilda_S == 0)))
{
echo '<font color=white>Sezione riservata ai Capi Corporazione!</font><br><br>';
echo '<a href="araldo.php"><font color=white>Torna alla bacheca</font></a>';
exit();
}
Senza dimenticare naturalmente di inserire precedentemente nel file, fra le altre stringhe simili:
$CC_Araldo = $rs['CC'];
.Si ringrazia Blanks per l'aiuto ed anche gli altri che hanno risposto al thread :p
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!
Exclusive Villa GdR ↗
World of Warship ↗
Fallen Gods ↗
Hero Wars ↗
Seconda Era ↗
Cafuné ↗