• Home
  • Forum
  • Fare Web
  • PHP

Ruoli utenti - problema

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio 10 Apr 2012
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 11 Apr 2012
  • #21
ancora un problema ....

perché ricevo un pagina bianca invece di stampare i vari messaggi ai vari ruoli?

La pagina che sta in index.php con array 1,2 funziona normale e solo questa pagina nuova che dovrebbe essere vista dalla parte degli utenti registrati etc..

questo è il var_dump: string(1) "3"
ti incollo il codice:
PHP:
<?php
session_start();
// qui usavi isset() che sarà sempre TRUE, dunque permetteva l'accesso a tutti
// inoltre usiamo in_array() con controllo di uguaglianza di tipo strict (===)

if (!isset($_SESSION['user_level']) || !in_array((int)$_SESSION['user_level'], array(1, 2, 3), true)) {  
  
	$level = isset($_SESSION['user_level']) ? (int)$_SESSION['user_level'] : false;  
	
	
	switch ($level) {  
    case 1:
        // messaggio per ruolo 1
		$login_msg = "Salve, Admin andare nella pagina dove inserire qualcosa <a href=\"admin\">entra</a>";

        break;
    case 2:
        // messaggio per ruolo 2
		$login_msg = "Salve, Moderatore poi andare nella pagina dove inserire qualcosa <a href=\"admin\">entra</a>";
		break; 
    case 3:
        $login_msg = "Salve, utente poi andare nella pagina guestbook";
		break;


   case false:
         $login_msg = "Non hai acceso ad accedere in questa area.. fai i login <a href=\"login.php\">Login</a>";
        break;
	}  
}

if(isset($login_error)){ echo $login_error;}
if(isset($login_msg)){ echo $login_msg;} else {

}
?>

come mai??

la login_msg .. fa sparire tutto e scrive i messaggi dei ruoli..

ma mi da pagina bianca.. e non so come mai..

idee?

grazie mille.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 11 Apr 2012
  • #22
Ma scusa, io non capisco dove valorizzi la variabile $login_error?
E perché non usi un die() come ho fatto io, che è molto più semplice?
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 11 Apr 2012
  • #23
alessandro1997 ha scritto:
Ma scusa, io non capisco dove valorizzi la variabile $login_error?
E perché non usi un die() come ho fatto io, che è molto più semplice?
Clicca per allargare...

ciao la login_error serve per quando voglio stampare l'errore sopra ad ogni cosa..
invece la login_msg .. stampa al posto dove c'è le cose.. (funziona all'incotraio della login_error),

comunque è vero che basta che levo il !in_array e metto in_array? levo il questo simbolo: !

e giusto?

grazie mille.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 11 Apr 2012
  • #24
scusa... ma perché die mi sembra che taglia la parte in basso del mio cms..ecco perché stampo le variabile ..

grazie mille.

aspetto risposta.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Apr 2012
  • #25
Se togli il punto esclamativo davanti a in_array l'errore verrà (teoricamente) mostrato agli utenti autorizzati, e non credo sia quello che stai cercando.
Inoltre non ho ben capito qual è il tuo problema attuale. Puoi rispiegare cercando di essere più chiaro?
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #26
ciao, il probelama e quello che non facceva apparire i messaggi ai diversi ruoli degli utenti..

ma apre una pagina bianca..senza dare dei messagi..ai ruoli diversi.

come mai?

grazie mille.
aspetto risposta.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Apr 2012
  • #27
Vuol dire che il ruolo non è né 1, né 2, né 3, né false... Strano. Prova ad aggiungere:
PHP:
$level = isset($_SESSION['user_level']) ? (int)$_SESSION['user_level'] : false;
var_dump($level);
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #28
alessandro1997 ha scritto:
Vuol dire che il ruolo non è né 1, né 2, né 3, né false... Strano. Prova ad aggiungere:
PHP:
$level = isset($_SESSION['user_level']) ? (int)$_SESSION['user_level'] : false;
var_dump($level);
Clicca per allargare...

