Ciao,
Che metodi ci sono per impedire l'acesso diretto a un file?
In questo caso se accedi sql.php vieni rispedito all'index.
Ne conoscete altri?Codice PHP:if (!eregi("sql.php", $_SERVER['PHP_SELF'])) {
header("Location: index.php");
}
Grazie
Ciao,
Che metodi ci sono per impedire l'acesso diretto a un file?
In questo caso se accedi sql.php vieni rispedito all'index.
Ne conoscete altri?Codice PHP:if (!eregi("sql.php", $_SERVER['PHP_SELF'])) {
header("Location: index.php");
}
Grazie
Impostazioni dei permessi delle cartelle e dei file credo
eregi() è stato deprecato, puoi usare un if normale no?
Codice PHP:if ("sql.php" == $_SERVER['PHP_SELF']) {
header("Location: index.php");
}
Imposti una costante e controlli se nel file è settata o meno. Se per esempio sql.php lo includi automaticamente sql.php avrà la variabile settata, se chiami sql.php direttamente la variabile non è settata e fai un redirect.
Originariamente inviato da Ranma2
Imposti una costante e controlli se nel file è settata o meno. Se per esempio sql.php lo includi automaticamente sql.php avrà la variabile settata, se chiami sql.php direttamente la variabile non è settata e fai un redirect.
Questo lo metto nella pagina index.php
<?php
define("ACCESSO",true);
?>
e questo in sql.php
<?php
if(!defined("ACCESSO")){
header("Location: error_page.php");
}
?>
però la soluzione di phpeer mi sembra più semplice.
Alla fine la differenza dove sta?
Si, penso che sia più semplice per mantenere il codice.Originariamente inviato da phpeer
eregi() è stato deprecato, puoi usare un if normale no?
Codice PHP:if ("sql.php" == $_SERVER['PHP_SELF']) {
header("Location: index.php");
}
Però non dovrebbe essere diverso (!=) invece di uguale (==) ??
Non potresti semplicemente bloccare l'accesso al file?
$fp=fopen($nomefile,"R+");
flock($fp,2);
Mentre per sbloccare:
flock($fp,5);
PHP_SELF è il file che viene eseguito, quindi se è uguale fai il redirect, però non è a prova di errore quel codice, per ogni file devi portarti dietro il nome ricordandoti che rinominandolo dovrai modificarlo.
E' impensabile che ad ogni chiamata vado a toccare il file ed interagire con il filesystem.Originariamente inviato da Anaconda25
Non potresti semplicemente bloccare l'accesso al file?
$fp=fopen($nomefile,"R+");
flock($fp,2);
Mentre per sbloccare:
flock($fp,5);
OK, però se richiamo il file sql.php direttamente, invece di fare il redirect mi mostra una pagina in bianco e rimane su sql.php
dove sbaglio ://
Codice PHP:if ("sql.php" == $_SERVER['PHP_SELF']) {
header("Location: index.php");
}