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:
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:
Scrive tranquillamente su file.
Non riesco a spiegarmi cosa può essere. Aiutatemi pls
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