[PHP] Problem z html w php

0

Wiatm, dopiero zaczynam zabawę z php i pojawia mi się pewien problem z którym nie mogę sobie poradzić.
Bezproblemu zaistalowałem KRASNAL Serv 2.7.4, jezyk ustawiony na pl-iso-8859-2.
Pierwszy problem jest ze skryptami *.php mianowicie IE i FF nie wykonują ich. Pojawia sie okienko z zapytaniem przy pomocy jakiego programu ma być ten plik otwarty(domyslnie jest to notatnik) i otwierają skrypty przy pomocy notatnika. Poprawnie działa tylko opera.
Drugim problemem jest to, że php interpretuje znak > wystepujący po komendzie br jako zamknięcie php, przez co dalsza cześć nie jest wykonywana tylko wyswietlana jako tekst.

<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=iso-8859-2">
<META HTTP-EQUIV="REFRESH" CONTENT="1">
</HEAD>
<BODY BGCOLOR=WHITE TEXT=BLACK>
<TABLE BORDER=1 CELLPADDING=5 CELLSPACING=0 WIDTH=500 HEIGHT=400>
<TR><TD VALIGN=Top>
<FONT CLASS=text>
<?
  $file=fopen("chat.txt", "r");
  flock($file, 1);
  while($linia=fgets($file,81) )
  {
  echo($linia)'<br>';
  }
  flock($file, 3);
  fclose($file);
?>
</FONT>
</TR></TD></TABLE>
</BODY>
</HTML>

podręczniki z których korzystam "Bazy danych w internecie. tworzenie za pomocą PHP i MySQl" oraz "Cwiczenia z PHp i MySQl" nie dają rozwiązania na te problemy więc prosze o pomoc.

0

Jeśli dostajesz treść skryptu PHP w notatniku to znaczy, że parser PHP nie działa.
Nie ma możliwości żeby działało Ci w Operze a w FF i IE nie, bo PHP wykonuje się po stronie serwera i przeglądarka dostaje już wygenerowany kod HTML.

0
<?
  $file=fopen("chat.txt", "r");
  flock($file, 1);
  while($linia=fgets($file,81) )
  {
  echo($linia)'<br>'; // dla mnie zle...  echo $linia.'<br>'; 
  }
  flock($file, 3);
  fclose($file);
?>

Jest możliwość ze ci nie interpretuje znanczników <? , sprawdz czy zadziała jak zmienisz na <?php . Bo mozesz miec short_open_tag na off, a prawie zawsze jest short_open_tag = on

0
<?
//plik x.php
phpinfo();
?>

dzialać?

0
bordeux napisał(a)
<?
  $file=fopen("chat.txt", "r");
  flock($file, 1);
  while($linia=fgets($file,81) )
  {
  echo($linia)'<br>'; // dla mnie zle...  echo $linia.'<br>'; 
  }
  flock($file, 3);
  fclose($file);
?>

Jest możliwość ze ci nie interpretuje znanczników <? , sprawdz czy zadziała jak zmienisz na <?php . Bo mozesz miec short_open_tag na off, a prawie zawsze jest short_open_tag = on

Zmiana zapisu nic nie dała. Short_open_tag jest ustawiony na On, więc powinno działać. Dodam tylko że każdy znak > znajdujący się w funkcji/skrypcie *.php jest taraktowany jako zakończenie tejże funkcji.

piechnat napisał(a)

Jeśli dostajesz treść skryptu PHP w notatniku to znaczy, że parser PHP nie działa.
Nie ma możliwości żeby działało Ci w Operze a w FF i IE nie, bo PHP wykonuje się po stronie serwera i przeglądarka dostaje już wygenerowany kod HTML.

Przy uruchamianiu jakiegokolwiek skryptu php IE pyta się mnie czy ma go otworzyć, zapisać czy anulować, wybierając otówrz otwiera zawrtośc pliku prz pomocy notatnika.

0

Może to pytanie wydać się proste, ale jak wywołujesz skrypty w przeglądarce?

0

W tym przypadku kod wygląda tak :

<HTML>
<HEAD>
<TITLE>YGREG - Chat</TITLE>
</HEAD>
<FRAMESET ROWS="*, 60" FRAMEBORDER=0 FRAMESPACING=0 BORDER=0>
<FRAME SRC=gora.php3 NAME="gora">
<FRAME SRC=imie.htm NAME="dol" SCROLLING=NO>
</FRAMESET>
</HTML>
0

po pierwsze nie

echo($linia)'<br>';

a echo $linia . '
';

 lub ew. <code class="php">echo ($linia . '<br>');

