Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> IF spełniony za każdym razem w pętli FOR, trudno opisać... zobaczcie sami
tomilipin
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Cześć!
Natrafiłem na bardzo dziwny problem z pętlą FOR... Może ktoś z Was będzie w stanie mi pomóc. Działanie tej pętli mam już opanowane, widzę że nie zrobiłem w niej błędu (lub błędu nie widzę). Poniższy kod to wycinek skryptu do prostej listy sybskrypcyjnej .

Chodzi o to, że za każdym razem, nie ważne który adres e-mail wpiszę- zostaje usunięty ostatni adres! Poszczególne wpisy mam oddzielone poprzez \n . To dziwne zachowanie pętli FOR i IF polega na tym, że warunek zostaje spełniony za każdym razem, w wyniku czego $usunnumer ma wartość taką, ile razy została wykonana pętla- bo za każdym razem warunek w IFie jest spełniony, i za każdym wykonaniem pętli wykonywana jest także zawartość IFa (IMG:http://forum.php.pl/style_emoticons/default/mad.gif) Próbowałem już przestawiać zmienne $adresy i $adres na różne sposoby, efekt ciągle ten sam lub jeszcze gorszy (warunek nie był spełniony).

Czy ktoś mógłby wskazać, gdzie jest błąd? Zapewne chodzi o malutki błąd logiczny bo składniowych nie mam. Bardzo proszę o pomoc...
Jeśli brakuje jakichś danych- proszę pisać, od razu podeślę na forum brakujący kod.
  1. <?
  2. //sprawdzam co wciśnięto i czy coś wpisano
  3. if ($_POST['usu'] and $_POST['adres']) {
  4. $adres=$_POST['adres']; //dla późniejszego uproszczenia
  5. $adresy = file('lista.adr'); //traktuję plik jako tablicę
  6.  
  7. if (!eregi(&#092;"^.+@.+..+$\", $_POST['adres'])) {
  8. exit(&#092;"Niepoprawny adres e-mail...\");
  9. }
  10. for ($index=&#092;"0\"; $index < count($adresy); $index++) {
  11. if($adresy[$index]=$adres) {
  12. echo &#092;"linijka $index \".$adresy[$index].\"<br>\"; //tylko dla testów
  13. $usunnumer=$index;
  14. }
  15.  
  16. }
  17.  
  18. $plik = file('lista.adr');
  19. unset($plik[$usunnumer]);
  20. $f = fopen('lista.adr', 'w');
  21.  foreach($plik as $linia){
  22.  fputs($f, $linia);
  23.  }
  24. fclose($f);
  25. echo &#092;"Podany adres e-mail został usunięty z listy.\";
  26. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 18:16