-
Passaggio variabili
Ciao a tutti ho un problema con un sito che ha sempre funzionato.
ho un semplice passaggio di una variabile da link che poi però non viene più riconosciuta nella pagina di risposta cosa può essere successo?
tipo io passo ......altervista.org/index.php?id=12 la pagina di risposta non fa più niente come se non gli passassi niente e io non ho modificato nulla.
-
Mostra le parti rilevanti del codice della pagina in questione.
-
-
Unica cosa effettuata in questi giorni è aver attivato Database di altervista per provare a utilizzare SQL ma prove su una sottocartella del sito
Il sito in questione è molto semplice passo un link con una variabile se la variabile c'è faccio vedere un dettaglio altrimenti faccio vedere una lista ma senza database
-
Hai provato a leggere il messaggio che ti ho indicato?
-
<?
if ( isset($var) ) // se la variabile esiste (restituisce true)
if (file_exists("img/big/".$var.".jpg"))
{
$a = $var-1;
$b = $var+1;
if ($ext == "")
{$c= "";}
else
{$c= substr($var, -1, 1);}
print("<div class='indietro'><a href="index.php?var=".$a.$c."&ext=".$c.""><IMG SRC='img/menu/indietro.gif' width='169' height='59' border='0'></a></div>");
print("<div class='fotobig'><a href='javascript:history.back()'><img src="img/big/".$var.".jpg" border='0'></a></div>");
print("<div class='avanti'><a href="index.php?var=".$b.$c."&ext=".$c.""><IMG SRC='img/menu/avanti.gif' width='169' height='59' border='0'></a></div>");
}
else
{
print("<a href='javascript:history.back()'>No foto</a>");
}
else // se non esiste (restituisce false)
for( $i= 300 ; $i > 1 ; $i-- )
//for( $i= 1 ; $i <= 500 ; $i++ ) sort al contrario
{
if (file_exists("img/small/".$i.$ext.".jpg"))
print("<div class='foto'><A HREF='index.php?var=".$i.$ext."&ext=".$ext."'><IMG SRC='img/small/".$i.$ext.".jpg' border='0'></a></div>");
}
?>
-
Ciao, quando devi postare codice php potresti postarlo dentro [PHP]<?php
// commento php su singola linea
?>[/PHP] Quando si omette la parentesi graffa in una if sta ad indicare che se è vero faccio solo una riga di codice, mentre se è vero o no eseguo tutto il resto del codice. Tornando in tema, Se tu nel tuo sito hai sempre http://www.sito.it/index.php?var=10&ext= e non hai attivo register_globals (se è su on è un rischio per la tua sicurezza) l'unico modo per recuperare tale valore è con $_GET['var'] (diventa $var automaticamente con register_globals su on); dove prima va verificato se esiste con isset();
prova unendo l'if
Codice PHP:
if (isset($_GET['var'],$_GET['ext']) And file_exists('img/big/'.$var.'.jpg'))
{ //Se esiste $_GET['var'] e $_GET['ext']
// e esiste il file allora è vero
if(($var=(int)$_GET['var']) >= 2 And $var < 214748364)
{// converto da stringa a un intero positivo
// controllo se è maggiore uguale a due
// se è minore a 214748364
$a = $var-1;
$b = $var+1;
if(($ext= $_GET['ext']) == '')
{$c= '';}
else
// recupero l'ultimo numero
// converto da stringa ad intero
// equivalente al secondo codice
{$c = (int) $var[strlen($var)-1];}
//{$c= (int) substr($var, -1, 1);}
echo $var;
// altro codice
} else {
echo 'non consentito';
}
} else {
// altro codice
}
?>
Non ho verificato il resto del tuo codice
EDIT: La creazione di $var manca di logica, il massimo valore di un intero positivo su un sistema a 32 bit è 2147483647. Questo è il limite massimo di $var.