Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Determinare l'indirizzo di una pagina

    Ho un menu in php che preleva gli indirizzi delle pagine da un array.
    questè è l'array dei link (tralascio di scrivere gli altri)
    Codice PHP:
    $links = array("index.php""paese.php""comune.php""community.php""servizi.php""links.php"); 
    e questa la costruzione del link html
    Codice PHP:
    <li id="<?php echo"$section[$i]"?>">[url="<?php echo"]" accesskey="<?php echo"$access[$i]"?>" title="<?php echo"$titoli[$i]"?>"><?php echo"$testolink[$i]"?>[/url]
    il problema è che essendo link relativi, se salgo di un livello nel percorso, essendo queste pagine nella root del sito, quel link si sovrappone al percorso corrente e non è più valido. es. www.sito.com/cartella/paese.php non è valido perché paese.php si trova nella root.

    Ho bisogno quindi di un sistema, senza usare link assoluti, che determini automaticamente il percorso della pagina che voglio raggiungere!
    come faccio?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se ho capito bene forse ti serve la funzione basename.
    http://it2.php.net/manual/it/function.basename.php

  3. #3
    Originariamente inviato da nicola75ss
    Se ho capito bene forse ti serve la funzione basename.
    http://it2.php.net/manual/it/function.basename.php
    mi suona famigliare, forse avevo già provato senza successo...
    Dove dovrei inserirlo, nell'array o nell'echo?

    p.s. devo ancora impararlo php

  4. #4
    Ho fatto delle prove, basename mi restituisce il nome del file all'interno di un percorso, non è ciò che mi serve (non capisco nemmeno a cosa possa servire)

    ciò che occorre a me è un sistema per cui, se salgo di un livello nel percorso, cioè se ad esempio da
    http://www.sito.com/index.php mi sposto a
    http://www.sito.com/pippo/pippo.php
    il menu diventi da così
    Codice PHP:
    $links = array("index.php""paese.php""comune.php""community.php""servizi.php""links.php"); 
    si trasformi così
    Codice PHP:
    $links = array("../index.php""../paese.php""../comune.php""../community.php""../servizi.php""../links.php"); 
    ho reso l'idea?
    un sistema che comprenda che mi sono spostato di un livello e aggiorni i link di conseguenza!

  5. #5
    Se i link nell'array puntano tutti alla root prova a usare questo:
    codice:
    function setpath($element) 
    {	
    	$n = substr_count($_SERVER['SCRIPT_NAME'],'/');
    	for ($i=0; $i<$n-1; $i++) $element = '../'.$element;
       	return $element;
    }
    
    $links = array('bla', 'bla', 'bla');
    
    
    $links = array_map('setpath', $links);
    setpath conta quanti slashes ci sono nella variabile SCRIPT_NAME, quindi il livello in cui sta il file corrente, e aggiunge di conseguenza altrettanti ../.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    direi che è quello che mi serviva! però l'array che ho postato è sbagliato perché a parte index.php le altre pagine non sono nella root ma in una sotto cartella. funziona lo stesso?
    cmq lo provo, ti ringrazio!

    Al momento ho discretamente risolto rendendo tutti i link assoluti tramite una variabile, prima della variabile dell'indirizzo, con l'indirizzo di base del sito, così:
    $path$links[$i]
    $path è uguale a http://www.sito.com/
    mentre $links[$i] è il link contenuto nell'array

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.