Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z czytaniem PHP
Forum PHP.pl > Forum > Przedszkole
zxc__
Nie byłem pewien jak zatytuować temat
Mój problem polega na tym, że nie czyta mi dobrze PHP
Używałem WebServ i EasyPHP, efekty są takie same
Przykład prostego formularza przyjmującego zamówienie. Przyjmie, przeniesie na stronę z podsumowaniem... i tutaj pojawia się kłopot. Wyświetla czysty kod, nie przetwarza go
Czy to kwestia ustawień serwera, czy mój błąd? Mając nadzieję na to drugie, podmieniłem swój formularz na dołączony do książki "PHP i MySQL Vademecum Profesjonalisty...", ale efekt jest ten sam.
Kiedyś się trochę uczyłem PHP, nie miałem tego problem. Nie jestem w tym obeznany. Mógłby mi ktoś coś doradzić, naprowadzić?
mikolaj51
A możesz dokładniej określić jaki to kod, a nawet lepiej jakbyś go wkleił tu na forum wink.gif Będzie łatwiej stwierdzić czego to wina
Helid
1. Daj kod miedzy <? A ?>
2. Ustaw rozszerzenie pliku na .php upewnij sie ze nie jest .php.txt (w windowsie opcje wysiedlenia folderów)
zxc__
taki banał chociażby

<?php
echo '<p>';
echo 'hello';
echo '</p>';
?>

Utworzyłem to w PitPadzie, zapisując nadałem nazwę proba.php, figuruje jako plik php, nie php.txt
!*!
a formularz?
zxc__
Cytat(!*! @ 22.08.2012, 01:24:42 ) *
a formularz?


voila!

formularz.html

<form action="przetworzzamowienie.php" method=post>
<table border=0>
<tr bgcolor=#cccccc>
<td width="150">Produkt</td>
<td width="15">Ilosc</td>
</tr>
<tr>
<td>Ksi?żki</td>
<td align="center"><input type="text" name="zamowionko" size="3" maxlenght="3" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Złóż zamówienie" /></td>
</tr>
</table>
</form>

przetworzzamowienie.php

<html>
<head>
<title>Zamówienie</title>
</head>
<body>
<h1>Zamówienie</h1>
<?
$ilosc = $zamowionko;

if($ilosc == 0)

if($ilosc == 0) {
echo '<p style="colour:red">';
echo 'Na poprzedniej stronie nie zostało złożone żadne zamówienie';
echo '</p>'; }
else {
echo $ilosc; }
?>
</body>
</html>
ciekawskiii
edytowany

ups... nie zauwazylem, jednak faktycznie masz php... to zmeczenie biggrin.gif
PanGuzol
Spróbuj
  1. <?php phpinfo(); ?>

Jeśli nie działa, to serwer jest nie skonfigurowany poprawnie do obsługi php.
Na pewno odpalasz te strony poprzez localhost a nie w systemie plików.
zxc__
Jeżeli chodzi o powyższy formularz, po przenisieniu na stronę z wynikami zamówienia wyświetla się coś takiego:

Zamówienie
'; echo 'Na poprzedniej stronie nie zostało złożone żadne zamówienie'; echo '
'; } else { echo $ilosc; } ?>

Cytat(PanGuzol @ 22.08.2012, 21:11:32 ) *
Spróbuj
  1. <?php phpinfo(); ?>

Jeśli nie działa, to serwer jest nie skonfigurowany poprawnie do obsługi php.
Na pewno odpalasz te strony poprzez localhost a nie w systemie plików.


phpinfo działa
dr_NO
Może short tagi Ci mieszają, sprawdź zamiast <? dać <?php
PanGuzol
Używaj tagów <?php ?> zamiast <? ?>
zxc__
<?php ... ?>, <? ... ?>, <% ... %> efekty dają takie same, jeśli natomiast chodzi o <script LANGUAGE='php'> ... </SCRIPT>, efekt jest taki, że pozostaje sam nagłówek "Zamówienie", reszty w ogóle nie wyświetla
PanGuzol
To bardzo dziwne, rozumiem, że phpinfo() i te skrypt umieściłeś w tym samym katalogu? Pierwsze działa ale drugie nie? Masz w tym katalogu jakiś plik .htaccess?
dr_NO
Dobra,
od podstaw:
$ilosc = $zamowionko; // to jest źle, powinno być $ilosc = $_POST['zamowionko'];

Masz tam dwa te same waruki (po kiego?)
if($ilosc == 0) {
if($ilosc == 0) {

p style="colour:red // nie ma czegos takiego jak colour, jest color wink.gif

A tak poza tym, mam szybkie pytanie...
Masz formularz w pliku html, jak go odpalasz? dwuklikiem nań? Tak to prawdopodobnie nie zadziała wink.gif
Odpal przeglądarkę, klep adres z palca (np. na mampie działa serwer z portem 2222, i wtedy adres mam: localhost:2222/plik.html, jak masz podobnie i odpalasz dwuklikiem plik formularz.html, i wyślesz formularz, to wyślesz go z pominięciem interpretera php!.

I teraz zrób tak, utwórz nowy dokument, zapisz go jako "test.php" i wklej to tam:
  1. <html>
  2. <head>
  3. <title>Zamówienie</title>
  4. </head>
  5. <body>
  6. <h1>Zamówienie</h1>
  7.  
  8. <form action="test.php" method="post">
  9. <table border="0">
  10. <tr bgcolor="#cccccc">
  11. <td width="150">Produkt</td>
  12. <td width="15">Ilosc</td>
  13. </tr>
  14. <tr>
  15. <td>Ksiażki</td>
  16. <td align="center"><input type="text" name="zamowionko" size="3" maxlenght="3" /></td>
  17. </tr>
  18. <tr>
  19. <td colspan="2" align="center"><input type="submit" value="Złóż zamówienie" /></td>
  20. </tr>
  21. </table>
  22. </form>
  23.  
  24. <?php
  25. $ilosc = $_POST['zamowionko'];
  26.  
  27. if($ilosc == 0) {
  28. echo '<p style="color:red">';
  29. echo 'Na poprzedniej stronie nie zostało złożone żadne zamówienie';
  30. echo '</p>';
  31.  
  32. } else {
  33. echo 'wpisano ilość: '.$ilosc;
  34. }
  35. ?>
  36. </body>
  37. </html>

zapisz, i wywołaj adres: twojhost/test.php i sprawdz czy dziala.
zxc__
dr_NO, kurde, działa!

Mój główny błąd, to właśnie wstawienie "$zamowionko" zamiast "$_POST['zamowionko']"

Dziękuję. Na zawsze oddany

zxc__

PS: Wklepuję zawsze, nie dwuklikiem
dr_NO
No i git.
Nie zapominaj o cydzysłowach i apostrofach, poczytaj o typach zmiennych/danych, i od razu o filtrowaniu danych przy przesyłaniu formularzy, pozbędziesz się problemów w przyszłości wink.gif)
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.