po drugie .php3 ??? czwórka już nie jest wspierana, php 6 już za pasem a ty chcesz trójki używać ?! :| poza tym masz ustawione w konfiguracji apache żeby parsowało pliki z tym rozszerzeniem ? zmień rozszerzenie normalnie na .php i się nie wygłupiaj może lepiej

... mianowicie IE i FF nie wykonują ich.

to nie przeglądarki wykonują kod

Pojawia sie okienko z zapytaniem przy pomocy jakiego programu ma być ten plik otwarty(domyslnie jest to notatnik) i otwierają skrypty przy pomocy notatnika. Poprawnie działa tylko opera.

no bo najprawdopodobniej plik jest przesyłany z nieznanym nagłówkiem, bo serwer go nie zwraca, bo nie masz tego ustawionego. Przeglądarka powinna wyświetlić czysty tekst, lub lepiej dać plik do zapisania, więc opera akurat się zachowała w tym przypadku gorzej

Drugim problemem jest to, że php interpretuje znak > wystepujący po komendzie br jako zamknięcie php

zdaje ci się bo rośniesz

..., przez co dalsza cześć nie jest wykonywana tylko wyswietlana jako tekst.

impossible ! albo jest pokazane całe źródło, albo cała strona wynikowa
opera prawdopodobnie co najwyżej ci zjadła wszystko pomiędzy "<" a ">" nie wyświetlając tego bo potraktowała jako tag HTML, ale po kliknięciu "pokaż źródło" byś spokojnie zobaczył i ten fragment kodu
nie wmawiaj że w tym miejscu pojawiło się coś z pliku chat.txt

0

Obecnie wykorzystując WEbserva i uruchamiając skrypt, który wrzucony jest do katalogu przykładowe konto, skrypt nadal jest zamykany po znaku > za poleceniem <br> ,
i w okienku pokazuje się:

'; } flock($file, 3); fclose($file); ?>

0

a odpalasz plik przez localhost?

0
consiglieri napisał(a)

skrypt nadal jest zamykany po znaku > za poleceniem <br>

naciśnij proszę "pokaż źródło" bo twoje teorie są wkurzające

0

Wynik działanie skryptu jest taki:
http://www.fotosik.pl/pokaz_obrazek/78d61b50df438434.html

Podam kolejny przykład, oto plik komentarz.html

<html>
<head>
  <title>Części samochodowe Janka - komentarz klienta</title>
</head>
<body>

<h1>Komentarz klienta</h1>

<p>Proszę przekazać nam swoje komentarze.<p>

<form action="przetworzkomentarz.php" method=post>
Nazwisko:<br />
<input type=text name="nazwa" size=40><br />
Adres poczty elektronicznej:<br />
<input type=text name="email" size=40><br />
Komentarz:<br />
<textarea name="komentarz" cols=30 rows=5>
</textarea><br />
<input type=submit value="Wyślij komentarz">
</form>
</body>

plik przetworzkomentarz.php wygląda tak

<?php
  // utworzenie krótkich nazw zmiennych
  $nazwa=$_POST['nazwa'];
  $email=$_POST['email'];
  $komentarz=$_POST['komentarz'];
  $adresdo = '[email protected]';
  $temat = 'Komentarz ze strony WWW';
  $zawartosc = 'Nazwa klienta: '.$nazwa."\n"
               .'Adres pocztowy: '.$email."\n"
               ."Komentarz klienta: \n".$komentarz."\n";
  $adresod = '[email protected]';

  mail($adresdo, $temat, $zawartosc, $adresod);
?>
<html>
<head>
  <title>Części samochodowe Janka — komentarz przyjęty</title>
</head>
<body>
<h1>Komentarz przyjęty</h1>
<p>Komentarz Państwa został wysłany.</p>
</body>
</html>

Oba pliki wrzucone są w folder httpd

http://www.fotosik.pl/pokaz_obrazek/4c16d02a79a663fb.html

Tak wygląda skrypt:
http://www.fotosik.pl/pokaz_obrazek/96b7e82dfd45ed8a.html

Po wypełnieniu formularza i kliknięciu "wyslij komentarz" przeglądarka pyta się, przy pomocy czego to otworzyć, i tak to wygląda w Operze:
http://www.fotosik.pl/pokaz_obrazek/8fe204500032bb01.html

A tak w IE:
http://www.fotosik.pl/pokaz_obrazek/381a3b98f94cd45f.html

0
file://localhost/C:/Program Files/WebServ/httpd/przetworzkomentarz.php ??!
C:\Documents and Settings\Czarek\Dane aplikacji\Opera\Opera\profile\cache4\temporary_download ???!!!

żarty sobie robisz ?
odsyłam do jakiegoś kursu, ale nie php ale o obsłudze windowsa i komputera ogółem

1 użytkowników online, w tym zalogowanych: 0, gości: 1