Ciao, ho tagliato codice php qua e là in giro per internet (non è tutta roba mia) e ho messo su uno script funzionante che permette di prelevare le pagine web e spedirle via email.
Utilizza la libreria phpmailer per l'invio degli allegati oltre a file testo come database; non mysql.
Ha dei controlli molto semplici ma efficaci in base hai quali se si superano le 10 richieste con lo stesso IP lo script si blocca (evitiamo lo spam);
Certo, chissà quanti errori contiene e anche l'utilità è discutibile anche a fronte di ricezione di pagine web prive della originale veste grafica ... ma per un uso estemporaneo e per didattica mi è servito molto.
Lo sposto pensando solo di far cosa gradita e per ricevere suggerimenti e critiche.
Ciao
Axone
<?php
$ip=$_SERVER['REMOTE_ADDR'];
//$ip = getenv("REMOTE_ADDR");
$file = fopen("guest.txt", "a");
fwrite ($file, "$ip\r\n");
fclose($file);
$key = $ip;
$search = array();
//fwrite($fp,"pippo\r\npluto");
//cerchiamo il file su cui compiere la ricerca
$file = file('guest.txt');
foreach ($file as $riga) {
//separiamo le righe trasformandole in records
//su cui compiere la ricerca
$result = explode(',', trim($riga));
for ($j=0; $jcount($result); $j++) {
//troviamo le corrispondenze
if ($result[$j]==$key) {
//inseriamo il record trovato nell'array
array_push($serch, $riga);
}
}
}
//se i risultati della ricerca superano la quota giornaliera lo script si blocca
//appare messaggio informativo
for ($j=10; $j<count($search); $j++)
$mio="15";
if ($serch[$j]==$mio) {
echo""
//echo "<a href=http://www.php.net>NON HAI SUPERATO IL LIMITE GIORNALIERO</a>\n";
} else {
//messaggio alternativo in assenza di risultati cancello le variabili Globali
echo "Attenzione, per oggi Hai superato il limite disponibile al Tuo IP!!";
//echo "<a href=http://www.nuovosito.it>HAI SUPERATO il limite giornaliero</a>\n";
unset($_SERVER['REMOTE_ADDR']);
unset($_POST['email']);
}
require("class.phpmailer.php");
if (!$p_file = fopen($_POST['url'],'r'))
{
echo "Spiacente, non posso leggere il tuo Indirizzo Web ";
} else {
while(!feof($p_file))
{
$linea = fgets($p_file, 4096);
$nuovastringa = $linea;
$nomefile= "web-TO-mail.html";
$miofile= @fopen ($nomefile, "a")
or die ("imposibile aprire file");
flock($miofile, LOCK_EX);
@fwrite ($miofile, $nuovastringa)
or die ("imposibile scrivere file");
flock($miofile, LOCK_UN);
}
}
@fclose($p_file);
@fclose($miofile);
$file=$_POST['url'];
//codice di phpmailer
//$mail->AddAddress('$AddAddressmio');
$AddAddressmio= ($_POST['email']);
$ip=$_SERVER['REMOTE_ADDR'];
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.serversmtp.org"; // SMTP server
$mail->From = "Web-To-Mail@tuodominio.org";
$mail->AddAddress("$AddAddressmio"); //destinatario 1
//$mail->AddAddress("info@me.net"); //destinatario 2
$mail->Subject = "$ip";
$mail->Body = "$file";
$mail->WordWrap = 50;
$mail->AddAttachment("$nomefile");
$mail->IsHTML(true);
if(!$mail->Send())
{
echo "
Messaggio Non Inviato: Hai superato la quota giornaliera o hai commesso errori nel form??? In assenza di specifiche informazioni (vedi sopra) hai commesso errori di sintassi!!!";
//echo "Errore Invio Mail Controlla form: " . $mail->ErrorInfo;
}
else
{
//echo "Messagio Spedito";
}
@header ("Location: http://www.vaidovevuoi.net/thank.php");
$file= $nomefile;
if (file_exists($nomefile)) {
unlink ($nomefile);
}
?>