logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[php] Problem ze zmiennymi i instrkcjami warunkowymi IF.

Jaro15l_90r 31 Sty 2006 18:45 1044 3
REKLAMA
  • #1 2242274
    Jaro15l_90r
    Poziom 13  
    Posty: 84
    Pomógł: 4
    Witam ponownie :D. Mam problem ze skryptem księgi gości napisanej w PHP. Tak wygląda ten skrypt:
    <?php
       $nazwa_pliku="ksiega.dat";
       
       if (($fp=fopen($nazwa_pliku,"r"))!==false)
       {
          $i=0; //ilosc wpisow
          flock($fp, LOCK_SH);
          while (($linia1=fgets($fp))!==false)
          {
             $linia2=fgets($fp);
             $linia3=fgets($fp);
             $linia4=fgets($fp);
             $linia5=fgets($fp);
             echo '<TABLE class=ksiega cellspacing=0 cellpadding=0 align=center>';
             echo '<TR valign=top><TD class=ksiega-goradolt><B>'.$linia1.'</B>';
               If ($linia2!="") { echo '[ <A href=mailto:'.$linia2.'>E-mail</A> ]'; }
               If ($linia3!="") { echo '[ <A href='.$linia3.'>WWW</A> ]'; }
             echo '</TD></TR>';
             echo '<TR><TD class=ksiega-tekst><BR>'.$linia5.'<BR><BR></TD></TR>';
             echo '<TR><TD class=ksiega-goradolt >Czas: <B>'.$linia4.'</B></TD></TR></TABLE><BR>';
             $i++;
          }
          flock($fp, LOCK_UN);
          fclose($fp);
       }   
       
       if ($i==0)   
          echo "<span style=\"font-weight: bold;\">Nie ma na razie żadnych wpisów</span><br /><br />";
       
    ?>

    Opis działania: Skrypt wykorzystuje plik ksiega.dat, wczytuje z niego pokolei 5 linii do zmiennych $linia1 (nick), $linia2 (e-mail), $linia3 (www), $linia4 (data) i $linia5 (treść wpisu). W przeglądarce wygląda to mniej więcej tak:
    nick [ E-mail ] [ WWW ]
    Treść...
    18:35:10 31-01-2006

    W skrypcie są dwie dodatkowe instrukcje warunkowe If ($linia2!="") { echo '[ <A href=mailto:'.$linia2.'>E-mail</A> ]'; } i If ($linia3!="") { echo '[ <A href='.$linia3.'>WWW</A> ]'; }. Gdy $linia2 albo $linia3 nie są puste, powinien się wyświetlić napis (hiperłącze) [ E-mail ] albo [ WWW ], a gdy puste nic nie ma się dziać (puste miejsce po nicku). Niestety właśnie nie chce to działać, czy zmienne $linia2, albo $linia3 są puste czy nie, zawsze te napisy się wyświetlają, a link wygląda tak: A href=mailto:>E-mail</A>. Gdzie popełniam błąd?

    PS. Jestem laikiem w PHP :-)
  • REKLAMA
  • #2 2242700
    sq8lst
    Poziom 13  
    Posty: 61
    Pomógł: 4
    Ocena: 1
    wczytaj caly plik do tablicy za pomoca funkcji file()
    ta funkcja stwarza duzo mniej problemow :]

    zapomnialem dodac sprawdz jeszcze skrypt ktory zapisuje dane do pliku czy odczytuje zmienie z tablicy $_POST byc mze na serwerze na ktorym masz strone sa wylaczone zmienne globalna i tylko prze ta tablice moza oddczytac dane z formularza

    pozdrawiam
  • REKLAMA
  • #3 2448376
    bald
    Poziom 11  
    Posty: 92
    Ocena: 4
    Zamiast :

    If ($linia2!="")

    daj

    if (isset($linia2)) echo"pokaz link"; else echo"nie pokazuj linka";

    isset - znaczy jesli w zmiennej zapsiano jakas wartosc.
  • #4 2457573
    Jaro15l_90r
    Poziom 13  
    Posty: 84
    Pomógł: 4
    Dzięki za wszystkie posty w tym temacie, który uważam już za zamknięty. Zrobiłem to na innej zasadzie i teraz już wszystko działa. Pozdrawiam.
REKLAMA