Joomla.it Forum
Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : zacca 18 Oct 2011, 14:42:18
-
Ciao a tutti, vorrei chiedervi una cosa!
C'è per caso un componente che riconosca un particolare range di indirizzi ip?
A me servirebbe far aprire una pagina in una diversa scheda agli utenti di una determinata fascia di rete in una intranet!
Come potrei fare?!
Ossia: il modulo o componente riconosce l'ip e apre automaticamente la pagina!
Oppure creare uno script in php che faccia ciò.....
Oppure mettere 2 home page all'apertura di I.E., ma il problema di ciò è che gli utenti hanno win2K e quindi I.E. 6 e aprire 2 home non me lo permette!
Aiutatemi per favore!
-
Non saprei dirti se esistono componenti o plugin che gestiscono quello che ti serve, tuttavia in php risulta abbastanza semplice da fare.
Per lavoro ogni tanto mi capita di dover gestire range di ip e associarli ad una certa azione, dipende quanto è grande e complicato sto range ma è comunque fattibile con un piccolo script php...
-
Il problema è lo script!
Non sono tanto esperto in scrittura.....
Te ne sarei grato se mi aiutassi!
La rete è quasi intera....
10.10.10.0 / 10.10.10.255
-
E' il caso più semplice, ora non ho il codice sottomano comunque se hai tempo e voglia puoi provare 2 vie.
- La prima è:
$ip_reale = $_SERVER['REMOTE_ADDR'];
$trovato = false;
for($i=0;$i<256;$i++){
$ip_calc = "10.10.10.".$i;
if($ip_calc==$ip_reale)
$trovato = true;
}
Successivamente farai un controllo sull'if $trovato == true e farai il codice per gli utenti nel range ip.
Altrimenti la seconda opzione (che preferisco) è:
$min_long = ip2long("10.10.10.0");
$max_long = ip2long("10.10.10.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
Altrimenti se hai voglia prova questa tecnica :)
http://forums.digitalpoint.com/showthread.php?t=67344 (http://forums.digitalpoint.com/showthread.php?t=67344)
-
e il link del sito da se l'ip è quello indicato dove lo meto?
-
e il link del sito da se l'ip è quello indicato dove lo meto?
eh?
Se intendi il codice da fare se l'ip è nel range mettilo dove ti serve, non lo so. Ad esempio se vuoi farlo all'apertura mettilo sull'index.php del template, come ti ho detto prima fai un controllo php sulla variabile $trovato se è uguale a true, nel caso fa il codice sennò fa altro.
-
mi spiego meglio!
Io utente, apro internet explorer
si apre l'ome page es. www.sito1.it
all'apertuta del sito1.it vorrei che si aprisse automaticamente www.sito2.it per gli utenti di quel range ip
Mi son riuscito a spiegare meglio!?
;D
-
window.open('http://www.sito2.com','Sito 2', 'width=300,height=200,left=10,top=10')
Fai questo metodo javascript nel load della pagina dopo aver controllato con php se l'utente è nel range ip giusto. Controlla che i popup non siano bloccati però.
-
quindi
questo
window.open('http://www.sito2.com','Sito 2', 'width=300,height=200,left=10,top=10')
lo metto nel sto 1
e l'altra roba la metto nel sito 2
giusto?
Domattina provo e ti faccio sapere!
Grazie 100000000000000000000000000000000000000 000000000
-
quindi
questo
window.open('http://www.sito2.com (http://www.sito2.com)','Sito 2', 'width=300,height=200,left=10,top=10')
lo metto nel sto 1
e l'altra roba la metto nel sito 2
giusto?
Domattina provo e ti faccio sapere!
Grazie 100000000000000000000000000000000000000 000000000
Se con altra roba intendi il codice php che ti ho dato prima no :) va tutto nel sito uno....nell'index del template che utilizzi, sopra metti il codice php che ti ho dato (una delle due opzioni), poi all'interno di javascript (sempre del primo sito) fai un controllo php sulla variabile trovato se è uguale a true, nel caso l'utente va all'evento load di javascript che all'interno ha quel window.open....
-
devo darti una brutta notizia.........
non funziona nessuna delle 2......
poi quando inserisco il codice viene anche visualizzato nella pagina web.......
L'alternativa sarebbe:
io apro il sito1 (accessibile a tutti)
sul sito 1 faccio un collegamento al sito2 (visibile al range di ip)
inserire un eventuale codice nel sito2 che limita gli utenti del range ip
Secondo me questa potrebbe essere una soluzione!
-
Penso proprio tu stia sbagliando qualcosa, funziona benissimo ed è testato :P
Se addirittura ti fa vedere il codice nella pagina vuol dire che stai decisamente sbagliando...
-
sicuramente sto sbagliando qualcosa......
Ti posto la pagina del sito 2 che vorrei che non si aprisse per altri ip
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>index sito 2</title>
</head>
<body>
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
<p>
</p>
<p>
</p>
<p>
vari collegamenti </p>
</body>
</html>
-
No, non ci siamo ::)
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
Questo va racchiuso tra i tag di apertura php, cioè sopra metti <?php e sotto metti ?>, va messo prima dell'html e nel sito 1.
Poi sempre nel sito 1, all'interno del tag head inserisci uno <script type="text/javascript"> con all'interno la funzione domready (non so se usi mootools, jquery o semplice javascript) e poi:
<?php if($trovato==true){ ?> window.open(............); <?php } ?>
-
ora piango!
quindi... la prima serie di codice l'ho messa in testa alla pagina html del template di joomla e il codice non si vede:
<?php
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
?>
poi ho visto che all'interno della pagina di joomla c'è <script type="text/javascript">
ed io ho inserito questo codice appena sotto
<?php if($trovato==true){ ?> window.open(http://10.22.185.7); <?php } ?>
ma non succede nulla se apro il sito da un'ip diverso o da un pc con gli ip del range
ma me lo sento che ci siamo quasi!
Ti sto stressando.....
-
Qua non posso darti una mano, ti posso assicurare che sia il codice php sia il javascript funzionano correttamente. Devi inserirli in modo corretto.
In particolare, nel javascript non puoi mettere quel codice sotto <script ........> senza gestire l'evento domready della pagina.
esempio di codice javascript da utilizzare:
<script type="text/javascript">
window.addEvent('domready', function(){
<?php if($trovato==true){ ?>
window.open(http://10.22.185.7);
<?php } ?>
});
Questo è se utilizzi mootools :P con jquery è differente (non so che framework javascript utilizzi).
Non vorrei riempirti la testa di ste cose mi spiace, comunque ti assicuro che funziona, devi solo inserire correttamente il codice.
-
Qua non posso darti una mano, ti posso assicurare che sia il codice php sia il javascript funzionano correttamente. Devi inserirli in modo corretto.
In particolare, nel javascript non puoi mettere quel codice sotto <script ........> senza gestire l'evento domready della pagina.
esempio di codice javascript da utilizzare:
<script type="text/javascript">
window.addEvent('domready', function(){
<?php if($trovato==true){ ?>
window.open(http://10.22.185.7);
<?php } ?>
});
</script>
Questo è se utilizzi mootools :P con jquery è differente (non so che framework javascript utilizzi).
Non vorrei riempirti la testa di ste cose mi spiace, comunque ti assicuro che funziona, devi solo inserire correttamente il codice.
-
ho risolto semplicemente mettendo il sito2 su un'altro server, configurando IIS e mettendo i blocchi in base all'indirizzo IP delle mie reti interessate!
Cmq te ne sono veramente grato del tempo che mi hai dedicato!
Grazie Antonio
-
L'importante è aver risolto ;D anche se penso sia una via più complicata....