Problema mailing list

youngz

Nuovo Utente
20 Apr 2010
3
0
0
Salve a tutti,sono nuovo di qui :) E inizio subito con un problema.Il mio problema si riscontra in 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:
PHP:
          <center> 
<? 
// Some variables; 
// Your emails list file; 
$filelist = "testo.txt"; 
// Email headers that subscribed users see 
// when you send them an email; 
$adminmail = "[email protected]"; 
$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], $subject, stripslashes($message), $GLOBALS["emailheaders"]); 
             if (!$a) 
                exit; 
         } 
         echo "Spam sent! <img src="http://forum.mrwebmaster.it/images/smilies/blink.gif" border="0" alt="">"; 
         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><p> "; 
         $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><br>"; 
            } 
         } 
        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><br>"; 
                $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:<br><input type=text name=subject><br> 
Messaggio:<br><textarea name=message rows=10 cols=50></textarea><br> 
<input type=submit name=mode value=send> 
</form> 
<a href="./index.html"><h2>TORNA AL SITO</h2></a> 
</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&[email protected]".

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:

PHP:
<?php 
$stringa=$_POST['email']."\n"; 
$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 :)
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
Nel codice ci sono istruzioni del tipo: $id=$_POST['id']; oppure $id=$_GET['id'];?
Potrebbe essere questo. I due form che hanno method=get in realtà potrebbero necessitare del method=post (questo spiega perché ti si cambia la url). Con configurazioni diverse di php questo potrebbe non fare differenza per altervista (in entrambi i casi inizializzerebbe in automatico la variabile $id con il contenuto di $_POST/GET['id'], sull'altro sito invece occorrerebbe aggiungere l'istruzione di assegnazione).
Non dovrebbe essere un problema di versione di php.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
controlla se nel form viene effettivamente incluso il valore relativo al campo id
 

youngz

Nuovo Utente
20 Apr 2010
3
0
0
Il campo id c'era, cmq ho risolto riscrivendolo da zero, anzi mi è venuto anche meglio :)
Grazie della disponibilità!
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con mailing list in php PHP 1
D problema mailing list php PHP 2
A Problema script mailing list Classic ASP 0
giorgione_tg problema mailing list PHP 6
F problema con mailing list PHP 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0

Discussioni simili