Back to top

Autore Topic: impostare utente da codice  (Letto 9416 volte)

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
impostare utente da codice
« il: 10 Apr 2013, 11:20:08 »
a parte l'effettiva utilità della cosa....   ;D
ha senso il seguente codice ?

vorrei che quando si arriva al sito come guest venga impostato di default un utente

Codice: [Seleziona]
<?php 
$user 
=& JFactory::getUser(); 
if (
$user->guest

$user == nomeutente;
}  
?>

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #1 il: 10 Apr 2013, 11:23:39 »
che senso ha? Tanto vale rendere pubblico il materiale in questione!

Comunque in questo modo stai solo caricando una variabile locale e non stai dicendo al sistema che d'ora in poi a quel computer ci sarà quell'utente.. Sintatticamente è giusto ma semanticamente a meno che tu non voglia solo stampare il valore della variabile utente all'interno della pagina stessa non ha alcun senso e nessuna utilità
« Ultima modifica: 10 Apr 2013, 11:25:25 da giovi »

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #2 il: 10 Apr 2013, 11:30:41 »
e come posso fare a impostargli un utente?

in realtà è un url che verrà visualizzato su un totem con un secondo  template non visibile dalla navigazione normale che però deve visualizzare delle informazioni nascoste ai guest

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #3 il: 10 Apr 2013, 11:57:09 »
non puoi impostare un utente con questo metodo bruto, ne andrebbe della sicurezza dell'intero sistema.
Joomla gestisce in maniera molto delicata le sessioni e non consente di settare l'utente se non tramite il login.


Trova un altro metodo per realizzare ciò che cerchi (token, ecc..) ma lascia stare i poveri utenti!

:)

ps: ma poi scusami se tu vuoi nascondere la pagina ai guest e poi metti un controllo di quel genere che fa diventare un guest un utente registrato che beneficio ne hai?? Tutti i guest sono guest e tutti i guest vedranno quel contenuto!
« Ultima modifica: 10 Apr 2013, 11:58:41 da giovi »

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #4 il: 10 Apr 2013, 12:10:14 »
la normale navigazione (template1) non ha nessuna modifica e i guest non vedono  dei contenuti.

... accedendo ad un determinato url al quale ho associato il template2 (quello in cui stavo mettendo quel codice) anche i guest vedono tutto

questo secondo url verrà bloccato del robot.txt per non essere indicizzato, e verrà visualizzato in un totem in azienda.

