Salve vorrei chiedere come si fa a creare dei link nel proprio sito che hanno questo indirizzo:
nomesito.altervista.org/?menu=vb
xk devo ancora imparare il php ma non so cosa scrivere per trovare questa cosa, grazie in anticipo.
Salve vorrei chiedere come si fa a creare dei link nel proprio sito che hanno questo indirizzo:
nomesito.altervista.org/?menu=vb
xk devo ancora imparare il php ma non so cosa scrivere per trovare questa cosa, grazie in anticipo.
Ultima modifica di lotz : 20-12-2010 alle ore 16.45.34 Motivo: errori ortografici
e ma il codice completo quale sarebbe? cioè se io ho una pagina web vb.html e la voglio raggiungere come quella li come faccio? cioè serve un codice php? o altro?
tipo questo si= http://bldrivelegend.altervista.org/
Ultima modifica di lotz : 20-12-2010 alle ore 19.09.59 Motivo: dimenticanza esempio
scusa ancora e per averla senza estensione?
Spero di interpretare bene il tuo pensiero.
A te piace il fatto di non vedere il nome della pagina prima del "?", giusto?
Se è così, devi sapere che un webserver ha impostata una pagina che cerca e carica di default se non ne vuiene specificata una (di solito index.htm, index.php, ecc..).
Questo perchè se non fosse così quando inseriamo un indirizzo sulla barra del browser non andiamo da nessuna parte.
In altre parole quando scriviamo www.miosito.it è comese scrivessimo www.miosito.it/index.php
Detto questo scrivere www.miosito.it/?parametro=valore equivale a scrivere www.miosito.it/index.php?parametro=valore. Per cui è la pagina index.php che a te interessa.
Spero di essere stato sufficientemente chiaro.
Ciao
si esatto ma come faccio a dagli il parametro e il valore ovvero posso dagli come valore un nome? se si come faccio ad impostarlo nel menù facendo si che quando clicco su quel valore mi si apra la pagina web con l'indirizzo ?parametro=nome senza che sia visibile nella barra il link tipo ../nome.php.
Scusate ancora, l'HTML lo so usare e solo che questa cosa mi piace e voglio inserirla
Scusa se te lo chiedo: ma sai solo HTML o anche PHP (o altri linguaggi serve-side)?
Il passaggio di parametri di in puro HTML non ha senso!
Il fatto che passi dei parametri presuppone che la pagina che li riceve sia una pagina dinamica che si compone proprio in base a tali parametri.
Come ti dicevo se scrivi www.miosito.it/?a=1 in realtà è come se scrivessi www.miosito.it/index.php?a=1.
Come si debba chiamare la pagina? In generale index. su LAMP dovrebbe essere la regola, ma nulla esclude configurazioni in cui la pagina indice possa chiamarsi lamiapaginapreferita.jsp.
Su altervista index.php va bene.
Poi magari puoi costruire una navigazione che carichi le pagine proprio in base al parametro ma di base chiami sempre la stessa pagina.
Ad esempio puoi impostare una cosa del tipo www.miosito.it/?sez=home e poi dinamicamente far caricare la pagina home.html oppure homepage.php o ...
ok, quindi diciamo il link è sempre la home e tramite frame passa a sezioni diverse^^ cmq per fare questo cosa devo fare ? cioè se al link home.php eve corrisponde ?sez=home scusate ancora , cmq diciamo che a una stringa deve corrisponde un link^^
no intendo home come pagina del frame iniziale^^, cmq non so come fare quello che ti ho detto prima, cioè come fare corrisponde a quella stringa la pagina home.php, ovvero sarebbero dei casi (case)
-
va beh lasciamo così e uso gli iframe con i frame così la pagina rimane l'index e tutto gira li grazie a tutti e due per le risposte^^
Ultima modifica di darkwolf : 20-12-2010 alle ore 23.06.20
Crea un file "index.php" e all'interno mettici:
Quindi, richiamando index.php avrai: "pagina iniziale";Codice PHP:
<?php
if (isset($_GET['pagina1'])) { // se la variabile è pagina1
echo "contenuto della pagina 1"; // puoi anche usare l'include per includere un file specifico contenente il codice
}
else if (isset($_GET['pagina2'])) { // se la variabile è pagina2
echo "contenuto della pagina 2";
}
else { // altrimenti
echo "pagina iniziale";
}
?>
richiamando index.php?pagina1 avrai: "contenuto della pagina 1";
ecc ecc...
Puoi anche usare gli switch:
index.php?pagina=1Codice PHP:
<?php
switch ($_GET['pagina'])
{
case '':
?>
HomePage
<?php
break;
case '1':
?>
Codice pagina 1
<?php
break;
case '2':
?>
Codice pagina 2
<?php
break;
}
?>
È un esempio molto basilare ma dovrebbe rispondere al tuo quesito.
Ultima modifica di darkwolf : 20-12-2010 alle ore 23.24.09
mi spieghi meglio il fatto dei case? cmq il risultato che mi serve a me deve essere tipo quello del sito linkato sopra,
cioè io proprio il php non lo ancora iniziato quindi se riesci a fornimi tipo il codice da fare solo cppia incolla e modificare le cose della pagina mi fai un favore poi me lo studio io bene, cmq non ho anche capito dove devo inserire il contenuto delle pagine oppure se devo fare con la funzione fopne("link", "r") , basta anche un esmepio si basiliare anche con solo due pagine e il default ma completo xk ho provato a metterlo dentro una pagina .php il codice che mi hai fatto ma non va e non so se dipende da fatto che non passo lavori.
Per conclure diciamo che mi dovresti fare un scheletro abbondante del codice se puoi^^ grazie mille se puoi
Ultima modifica di lotz : 20-12-2010 alle ore 23.34.27 Motivo: dimenticanza
Crea un index.php e mettici:
Puoi estendere i "case" a tuo piacimento ed assegnarli il valore che preferisci.Codice PHP:
<?php
switch ($_GET['menu'])
{
case '':
?>
HomePage
<?php
break;
case 'registrazione':
?>
Qui il codice della pagina registrazione
<?php
break;
case 'staff':
?>
visualizza staff del sito
<?php
break;
}
?>
La tua home sarà semplicemente index.php; per vedere lo staff farai "index.php?menu=staff" e via di seguito
Solo una piccolissima precisazione: aggiungici anche un avviso di errore in caso il parametro non sia corretto e il controllo che esista la variabile get (altrimenti da un waring)...
Quindi invece di "HomePage", "visualizza staff del sito" etc metti il sorgente della pagina (html, css, js...)...Codice PHP:
<?php
if(isset($_GET['menu']))
switch ($_GET['menu'])
{
case '':
?>
HomePage
<?php
break;
case 'registrazione':
?>
Qui il codice della pagina registrazione
<?php
break;
case 'staff':
?>
visualizza staff del sito
<?php
break;
default:
?>
Pagina errata.
<?php
break;
}
?>
Ciao!
Ultima modifica di alemoppo : 20-12-2010 alle ore 23.50.15
regolamento altervista_______________ regolamento forum
il problema e che non ho capito come fare corrisponde a menu=staff il link del login di Cn ad esempio xD, e poi con questo codice che mi dai praticamente è una home dinamica? tipo clicco su registrazione e praticamente il link r(delbrowers rimane fisso o cambia?) porta alla stessa pagina ma cambia la seconda colonna se faccio a tabella? cmq il mio problema principale e che il php lo inizio a febbraio a scuola e quindi sto cercando di farmi spiegare al meglio ste cose che mi piacciono.
In realtà il PHP è talmente facile che si impara benissimo da soli.. poi se conosci un qualsiasi altro linguaggio di programmazione, hai la strada spianata :-D
Comunque, sì, è una home dinamica... Prova ad esempio a visitare la pagina in questo modo:
lotz.altervista.org/pagina.php?pagina=staff
lotz.altervista.org/pagina.php?pagina=registrazione
etc..
nota "pagina.php" è il nome del file.. che puoi anche cambiare.... "index.php" se vuoi che sia la tua index
Ciao!
Ultima modifica di alemoppo : 20-12-2010 alle ore 23.51.45
regolamento altervista_______________ regolamento forum
io conosco abbastanza bene il C cmq in parole povere questo codice php lo devo mettere sotto al menù che faccio che a seconda del valore della variabile che assume tipo una stringa che a seconda se è staff ecc mi fa partire nella seconda colonna la pagina corrispondente e via cosi?, cmq ultima cosa poi se riesco riesco altrimenti faccio con i frame come faccio a digli che se l'utente clicca sulla voce staff la variabile del case deve assumere il valore staff?
Ah bene.. anche io consocevo C quando ho imparato PHP...
In pratica, quella è una pagina a sè... e la l'array $_GET assume il valore passato nell'url. Ad esempio:
sito.altervista.org/pagina.php?parametro=valore¶metro1=valore1&par ametro2=valore2
(nota "&" serve per separare i vari "parametri")
E all'interno dello script in pagina.php nelle posizioni dell'array "parametro", "parametro1" e "parametro2" hai rispettivamente "valore", "valore1" e "valore2". Cioè:
$_GET['parametro'] == 'valore'
$_GET['parametro1'] == 'valore1'
ecc...
Nel tuo caso, serve soltanto un indice dell'array; è stato scelto "pagina". Quindi, alla posizione "pagina" dell'array avrai il contenuto passato dall'url... il resto è uguale a C (if o switch)...
Ciao!
Ultima modifica di alemoppo : 21-12-2010 alle ore 00.07.34
regolamento altervista_______________ regolamento forum
ok ciao, ora ci provo se non ci riesco aspetto xD
altra domanda devo fare anche un file confing? cioè in questo file devo mettere i case e poi li inserisco con un include nella pagina pagina.php?
non ci sto capendo nnt, per piacere riesci a fare un esempio leggermente più ricco cioè con la scelta di due cose dal menù e dai valori che assumono far partire il link alla pagina corrispondente dopo questo sono apposto xD.
Detto in parole povere clicco su staff e mi deve avviare la pagina staff che poi a sua volta ha anch'essa il php del menù oppure se clicco su gallery la stessa cosa, ovvimanete con una home.
Forse sto chiedendo troppo ma mi sto confondendo le idee così xD, praticamente la mia pagina .php è la mia home e a seconda del link che clicco mi deve partire il caricamente della pagina con il nome fatto a ?menu=staff. Ale poi tidico dove abito e mi vieni a uccidere xD
Hai il php e l'html, a css e struttura devi pensarci tu.
struttura.php:
index.php:Codice PHP:
<?php
error_reporting(E_ALL);
// Se la var è vuota o non settata mostro la homepage
if(empty($_GET['menu']) || !isset($_GET['menu'])) {
$corpo = 'corpo homepage';
$titolo = 'titolo homepage';
$keywords = 'keyword varie per la home';
$description = 'descrizione della pagina iniziale';
}
else { // Altrimenti:
switch ($_GET['menu'])
{
case 'registrazione':
$corpo = 'corpo registrazione';
$titolo = 'titolo registrazione';
$keywords = 'keyword varie per la pagina registrazione';
$description = 'descrizione della pagina registrazione';
break;
case 'staff':
$corpo = 'corpo staff';
$titolo = 'titolo staff';
$keywords = 'keyword varie per la pagina staff';
$description = 'descrizione della pagina staff';
break;
default:
die('Not Found, torna all\'homepage: <a href="./">HomePage</a>');
break;
}
}
?>
Eventuale htaccess:Codice PHP:
<?php require('struttura.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="it-IT">
<head>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<meta name="description" content="<?php echo $description; ?>" />
<title><?php echo $titolo; ?></title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="menu">
<p>HomePage (directory): <a href="./" title="Homepage">Homepage</a></p>
<p>Link classici (senza Url-Rewrite):
<a href="index.php?menu=registrazione" title="registrazione">registrazione</a> |
<a href="index.php?menu=staff" title="staff">staff</a></p>
<p>Con Url-Rewrite:
<a href="registrazione.html" title="registrazione">registrazione</a> |
<a href="staff.html" title="staff">staff</a></p>
</div>
<div id="corpo">
<h3><?php echo $corpo; ?></h3>
</div>
<p style="padding-top: 20px;">
Sorgente: <a href="http://forum.it.altervista.org/php-mysql-e-apache-htaccess/121760-creare-link-con-nome-x.html#post776424">http://forum.it.altervista.org/php-mysql-e-apache-htaccess/121760-creare-link-con-nome-x.html#post776424</a>
</p>
</body>
</html>
Demo: http://www.darkwolf.it/_script/struttura/Codice PHP:
RewriteRule ^(.+)\.html$ index.php?menu=$1 [L,QSA]
Ultima modifica di darkwolf : 02-03-2016 alle ore 17.16.43 Motivo: Ripulito + htaccess + aggiornamento.
ok grazie^^ ora provo e vi dico cmq devo fare due file uno struttura e l'altro index provo così^^ grz ancora
ok, cmq non riesco a metterlo dentro ad una tabella html -_-' devo perforza usare una tabella div?
http://lotz.altervista.org/pagina.php ecco me viene, risolto ^^ allargo il tutto
Ultima modifica di lotz : 21-12-2010 alle ore 17.24.08 Motivo: risolto