Salve a tutti, io ho un problema con uno script in php per una mailing list, spiego meglio:
questo file prende da un txt esterno una lista di email e permette di inviare a quest'ultime il necessario.

il codice è il seguente:
Codice PHP:
          <center>
<?
// Some variables;
// Your emails list file;
$filelist "testo.txt";
// Email headers that subscribed users see
// when you send them an email;
$adminmail "nome@email.com";
$emailheaders "From: " $adminmail "\nReply-To: " $adminmail;
// By default we display entries;
if (!isset($mode))
   
$mode "unknown";
   
// Since all administration is in one file,
// we choose what to to do now;
switch ($mode) {
       case 
"create"createList(); break;
       case 
"display"displayEntries($filelist); break;
       case 
"add"addEntry($email); break;
       case 
"edit"displayEditForm($id); break;
       case 
"doEdit"editEntry($email$oldvalue); break;
       case 
"delete"deleteEntry($id); break;
       case 
"send"sendNews($subject$message); break;
       default:
       if (
file_exists($filelist)) {
          
displayEntries(); displayAddEntryForm();
       }

}



/* THIS IS THE PART WHERE WE CREATE A MAILING LIST FILE AUTOMATICALLY */
/* IGNORE IT IF YOU HAVE CREATED IT MANUALLY (NOTHING WILL BE DISPLAYED */
if (!file_exists($filelist)) {
   echo 
"<h2>Please, make sure you have 777 permissions for current
   directory to create the mailing list file and click the button or
    create it manually and set 666 permissions on it</h2>"
;
    
   echo 
"<form name=createFile action=adminemail.php method=post>";
   echo 
"<input type=submit name=mode value=create mailing list file>";
   echo 
"</form>";
   exit;
}

function 
createList() {
         
$fp fopen($GLOBALS["filelist"], "w");
         if (
$fp) {
            echo 
"<h2>Mailing list creata con successo!</h2>";
            echo 
"[b]" $GLOBALS["filelist"] . "[/b]";
            echo 
"<meta http-equiv='Refresh' content='1; URL=adminemail.php'>";
            exit;
         }
         else
            echo 
"Errore!";
}
/**************************************************************************/


// Sends news to subscribers;
function sendNews($subject$message) {
         
$filecontents file($GLOBALS["filelist"]);
         for (
$i=0;$i<sizeof($filecontents);$i++) {
             
$a mail($filecontents[$i], $subjectstripslashes($message), $GLOBALS["emailheaders"]);
             if (!
$a)
                exit;
         }
         echo 
"Spam sent! ;)";
         echo 
"<meta http-equiv='Refresh' content='1; URL=adminemail.php'>";
         exit;
}

// Displays the form to add emails to list;
function displayAddEntryForm() {
         echo 
"<h1>Aggiungi email alla mailing list:</h1>";
         echo 
"<form name=addEntry action=adminemail.php method=get>";
         echo 
"<input type=text name=email>";
         echo 
"<input type=hidden name=mode value=add>";
         echo 
"<input type=submit name=submit value=add>";
         echo 
"</form>";
}

// Adds emails to list;
function addEntry($email) {
         
$fp fopen($GLOBALS["filelist"], "a");
         
$emailsize strlen($email "\n");
         
$fw fwrite($fp$email "\n"$emailsize);
         if (
$fw) {
            echo 
"<h2><div align=center>Email aggiunta con successo!</div></h2>";
            echo 
"<meta http-equiv='Refresh' content='1; URL=adminemail.php'>";
            exit;
         }
         else
            echo 
"Errore!";
}