ho fatto ... ma pagina bianca..e non mi da nemmeno il vardump. e nenanche nel sorgente html..

però ho notato se toglio il simbolo ! .. allora fa i messaggi a modo..

come mai?

ma questo ! che significato ha?

perché se lo levo funziona e se lo metto da pagina bianca.

come mai?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Apr 2012
  • #29
È strano, questa condizione:
PHP:
if (!isset($_SESSION['user_level']) || !in_array((int)$_SESSION['user_level'], array(1, 2, 3), true)) {
Va letta come segue:
Se la variabile di sessione user_level non è settata, o il suo valore convertito ad intero non fa parte dell'array (1, 2, 3), allora esegui le seguenti istruzioni.
Clicca per allargare...
Non è questo quello che devi ottenere?
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #30
ciao, ho notato anche cosi.. la condizione funziona:
PHP:
if (!isset($_SESSION['user_level']) || !in_array((int)$_SESSION['user_level'],array(0), true)) {

quindi ??

Scusa, ma non ci capisco più nulla.

in poche parole devo fare entrare tutti gli utenti registrati e verificare chi è l'amministratore e moderatore e l'utente semplice..
tutto qui..

ma non ci sto capendo più nulla...

mi dici come fare?

grazie mille.
buona serata.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Apr 2012
  • #31
Stai confondendo anche me... Comunque, prova in quest'altro modo: crea un file in cui inserirai questa funzione:
PHP:
function getRoleMessage()
{
    if (!isset($_SESSION)) {
        session_start();
    }
    
    if (!isset($_SESSION['user_level'])) {
        $message = 'Devi effettuare il login.';
    }

    switch ((int)$_SESSION['user_level']) {
        case 1:
            // il ruolo è 1
            break;

        case 2:
            // il ruolo è 2
            break;

        case 3:
            // il ruolo è 3
            break;

        default:
            // il ruolo non è né 1, né 2, né 3
    }

    return isset($message) ? $message : true;
}
Quindi includi il file dove ti serve e usa così la funzione:
PHP:
$login_msg = getRoleMessage();

if ($login_msg !== true) {
    echo $login_msg;
} else {
    // ...
}
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #32
ok, ora cosi funziona solo che quando non c'è la sessione da un messaggio che non è definita la variabile che sta qui:
PHP:
  switch ((int)$_SESSION['user_level']) {

mi dici come rimediare questo notice.?


ti ringrazio ...molto
buona serata.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #33
alessandro1997 ha scritto:
Stai confondendo anche me... Comunque, prova in quest'altro modo: crea un file in cui inserirai questa funzione:
PHP:
function getRoleMessage()
{
    if (!isset($_SESSION)) {
        session_start();
    }
    
    if (!isset($_SESSION['user_level'])) {
        $message = 'Devi effettuare il login.';
    }

    switch ((int)$_SESSION['user_level']) {
        case 1:
            // il ruolo è 1
            break;

        case 2:
            // il ruolo è 2
            break;

        case 3:
            // il ruolo è 3
            break;

        default:
            // il ruolo non è né 1, né 2, né 3
    }

    return isset($message) ? $message : true;
}
Quindi includi il file dove ti serve e usa così la funzione:
PHP:
$login_msg = getRoleMessage();

if ($login_msg !== true) {
    echo $login_msg;
} else {
    // ...
}
Clicca per allargare...

scusa, molto ma lo devo mettere sotto ad quello che abbiamo già scritto :
cosi:
PHP:
<?php

// qui usavi isset() che sarà sempre TRUE, dunque permetteva l'accesso a tutti
// inoltre usiamo in_array() con controllo di uguaglianza di tipo strict (===)

if (!isset($_SESSION['user_level']) || !in_array((int)$_SESSION['user_level'], array(1,2,3), true)) {  
	
	
	 
}

$login_msg = getRoleMessage();

if ($login_msg !== true) {
    echo $login_msg;
} else {
    // ...
}  
?>

grazie mille. però cosi funziona e stampa i messaggi..

dimmi se va bene.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 12 Apr 2012
  • #34
booooooo.. io non sto capendo più nulla....

riformuliamo la domanda..

devo fare un area riservata e qui ok... e la parte admin l'abbiamo risolta...ed entrano solo ruolo 1 e ruolo 2..

ma non bastava aggiungere all'array il numero 3 ,

invece di fare questo mega casino?

fermiamoci un'attimo e poi ragiono come fare.. e ne riparliamo quando ho le idee chiare..

ma io dico non bastava fare solo 1,2,3 ? come devono essere?

vedi pagina: del simbolo:
http://www.allwebfree.it/php_operatori.php#operatorilogici

quindi?

grazie mille.
buona serata.
 
Ultima modifica: 12 Apr 2012

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Apr 2012
  • #35
Dunque, una cosa per volta. L'errore nella funzione lo puoi correggere così:
PHP:
if (!isset($_SESSION['user_level'])) { 
    return 'Devi effettuare il login.'; 
}
L'if a questo punto lo puoi anche togliere.

Nell'array il numero 3 già c'è... non capisco.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 13 Apr 2012
  • #36
ciao. mi è riuscito cosi:

code:
user.php
PHP:
<?php
session_start();
if (!isset($_SESSION['user_level']) || !in_array((int)$_SESSION['user_level'], array(1, 2,3), true)) {  
    
	echo "<h2>Non sei entrato fare i login</h2>";
	
} else
{
$login_msg = getRoleMessage();
    echo $login_msg;
	echo "<h2>Prova</h2>";
}
?>

tua funzione che ho dovuto tolgiere qualche pezzo di codice..

PHP:
function getRoleMessage()
{
   $level = isset($_SESSION['user_level']) ? (int)$_SESSION['user_level'] : false; 
	switch ($level) {
    //switch ((int)$_SESSION['user_level']) {
        case 1:
            // il ruolo è 1
			$message =  "Benvenuto amministrarore".$_SESSION["name"].", poi andare in <a href=\"admin\">Admin</a>";
            break;

        case 2:
            // il ruolo è 2
			$message =  "Benvenuto Moderatore".$_SESSION["name"].", poi andare in <a href=\"admin\">Admin</a>";
            break;

        case 3:
            // il ruolo è 3
			$message =  "Benvenuto utente: ".$_SESSION["name"]."";
            break;

        default:
            // il ruolo non è né 1, né 2, né 3
    }

    return isset($message) ? $message : true;
}

e cosi funziona.. e posso far apparire quello che è nascoto dagli utenti non registrati al sito..

e in più posso inseire altri ruoli nell'array e funziona.. al meno spero poi dimmi tu.

per ora cosi avendo solo 3 ruoli inseriti nell'archvio funziona tutto normalmente.. ho anche inserito un quarto ruolo nullo che non è chiamato da nessuna parte e
quello non entra da nessuna parte...perché il sistema ne vede solo 3..

e qui funziona al meno per me e per te non saprei se è cosi..

ti ringrazio mi poi controllare se ho scritto bene..?

grazie mille.
buona serata.
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

ruoli e gruppi sito wordpress
  • renoir09
  • 8 Nov 2013
  • WordPress
Risposte
0
Visite
2K
WordPress 8 Nov 2013
renoir09
L
funzione per ruoli..
  • luigi777
  • 17 Mag 2012
  • PHP
Risposte
11
Visite
2K
PHP 18 Mag 2012
luigi777
L
L
Sessioni e ruoli di utenza
  • luigi777
  • 5 Mar 2011
  • PHP
Risposte
4
Visite
1K
PHP 5 Mar 2011
luigi777
L
Parere di altri utenti
  • tekinside
  • 4 Dic 2023
  • Webdesign e Grafica
Risposte
1
Visite
5K
Webdesign e Grafica 24 Apr 2024
nicholasmancini
I
visualizzare lista utenti registrati
  • Imperor
  • 13 Nov 2023
  • PHP
Risposte
1
Visite
1K
PHP 15 Nov 2023
Imperor
I
Proteggere file caricati dall'esterno ma renderli accessibili per gli utenti loggati.
  • otto9due
  • 9 Feb 2022
  • PHP
Risposte
4
Visite
1K
PHP 29 Apr 2022
thanatos
T
L
Sessione e array per utenti
  • luigi777
  • 22 Apr 2021
  • PHP
Risposte
0
Visite
801
PHP 22 Apr 2021
luigi777
L
T
Modificare ruolo utenti in fase di registrazione
  • Tino85
  • 15 Lug 2020
  • E-Commerce
Risposte
0
Visite
2K
E-Commerce 15 Lug 2020
Tino85
T
C
Saluti a tutti gli utenti del Forum
  • Consulenze.instagram
  • 12 Mag 2020
  • Presentati al Forum
Risposte
0
Visite
765
Presentati al Forum 12 Mag 2020
Consulenze.instagram
C
M
Cerco profilo instagram (Utenti reali)
  • Mearoundh
  • 11 Dic 2019
  • Altri Annunci
Risposte
1
Visite
1K
Altri Annunci 3 Gen 2020
Francescotr
F
F
[PHP] Reindirizzare utenti alla propria area personale
  • Frozzen
  • 22 Nov 2019
  • PHP
Risposte
1
Visite
1K
PHP 23 Nov 2019
Frozzen
F
M
[PHP] Come gestire gli utenti online
  • Marcolino92
  • 28 Mag 2019
  • PHP
Risposte
9
Visite
2K
PHP 29 Mag 2019
macus_adi
F
Posizionamento google 1# + nuovi utenti organici.
  • FilippoBusiness
  • 28 Feb 2019
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
1K
Annunci servizi di Social Media Marketing 28 Feb 2019
FilippoBusiness
F
B
Acquisto Gruppo facebook almeno 500 utenti iscritti
  • Bahammut
  • 25 Feb 2019
  • Annunci servizi di Social Media Marketing
Risposte
4
Visite
2K
Annunci servizi di Social Media Marketing 26 Feb 2019
turituri
T
L
Vendo Gruppo Facebook con 18MILA utenti attivi
  • LuisBirsa
  • 4 Feb 2019
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
2K
Annunci servizi di Social Media Marketing 4 Feb 2019
LuisBirsa
L
attenzione utenti aruba
  • borgo italia
  • 18 Ott 2018
  • Discussioni Varie
Risposte
0
Visite
1K
Discussioni Varie 18 Ott 2018
borgo italia
S
[COMPRO] Pagina Instagram con utenti attivi e italiani
  • SimonSays
  • 25 Ago 2018
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
906
Annunci servizi di Social Media Marketing 25 Ago 2018
SimonSays
S
A
Vendo gruppi con più di 70K utenti italiani a solo 100 euro
  • Adrian maiuru
  • 19 Mag 2018
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
1K
Annunci servizi di Social Media Marketing 19 Mag 2018
Adrian maiuru
A
avviso agli utenti Aruba
  • borgo italia
  • 18 Apr 2018
  • Discussioni Varie
Risposte
0
Visite
1K
Discussioni Varie 18 Apr 2018
borgo italia
P
[Vendo] incremento gruppi fb, fino a 10'000 utenti per singolo gruppo
  • Personaseria
  • 23 Mar 2018
  • Annunci servizi di Social Media Marketing
Risposte
0
Visite
1K
Annunci servizi di Social Media Marketing 23 Mar 2018
Personaseria
P
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?