mi parlavi di metodi alternativi... (token, ecc)  di che si tratta?!?!  :-[

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #5 il: 10 Apr 2013, 12:15:51 »
... accedendo ad un determinato url al quale ho associato il template2 (quello in cui stavo mettendo quel codice) anche i guest vedono tutto
questo secondo url verrà bloccato del robot.txt per non essere indicizzato, e verrà visualizzato in un totem in azienda.
---------------------------------------------
E così risolvi il problema di non pubblicizzare il contenuto per mezzo dei motori di ricerca ma non hai risolto il problema dell'accesso...


mi parlavi di metodi alternativi... (token, ecc)  di che si tratta?!?!  :-[
-----------------------------------------------
Un qualunque altro metodo di riconoscimento dell'utente che non richieda l'accesso tramite autenticazione. Ricorda che joomla è un cms, serve a gestire siti dinamici, non totem! Questo totem potrebbe essere lui stesso ad accedere ai contenuti di joomla e non joomla a fornirglieli (ad esempio il totem legge xml generato da joomla e lo interpreta a modo suo), oppure sul totem si dovrebbe trovare un cookie che joomla cerca e se lo trova mostra il contenuto, oppure il totem dovrebbe avere un ip specifico, ecc.... una qualunque cosa, ma la gestione utenti lasciala agli utenti.


Con il controllo che hai inserito prima stai semplicemente dicendo se l'utente non è autenticato autenticalo tu... non ti sembra un po una caciuccata?? :) E' come dire se ladro vuole entrare in casa e non ha la chiave spalancagli tu il cancello!
Così i ladri non lo sanno che la porta si aprirà quando si avvicineranno, ma quando lo faranno magari con altri intenti, magari anche non nocivi, entreranno comunque senza problemi. E' sicurezza questa?
« Ultima modifica: 10 Apr 2013, 12:17:22 da giovi »

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #6 il: 10 Apr 2013, 12:23:05 »
ok... lasciamo a joomla gli utenti...   ;D

il totem serve solo per visualizzare il sito ai visitatori in azienda... facendogli vedere tutti i contenuti 
avendo un ip fisso come potrei procedere?  :'(



Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #7 il: 10 Apr 2013, 12:40:04 »
claudio ti voglio venire incontro ma se non sei pratico di codice php o non sei in grado idi fare una semplice ricerca su google, difficilmente potrai portare a termine il lavoro in autonomia perché ad ogni minimo ostacolo ti troverai a dover chiedere aiuto ed aspettando che cada una risposta dal cielo...


Php mette a disposizione numerose funzioni e variabili tra cui quella che ti consente di ottenere l'ip del server. Confronta l'ip del visitatore con quello del totem ed in caso siano uguali mostri la pagina, altrimenti no. Un pc con lo stesso ip (quindi nella stessa rete locale) può visualizzare comunque la pagina.


https://www.google.it/search?q=ipd+del+visitatore+con+php

mau_develop

  • Visitatore
Re:impostare utente da codice
« Risposta #8 il: 10 Apr 2013, 12:47:50 »
mmmhh se hai un ip statico sì...

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #9 il: 10 Apr 2013, 12:55:26 »
sorry ...credevo ci fosse un qualche plugin...

quindi dici di fare un
Codice: [Seleziona]
<?php
$ip 
$_SERVER['REMOTE_ADDR'];
if (
$ip==192.168.xxx.xxx){
mostra tutto
}
?>

...ora cerco come dargli il "mostratutto"

dato che i contenuti nascosti di cui sopra sono alcune parti di dati caricati con contentbuilder e nascosti come prima

Codice: [Seleziona]
<?php 
$user 
=& JFactory::getUser(); 
if (
$user->guest) { 
$value ="<a  href=\"index.php?option=com_users&view=login\"  >accedi</a>"
} else {
$value = ('&euro;&nbsp; ' .$value);
}  
?>

per il momento   ...grazie mille per la disponibilità. spero di non stressarti oltre  ;)

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #10 il: 10 Apr 2013, 13:54:31 »
sorry ...credevo ci fosse un qualche plugin...

------------------------------
no

quindi dici di fare un
<?php
$ip = $_SERVER['REMOTE_ADDR'];
if ($ip==192.168.xxx.xxx){
mostra tutto
}
?>
-------------------------------
no


if ($ip==192.168.xxx.xxx){
---------------------------------
NO!!!


dato che i contenuti nascosti di cui sopra sono alcune parti di dati caricati con contentbuilder e nascosti come prima
<?php
$user =& JFactory::getUser();
if ($user->guest) {
$value ="<a  href=\"index.php?option=com_users&view=login\"  >accedi";
} else {
$value = ('&euro;&nbsp; ' .$value);
}  ?>
------------------------------------
no


Relax! Devi solo scrivere all'inizio della pagina da proteggere un semplice
Codice: [Seleziona]
<?php if($_SERVER['REMOTE_ADDR']!="xxx.xxx.xxx.xxx") die; ?>
L'indirizzo ip sarà qualcosa come 765.344.2.33 ma mai e poi mai 192.168.x.x o 127.0.0.1 (quest'ultlimo appartiene ad un temibile hacker, non lo sapevi? :) )

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #11 il: 10 Apr 2013, 14:06:06 »
192.168.xxx.xxx   era per dire...  avrei messo l'ip completo!   :)

utile e semplice scriptino ma...
sul sito ho delle liste di prodotti che prendono i dati da un csv in contentbuilder...

normalmente i prezzi sono visibili solo per gli utenti loggati quindi avevo usato quello script per fare in modo che se non sei loggato venga fuori il link al login.  ..else si vede il prezzo

quindi non ho pagine intere nascoste agli utenti non loggati

