|
|
|
| Здравствуйте, помогите!
Хочу написать скрипт подписки и отказа от рассылки.Не правельно перезаписывается файл после удаления строки с E-mail, и строки(первая) не удаляются, записываются пустые строки.
elseif($pod=="1"){
$p="\n$ml";
$pd=fopen($pdk,'a');
fwrite($pd,$p);
fclose($pd);
$pd=fopen($pdk,'r');
$r=fread($pd,20000);
fclose($pd);
$lines=file($pdk);
$a=count($lines);
for($i=1;$i<$a;$i++){
mail ("$lines[$i]", "Подписка", $txt,$headers);
}
echo "<div style=color:silver;>Вы подписались на рассылку, спасибо!<br></div>";
}
elseif($pod=="2"){
$lines=file($pdk);
$a=count($lines);
for($i=1;$i<$a;$i++){
if($ml==$lines[$i]){
unset($lines[$i]);
}
}
$pd=fopen("$pdk","w+") or die('файл недоступен для записи');
fputs($pd,implode("",$lines));
fclose($pd);
echo "<div style=color:silver;>Вы отказались от рассылки.<br></div>";
}
|
| |
|
|
|
|
|
|
|
для: 2wings
(14.09.2011 в 20:13)
| | А пример готового файла можно глянуть?
PS В цикле for счетчик $i лучше начинать с нуля 0, иначе будете пропускать первый элемент. | |
|
|
|
|
|
|
|
для: cheops
(14.09.2011 в 20:49)
| | Вот код,еще вставил if($lines==""){continue;}, не помогает, начинать цикл с 0 то же без изменения.Для работы нужны два файла txt: podpiska.txt и coment.txt.
<?php
$headers = 'Content-type: text/html; charset=utf-8';
$time=date("H:i d M Y");
$nm=$_POST['nm'];
$ml=$_POST['ml'];
$txt=$_POST['txt'];
$pod=$_POST['d'];
$pdk="podpiska.txt";
if (!isset($_POST['nm'])){
echo "<form method='post'>
<input type='text' name='nm'> Имя<br><br>
<input type='text' name='ml'> E-mail<br><br>
<textarea name='txt' rows='7' cols='50'> </textarea><br><br>
<select name='d'>
<option value='' selected>
<option value='1'>Подписаться
<option value='2'>Отказаться
</select> Подписаться на комментарии<br><br>
<input type='submit' value='Отправить'> <input type='reset' value='Clear' alt='Click here to start over' /><br>
</form><br>";
$f="coment.txt";
$com=fopen($f,'r');
$r=fread($com,20000);
fclose($com);
$lines=file($f);
$a=count($lines);
for($i=1;$i<$a;$i++){
echo $lines[$i];
}
}
elseif(empty($txt)||empty($nm)||$ml=='' echo "<div style=color:red;>Вы не заполнили форму</div>";
echo "<form method='post'>
<input type='text' name='nm'> Имя<br><br>
<input type='text' name='ml'> E-mail<br><br>
<textarea name='txt' rows='7' cols='50'> </textarea><br><br>
<select name='d'>
<option value='' selected>
<option value='1'>Подписаться
<option value='2'>Отказаться
</select> Подписаться на комментарии<br><br>
<input type='submit' value='Отправить'> <input type='reset' value='Clear' alt='Click here to start over' /><br>
</form>";
}
elseif($pod==""){
echo"<form method='post'>
<input type='text' name='nm'> Имя<br><br>
<input type='text' name='ml'> E-mail<br><br>
<textarea name='txt' rows='7' cols='50'> </textarea><br><br>
<select name='d'>
<option value='' selected>
<option value='1'>Подписаться
<option value='2'>Отказаться
</select> Подписаться на комментарии<br><br>
<input type='submit' value='Отправить'> <input type='reset' value='Clear' alt='Click here to start over' /><br>
</form><br>";
$a="\n<div id='footer2'><b><a href=\"mailto:$ml\">$nm</a><br>$time </b><br><hr width=699 align=left>$txt</div><br>";
$com=fopen("coment.txt",'a');
fwrite($com,$a);
fclose($com);
$f="coment.txt";
$com=fopen($f,'r');
$r=fread($com,20000);
fclose($com);
$lines=file($f);
$a=count($lines);
for($i=0;$i<$a;$i++){
echo $lines[$i];
}
$lines=file($pdk);
$a=count($lines);
for($i=0;$i<$a;$i++){
mail ("$lines[$i]", "Подписка", $txt,$headers);
}
}
elseif($pod=="1"){
$p="\n$ml";
$pd=fopen($pdk,'a');
fwrite($pd,$p);
fclose($pd);
$lines=file($pdk);
$a=count($lines);
for($i=0;$i<$a;$i++){
mail ("$lines[$i]", "Подписка", $txt,$headers);
}
echo "<div style=color:silver;>Вы подписались на рассылку, спасибо!<br></div>";
}
elseif($pod=="2"){
$lines=file($pdk);
$a=count($lines);
for($i=0;$i<$a;$i++){
if($ml==$lines[$i]){
unset($lines[$i]);
}
}
$pd=fopen("$pdk","w+");
if($lines==""){continue;}
fputs($pd,implode("\n",$lines));
fclose($pd);
echo "<div style=color:silver;>Вы отказались от рассылки.<br></div>";
}
?>
|
| |
|
|
|