// Displays emails from list;
// by default it display last 10 emails;
function displayEntries() {
         echo 
"Mostra le ultime emal della mailing list: <a href=adminemail.php?limit=10>10 emails</a> ||
         <a href=adminemail.php?limit=20>20 emails</a> ||
         <a href=adminemail.php?limit=50>50 emails</a> ||
         <a href=adminemail.php?showall=>Mostra tutto</a>

 "
;
         
$filecontents file($GLOBALS["filelist"]);
         if (isset(
$GLOBALS["limit"]))
            
$limit $GLOBALS["limit"];
         if ((!isset(
$GLOBALS["limit"])) and (!isset($GLOBALS["showall"])))
            
$limit=10;
         if (isset(
$GLOBALS["showall"])) {
            for (
$i=sizeof($filecontents)-1;$i>=0;$i--) {
                echo 
$filecontents[$i] . " <a href=adminemail.php?mode=edit&id=" .
                
$filecontents[$i] . ">Modifica</a> || <a href=adminemail.php?mode=delete&id=" .
                
$filecontents[$i] . ">Cancella</a>
"
;
            }
         }
        elseif (isset(
$limit)) {
                
$count 1;
                for (
$i=sizeof($filecontents)-1;$count<=$limit;$i--) {
                echo 
$filecontents[$i] . " <a href=adminemail.php?mode=edit&id=" .
                
$filecontents[$i] . ">Modifica</a> || <a href=adminemail.php?mode=delete&id=" .
                
$filecontents[$i] . ">Cancella</a>
"
;
                
$count++;
            }
        }


}

// Displays the form to edit an email;
function displayEditForm($id) {
         echo 
"<h1>Modifica Email:</h1>";
         echo 
"<form name=editForm action=adminemail.php method=get>";
         echo 
"<input type=text name=email value=" $id ">";
         echo 
"<input type=hidden name=oldvalue value=" $id ">";
         echo 
"<input type=hidden name=mode value=doEdit>";
         echo 
"<input type=submit name=submit value=update>";
         echo 
"</form>";
         exit;
}

// Edits an email and writes the updated file;
function editEntry($email$oldvalue) {
         
$filecontents file($GLOBALS["filelist"]);
         for (
$i=0;$i<sizeof($filecontents);$i++) {
             if (
chop($filecontents[$i]) == $oldvalue) {
                
$filecontents[$i] = $email "\n";
                
$fp fopen($GLOBALS["filelist"], "w+");
                for (
$a=0;$a<sizeof($filecontents);$a++) {
                    
$emailsize strlen($filecontents[$a] . "\n");
                    
$fw fwrite($fp$filecontents[$a], $emailsize);
                }
                echo 
"<h2><div align=center>Modifica avvenuta con successo!</div></h2>";
                echo 
"<meta http-equiv='Refresh' content='1; URL=adminemail.php'>";
                exit;
             }
         }
}

// Deletes an email and writes an updated file;
function deleteEntry($id) {
         
$filecontents file($GLOBALS["filelist"]);
         for (
$i=0;$i<sizeof($filecontents);$i++) {
             if (
chop($filecontents[$i]) == $id) {
                
$filecontents[$i] = "";
                
$fp fopen($GLOBALS["filelist"], "w+");
                for (
$a=0;$a<sizeof($filecontents);$a++) {
                    
$emailsize strlen($filecontents[$a]);
                    
$fw fwrite($fp$filecontents[$a], $emailsize);
                }
                echo 
"<h2><div align=center>Cancellazione avvenuta con successo!</div></h2>";
                echo 
"<meta http-equiv='Refresh' content='1; URL=adminemail.php'>";
                exit;
                
             }
         }
}

?>
<h2>Inserisci qui il testo che vuoi mandare a tutte le email:</h2>
<form name=sendEmail action=adminemail.php method=post>
Oggetto:
<input type=text name=subject>

Messaggio:
<textarea name=message rows=10 cols=50></textarea>

<input type=submit name=mode value=send>
</form>
[url="./index.html"]<h2>TORNA AL SITO</h2>[/url]
</center>
quando provo a cliccare su i vari file come modifica etc non mi entra nella pagina ma mi aggiunge a fine url semplicemente una roba di questo tipo: "blabla.php?mode=edit&id=email@gmail.com".

Invece questo in un altro dominio (altervista) funziona perfettamente. Quindi ho pensato che fosse un problema di permessi, ma ho notato che la scrittura su file è abilitata in quanto una roba come questa:
Codice PHP:
<?php

$stringa
=$_POST['email']."\n";

// Scrittura del file
$scrivi_file=fopen("testo.txt","a+");
fputs($scrivi_file,$stringa);
fclose($scrivi_file);
?>
Scrive tranquillamente su file.

Non riesco a spiegarmi cosa può essere. Aiutatemi pls