[PHP] Operazioni di confronto su stringhe

@borgo italia
Ciao,
se non ti disturbo troppo, vorrei farti qualche domanda sul tuo codice, riguardo all'array. Volevo sapere queste tre cose:

La variabile array, quanti elementi può contenere? Ad esempio, solo per quanto riguarda la parola "tor", considerando le combinazioni più probabili (.tor,-tor,ecc) dovrei metterci almeno una quarantina di elementi, e così per le altre parole "chiave" (relais, proxy, ecc), quindi in totale l'array dovrebbe contenere tra i 100 e i 140 elementi, quindi volevo chiederti: un array può contenere un tale numero di elementi, o c'è un limite massimo?

Il codice che contiene il ciclo dei confronti (foreach), deve essere immediatamente successivo alla riga di codice che definisce l'array, o posso mettere il ciclo dei confronti anche dopo diverse righe di istruzioni di distanza dall'array?

Se volessi inserire un secondo array (ad esempio, ho selezionato circa 30 nazioni che possono avere accesso al sito, quindi, dopo aver verificato la validità dell'hostname tramite il primo foreach e il primo array, vorrei inserire successivamente un secondo array e un secondo ciclo di confronti riguardo alle nazioni che possono accedere al sito); questo secondo array, deve avere nome diverso dal primo? Puoi farmi un semplice esempio?

Ti ringrazio.
 
ciao
molti di più di 140
puoi mettere il foreach dove ti serve, basta stare attento a non sovrascrivere l'array
se deve avere nome diverso salvo che tu non voglia sovrascriverlo
 
@marino51:
Cioè,

appena il visitatore accede alla nostra pagina php, il codice va a leggere l'indirizzo IP che risulta avere il suo computer, poi trasmette questo dato (il suo IP) alla nostra pagina?
Se fa questo, è quello che cercavo: dopo avere l'indirizzo IP del suo computer, basta rilevare l'indirizzo IP che risulta dal nostro codice e poi confrontare i due IP, e se sono differenti, vuol dire che il visitatore sta usando un IP "anonimo".... Giusto?
Se fa questo, qual'è la parte di codice che va nel computer del visitatore e prende il suo IP?
si questo dovrebbe fare la parte javascript, se viene inviata all'utente, lo script ritorna l'ip rilevato da ipinfo.io
ho scritto dovrebbe, perché funzionalmente è così, praticamente bisogna vederlo applicato

lo stesso script poi invia le informazioni allo "screen" giusto per vederle, ma come detto è uno script di test da cui prendere la parte javascript ed inserirla nel proprio contesto
 
ciao
molti di più di 140
puoi mettere il foreach dove ti serve, basta stare attento a non sovrascrivere l'array
se deve avere nome diverso salvo che tu non voglia sovrascriverlo

Quindi, ho scritto l'array correttamente, però su alcuni elementi non mi funziona, il codice non riesce ad individuare alcune parole non valide all'interno dell'hostname...
Ad esempio, se assegno a $vara le seguenti parole che contengono elementi non validi: "tor3.Mondo.its", "tor4.Mondo.its", "tor_huat.mon", "proxynodule.com", mi da sempre hostname valido...Mentre con altri elementi contenuti nello stesso array, il confronto funziona correttamente. Non riesco a capire perchè...

Ti riporto qui sotto il codice:
PHP:
<?php
//inizio procedura di controllo se ip valido o no
//faccio un array di valori non validi aggiornabile
$no_validi = array('proxy','relais','exit','tor.','tor-','tor_','tor0','tor1','tor2','tor3','tor4','tor5','tor6','tor7','tor8','tor9','.tor.','.tor-','.tor_','.tor0','.tor1','.tor2','.tor3','.tor4','.tor5','.tor6','.tor7','.tor8','.tor9','-tor.','-tor-','-tor_','-tor0','-tor1','-tor2','-tor3','-tor4','-tor5','-tor6','-tor7','-tor8','-tor9','_tor.','_tor-','_tor_','_tor0','_tor1','_tor2','_tor3','_tor4','_tor5','_tor6','_tor7','_tor8','_tor9','0tor.','0tor-','0tor_','0tor0','0tor1','0tor2','0tor3','0tor4','0tor5','0tor6','0tor7','0tor8','0tor9','1tor.','1tor-','1tor_','1tor0','1tor1','1tor2','1tor3','1tor4','1tor5','1tor6','1tor7','1tor8','1tor9','relais.','relais-','relais_','relais0','relais1','relais2','relais3','relais4','relais5','relais6','relais7','relais8','relais9');


//$vara = file_get_contents("http://ipinfo.io/{$_SERVER['REMOTE_ADDR']}/hostname");

$vara = "tor.nonoDe.nb";

$vara=trim(strtolower($vara));//rendo tutto minuscolo e trimmo

echo "HOST: ".$vara;

$avviso=0;//metti un flag a zero
//cicli l'array per verificare se in $vara c'e o 'no hostname'o'tor'o'relais'
foreach($no_validi as $no){
    if(stripos($vara, $no)>0){
        //trovato un non valido metto il flag a 1 e esco dal ciclo
              $avviso=1;
        break;
    }
}

if($avviso > 0 || empty($vara)){ 
    
echo "Hostname non valido";

  }else{
echo "Hostname valido";
}
?>
 
ciao
errore mio, non avevo pensato bene.
ora se tu hai una stringa tipo "tor." la posizione trovata è 0, la numerazione parte da zero, quindi
stripos($vara, $no) trova sì la stringa restituendo 0 che è posizione del primo carattere di tor (la t).
quindi correggi l'if
PHP:
//...
foreach($no_validi as $no){
    if(stripos($vara, $no)>0){
        //trovato un non valido metto il flag a 1 e esco dal ciclo
              $avviso=1;
        break;
    }
}
//...
in
PHP:
//...
foreach($no_validi as $no){
    if(stripos($vara, $no)!== false){
        //trovato un non valido metto il flag a 1 e esco dal ciclo
              $avviso=1;
        break;
    }
}
//...
prova con le varie strinche e sappimi
 

Discussioni simili