Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie adresów
Forum PHP.pl > Forum > Przedszkole
bronx
witam

napisałem skrypt rozsyłający subskrypcje, wszystko chodzi dobrze tylko mam taki problem:

adresy e-mail zapisuje do pliku i teraz jak ma wyglądać skrypt, który by kasował te wpisy ?

ma być coś takiego, że jest formularz i jak ktoś nie chce dostawać listów to wpisuje tam swój adres e-mail i jeżeli taki sam adres jest zapisany w pliku to żeby go skasowało ?

chyba wiecie o co mi chodzi smile.gif

pozdrawiam
Puciek
Mniej więcej.


Musisz zebrać plik do zmiennej, użyć explode" title="Zobacz w manualu PHP" target="_manual i potem wybrać odpowiednie dane z tablicy, wyczyścić i zapisać smile.gif
bronx
Cytat(Puciek @ 2004-07-01 22:25:04)
Mniej więcej.


Musisz zebrać plik do zmiennej, użyć explode" title="Zobacz w manualu PHP" target="_manual i potem wybrać odpowiednie dane z tablicy, wyczyścić i zapisać smile.gif

no właśnie, tylko że nie bardzo wiem jak taki skrypt ma wyglądać sad.gif

dodający wygląda tak:

  1. <?
  2.  $handle = fopen(&#092;"emaile.php\", \"a\");
  3.  fwrite($handle, $email.&#092;"n\");
  4.  fclose($handle);
  5.  
  6.  echo &#092;"<CENTER>Twój e-mail został dodany</CENTER>\";
  7. ?>
djpeterek
  1. <? 
  2. if($_GET['wybor'] == &#092;"dodaj\"){ 
  3. //dodawanie emaila 
  4. $file=fopen(&#092;"email.txt\",\"a+\"); 
  5. flock($file,2); 
  6. $zm=$zm.&#092;"$mailn\";
  7. fwrite($file,$zm); 
  8. flock($file,3); 
  9. fclose($file); 
  10. echo &#092;"<center>dodano adres $mail</center>\"; 
  11. } 
  12. else 
  13. if($_GET['wybor'] == &#092;"usun\"){ 
  14. //kasowanie maila 
  15. $zmienna=file(&#092;"email.txt\"); 
  16. unset($zmienna[$linia]); 
  17. $file=fopen(&#092;"email.txt\",\"w\"); 
  18. fwrite($file,str_replace(&#092;"$mail\",\"\",join('',$zmienna))); 
  19. fclose($file); 
  20. echo &#092;"<center>usunięto adres $mail</center>\"; 
  21. }
  22. ?>
mam nadzieje ze moj kod sie na cos przyda Rkingsmiley.png
formularz
  1. <form action="subskrypcja.php" method="post">
  2. <input type="text" name="mail" size="15">
  3. <select name="wybor" size="1">
  4. <option value="dodaj">Dodaj e-mail</option>
  5. <option value="usun">Usuń e-mail</option>
  6. </select><input type="submit" value="Przeslij"></form>
bronx
coś nie bardzo chce działać te Twój skrypt :/ sprawdzałeś go czy pisałeś z głowy ?

Czy wie ktoś jak ma wyglądać skrypt usuwający tak, żeby pasował do tego dodającego e-maile questionmark.gif

z góry dziękuje za pomoc
djpeterek
jakbym nie sprawdzal to bym nie dawal ale sprawdze jeszcze raz
bronx
Cytat(djpeterek @ 2004-07-02 20:53:09)
jakbym nie sprawdzal to bym nie dawal ale sprawdze jeszcze raz

i co działa ? jak dodaje adres to po wciśnięciu Prześlij nie wyświetla nawet tego napisu "adres dodany/adres usunięty"

ehh :/
Misiek
Wiesz, tak po Twojemu to według mnie trudno będzie wybrnąć z tego. Chodzi mi o to, że zakładasz, że jeśli email już istnieje na liście to od razu go usuwa. Ja proponuję dołączyć jeszcze dwa pola radio pod polem text. I zaznaczenie któregoś z nich będzie oznaczać dopisanie się do listy lub wypisanie z niej. Napisałem taki skrypt:

  1. <?php
  2.  
  3. if ($_POST ['email']) {
  4.  $emaile_p = file (&#092;"pliki/emaile.txt\", \"r\");
  5.  $ilosc_maili = count ($emaile_p);
  6.  if ($_POST ['dlu'] == 'd') {
  7. for ($i=0; $i<$ilosc_maili; $i++) {
  8.  $emaile_p [$i] = chop ($emaile_p [$i]);
  9.  if ($emaile_p [$i] == $_POST ['email']) {
  10. print 'Twój e-mail figuruje już na liście.';
  11. $jest = 1;
  12.  }
  13. }
  14. if (!($jest)) {
  15.  $plik = fopen (&#092;"pliki/emaile.txt\", \"a\");
  16.  flock ($plik, 2);
  17.  fputs ($plik, $_POST ['email'].&#092;"n\");
  18.  flock ($plik, 3);
  19.  fclose ($plik);
  20.  print 'Twój adres e-mail został zapisany.';
  21. }
  22.  } else {
  23. $plik = fopen (&#092;"pliki/emaile.txt\", \"w\");
  24. flock ($plik, 2);
  25. for ($i=0; $i<$ilosc_maili; $i++) {
  26.  $emaile_p [$i] = chop ($emaile_p [$i]);
  27.  if ($emaile_p [$i] != $_POST ['email']) {
  28. fputs ($plik, $emaile_p [$i].&#092;"n\");
  29.  } else {
  30. $usunieto = 1;
  31.  }
  32. }
  33. flock ($plik, 3);
  34. fclose ($plik);
  35. if ($usunieto) {
  36.  print 'Twój e-mail został usunięty z listy.';
  37. } else {
  38.  print 'Nie ma takiego adresu e-mail na liście.';
  39. }
  40.  }
  41. }
  42.  
  43. ?>


No i jeszcze formularz:

  1. <form method="post">
  2. <input type="text" name="email"><br>
  3. <input type="radio" name="dlu" value="d" checked>Dodaj e-mail<br>
  4. <input type="radio" name="dlu" value="u">Usuń e-mail<br>
  5. <input type="submit" value="Wyślij">


Tylko jeszcze mam pytanie: skrypt u mnie działa, dodaje, usuwa itd., ale cały czas wyskakuje mi: Notice: Undefined index: email in - i tu wskazuje na tą pierwszą linijkę skryptu:
  1. <?php
  2. if ($_POST ['email']) {
  3. ?>


Dlaczego?
bronx
a jakieś takie dziwne znaczki:

&#33

mam zamienić na... ?
Ludvik
na znak wykrzyknika "!"
bronx
WIELKIE dzięki Misiek

wszystko działa i nie wyświetla żadnych błędów, szkoda, że nie ma już opcji "pomógł" ale trudno smile.gif

JESZCZE RAZ WIELKIE DZIKI exclamation.gif

pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.