quindi con il mio if sull'ip dovrei mostrare questi contenuti a tutti...  ...faccio qualche altra ricerca!



Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #12 il: 10 Apr 2013, 14:13:33 »
Allora il discorso diventa più complesso: per questo è bene che spieghi dettagliatamente qual'è il tuo preciso intento sin dall'inizio e quale dovrà essere il risultato finale!



Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #13 il: 10 Apr 2013, 14:34:07 »
provo a riepilogare.

-navigazione normale tmplA
-elenco prodotti con i dati importati con un csv in contenbuilder.
-solo gli utenti loggati vedono i prezzi

-navigazione totem tmplB
-stesso elenco prodotti
-tutti devono vedere i prezzi

quindi come logica...

if utente = guest > mostra il link alla login
else if utente = guest e ip= iptotem > mostra prezzo
else > mostra prezzo (che sarebbero i loggati)

ha senso?!?
pensavo di scriverlo così
Codice: [Seleziona]
<?php 
$user 
=& JFactory::getUser();
 if (
$user->guest) { 
$value ="<a  href=\"index.php?option=com_users&view=login\"  >accedi"
} else if(
$user->guest and $_SERVER['REMOTE_ADDR']=="192.168.mio.IP") { 
$value = ('&euro;&nbsp; ' .$value); 
} else { 
$value = ('&euro;&nbsp; ' .$value);
 }  
?>

...ma logicamente non funziona   :'(

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #14 il: 10 Apr 2013, 15:41:06 »
non so perchè ma scrivendolo così invece funziona.... 

Codice: [Seleziona]
<?php 
$user 
=& JFactory::getUser();
if(
$user->guest and $_SERVER['REMOTE_ADDR']=="192.168.mio.IP") { 
$value = ('&euro;&nbsp; ' .$value); 
}  else if (
$user->guest) { 
$value ="<a  href=\"index.php?option=com_users&view=login\"  >accedi"
}  else { 
$value = ('&euro;&nbsp; ' .$value);
 }  
?>
...sapete come mai? :o

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #15 il: 10 Apr 2013, 23:04:31 »
Secondo me non c'è neanche bisogno che controlli se l'utente sia guest per vedere se è effettivamente il totem: basterebbe che l'ip fosse quello, chissene frega se è loggato o no!


il primo codice non funziona perchè nel momento in cui controlli solo se l'utente è guest come primo caso, il sistema si fermer sicuramente a quello ignorando gli altri in quanto il totem è sempre guest!
Per questo è inutile fare il controllo di cui sopra.


Una possibile soluzione potrebbe essere questa:
Codice: [Seleziona]
$value="50€"; //prezzo da stampare (se non ho capito male il controllo viene effettuato su ogni prodotto)
$mostra=(!$user->guest || $_SERVER['REMOTE_ADDR']=="ip.ESTERNO.del.totem")?$value:"<a  href=\"index.php?option=com_users&view=login\"  >accedi</a>";
ed in ogni punto in cui stampare il valore scrivi solo
Codice: [Seleziona]
echo $value;

edit: controlla bene il codice perchè potrebbe non funzionare, l'ho imparato tipo dieci minuti fa su un libro che parla di un'altro linguaggio!
« Ultima modifica: 10 Apr 2013, 23:07:54 da giovi »

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:impostare utente da codice
« Risposta #16 il: 11 Apr 2013, 14:31:10 »

ciao
stavo guardando un po quello script.

si ...il  prezzo prende un $value per ogni prodotto

non capisco bene il $mostra come viene usato :'(

per ora questo è quello che ho capito...
-------------------------
$mostra se user NON guest OR ip totem
altrimenti(else)
$value = login

ma se visualizzo $value non mi mostra soltanto il login?!?!  :o
« Ultima modifica: 11 Apr 2013, 14:40:48 da claudiovis »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:impostare utente da codice
« Risposta #17 il: 11 Apr 2013, 17:41:32 »
Xdonami al posto di mostra va scritto value. Quella è un'assegnazione condizionata cioè value é uguale a value se la condizione è vera altrimenti è uguale al link

 



Web Design Bolzano Kreatif