scusa pensavo fosse problema di configurazione o cose del genere.
ivio dati dal modulo ed eseguo questo script che verifica la correttezza della password inserita per cmbiarla tramite include(cancello.php), in locale va perfettamente ma qui non va proprio
Codice PHP:
<?php
session_start();
$oldpw = $_POST['oldpw'];
$newpw = $_POST['newpw'];
$filename = 'filepw.txt';
$somecontent = $_SESSION['user'] . ":" . $newpw . "\n";
$filenames = 'filepw.txt';
if($oldpw === $_SESSION['password']){
//codice che inserisce nuova user:password
// Verifica che il file esista e sia riscrivibile
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'a')) {
echo "Non si riesce ad aprire il file ($filename)";
exit;
}
// Scrive $somecontent nel file aperto.
if (!fwrite($handle, $somecontent) === TRUE) {
echo "Non si riesce a scrivere nel file ($filename)";
exit;
}
include("cancello.php");
?> <script type="text/javascript">
window.alert("Password sotituita, effettua login con nuovi parametri per favore");
</script>
<meta http-equiv="refresh" content="0;url=index.php"><?
fclose($handle);
} else {
echo "Il file $filename non è accessibile";
}
} else {?>
<script type="text/javascript">
window.alert("vecchia password non corrisponde, riprova");
</script>
<meta http-equiv="refresh" content="0;url=formcambiopw.php">
<?}
?>
cancello.php
Codice PHP:
<?php
session_start();
if($_SESSION['password']=$_POST['oldpw']){
$tmp= $_SESSION['user'] . ":" . $_SESSION['password'];
$filenames = 'filepw.txt';
function del_line_in_file($filen, $text_to_delete)
{
$file_array = array();
$file = fopen($filen, 'rt');
if($file)
{
while(!feof($file))
{
$val = fgets($file);
if(is_string($val))
array_push($file_array, $val);
}
fclose($file);
}
// delete from file
for($i = 0; $i < count($file_array); $i++)
{
if(strstr($file_array[$i], $text_to_delete))
{
if($file_array[$i] == $text_to_delete . "\n") $file_array[$i] = '';
}
}
$file_write = fopen($filen, 'wt');
if($file_write)
{
fwrite($file_write, implode("", $file_array));
fclose($file_write);
}
}
} else {echo 'vecchia non corrisponde'; exit();}
del_line_in_file($filenames, $tmp);
?>
------------------
il codice è perfetto, nel file logs mi compare solo un notice relativo alla sessione...che dite?