Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z obsługą formularza html przez skrypt php
Forum PHP.pl > Forum > Przedszkole
zoomol
Witam!

Jestem początkującym php'kiem. Mam problem z zczytaniem z źródłowego kodu html danych do przetworzenia na stronie php.

Oto moja strona html:

Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-win-1250" />
<title> Strona potwierdzania zakupu przedmiotu</title>
</head>
<body bgcolor="#669999" link="lightskyblue" vlink="red">

<p align="center">
<font face="courier new" size="4" color="yellow">

Witaj!!! <br> Znajdujesz się na stronie potwierdzania zakupu towaru. Poniżej znajduje się formularz, po wypełnieniu którego bezproblemowo sfinalizujemy transakcję kupna-sprzedaży. Wypełnij go, i kliknij na przycisk "Wyślij formularz".</p>

<script TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
function sprawdz(formularz)
{
  for (i = 0; i < formularz.length; i++)
  {
    var pole = formularz.elements[i];
    if ((pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
    {
      alert("Proszę wypełnić wszystkie pola!");
      return false;
    }
  }
  return true;
}
//-->
</SCRIPT>

<form action="obsluga_ankiety.php" method="post" enctype="text/plain" onreset="if (!confirm('Czy na pewno chcesz wyczyścić cały formularz?')) return false" ENCTYPE="text/plain" onsubmit="if (sprawdz(this)) return true; return false">
<fieldset>
<legend><font size="-1" color="lightskyblue"> Twoje dane, wybór opcji płatności i wysyłki</font></legend>
<table align="center" cellpadding="3" cellspacing="4">
<tr>
<td>
Imię: </td><td><input type="text" name="imie" input size="30">
</td></tr><tr><td>
Nazwisko: </td><td><input type="text" name="nazwisko" input size="30"><br>
</td></tr><tr><td>
Login Allegro: </td><td><input type="text" name="login_allegro" input size="30"><br>
</td></tr><tr><td>
Twój adres eMail: </td><td><input type="text" name="user_email" input size="30"><br>
</td></tr></table><br>

<table align="center" cellpadding="3" cellspacing="4">

<tr><td>Wybierz:</td>
<td><input type="radio" name="adres" value="brak">Brak</td> <td><input type="radio" name="adres" value="ulica">Ulica</td>
<td><input type="radio" name="adres" value="osiedle">Osiedle</td>
<td><input type="radio" name="adres" value="aleja">Aleja</td>
<td><input type="radio" name="adres" value="plac">Plac</td>
<td><input type="text" name="nazwa_ulicy" input size="35"></td></tr></table>
<table align="center" cellpadding="3" cellspacing="4">
<tr><td>
Nr domu: </td><td> <input type="text" name="nr_domu" input size="3" maxlength="4"></td><td> Nr mieszkania: </td><td><input type="text" name="nr_mieszk" input size="3" maxlength="4"></td><tr>
<tr><td>
Kod pocztowy:</td><td> <input type="text" name="kod_pocztowy" input size="4" maxlength="6"></td><td> Miejscowość: </td><td> <input type="text" name="miejscowosc" input size="30"></td></tr>
</table>

<table align="center" cellpadding="3" cellspacing="3">
<tr><td rowspan="4">
Wybierz formę płatności:</td></tr><tr><td><input type="radio" name="platnosc" value="przelew">Płatność przelewem/wpłatą na konto*),* *) </td></tr><tr><td>
<input type="radio" name="platnosc" value="pobranie">Za pobraniem pocztowym* * *)</td></tr>
<tr><td><input type="radio" name="platnosc" value="o_osobisty">Odbiór osobisty* * * *)</td></tr><br>
</table>
<br>
<table align="center" cellpadding="3" cellspacing="3">
<tr><td rowspan="5">
Wybierz formę przesyłki:</td></tr><tr><td><input type="radio" name="przesylka" value="zwykla">Przesyłka zwykła*)</td></tr><tr><td><input type="radio" name="przesylka" value="priorytet">Przesyłka priorytetowa* *)</td></tr><tr><td><input type="radio" name="przesylka" value="pobranie">Przesyłka za pobraniem pocztowym* * *)</td></tr><tr><td><input type="radio" name="przesylka" value="o_osobisty">Odbiór osobisty* * * *)</td></tr>
</table>

<table align="center">
<tr><td><font size="-1px" color="lime" face="tahoma"><b>*)</font></b></td><td>
<font size="1" color="lime" face="tahoma"><b>
Aby przedmiot został wysłany przesyłką ZWYKŁĄ, do wylicytowanej kwoty należy doliczyć dodatkowo 5 PLN (lub koszty podane na aukcji, w której licytowałeś)<br></font></b></td></tr><tr><td><font size="-1px" color="lime" face="tahoma"><b>**)</font></b></td><td><font size="1" color="lime" face="tahoma"><b>
Aby przedmiot został wysłany przesyłką PRIORYTETOWĄ, do wylicytowanej kwoty należy doliczyć dodatkowo 7 PLN (lub koszty podane na aukcji, w której licytowałeś)<br></font></b></td></tr><tr><td><font size="-1px" color="lime" face="tahoma"><b>***)</font></b></td><td><font size="1" color="lime" face="tahoma"><b>
Aby przedmiot został wysłany ZA POBRANIEM POCZTOWYM, do wylicytowanej kwoty należy doliczyć dodatkowo 11 PLN (lub koszty podane na aukcji, w której licytowałeś)<br></font></b></td></tr><tr><td><font size="-1px" color="lime" face="tahoma"><b>****)</font></b></td><td><font size="1" color="lime" face="tahoma"><b>
Odbiór osobisty możliwy tylko i wyłącznie po wcześniejszym ustaleniu miejsca i godziny spotkania. Brak kosztu przesyłki !</b></font></td></tr></table><br>
</fieldset><fieldset><legend><font size="-1" color="lightskyblue">Wylicytowany przedmiot</font></legend>
<br>
<table align="center" cellpadding="3" cellspacing="4">
<tr><td>
Nazwa zakupowanego przedmiotu: </td><td> <input type="text" name="nazwa_przedmiotu" input size="62"></td></tr>
<tr><td>
Ilość sztuk:</td><td><input type="text" name="ilosc" input size="2" maxlength="2"></td></tr></table><br>
<p align="center">
</fieldset>
<br><p align="center">
  <input type="reset" name="reset" value="Wykasuj formularz">
  <input type="submit" value="Wyślij formularz"><br><br>
</p>
</form>


<p align="center"><img src="http://zumol.w.interia.pl/created123.gif"></p>


  
</body>
</html>


A oto strona obsługująca stronę html'ową:

Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-win-1250" />
<title> Strona potwierdzania zakupu przedmiotu</title>
</head>
<body bgcolor="#669999" link="lightskyblue" vlink="red">

<p align="left">
<font face="courier new" size="4" color="yellow">

<?php

// Ustawienia błędów
ini_set ('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);


// Podziękowanie za wypełnienie ankiety i prośba o sprawdzenie czy wszystko jest OK.
print "$imie $nazwisko, dziękuję za wypełnienie ankiety. Sprawdź, czy wszystkie wprowadzone przez Ciebie dane sš poprawne:<br /><br />";

// Wyświetlenie danych wprowadzonych do formularza ankieta_allegro.html.
print "<u>Twoje dane:</u><br />";
print "Imię: <b>$imie</b><br />";
print "Nazwisko: <b>$nazwisko</b><br />";
print "Login z Allegro: <b>$login_allegro</b><br />";
print "Adres e-mail: <b>$user_email</b><br /><br />";

print "<u>Adres, na który ma być przesłana przesyłka:</u><br />";
print "Ulica: <b>$adres $nazwa_ulicy $nr_domu $nr_mieszk</b><br />";
print "Kod, miejscowość: <b>$kod_pocztowy $miejscowosc</b><br /><br />";

print "<u>Dane o przesyłce:</u><br />";
print "Sposób płatności: <b>$platnosc</b><br />";
print "Sposób przesyłki: <b>$przesylka</b><br />";
print "Nazwa przedmiotu: <b>$nazwa_przedmiotu</b><br />";
print "Ilość sztuk: <b>$ilosc</b><br /><br />";

print "Jeśli wszystko się zgadza, kliknij <a href=\"dziekuje.html\"> WYŚLIJ!!!</a>, lecz jeśli coś nie gra, kliknij <a href=\"ankieta_allegro.html\"> WSTECZ!!!</a>.<br /><br />";

// konkatenacja adresów.
$adresa = $adres. ' ' . $nazwa_ulicy. ' ' . $nr_domu. ' ' . $nr_mieszk;
$adresb = $kod_pocztowy. ' ' . $miejscowosc;

// $tresc to cała zawartość e-maila.
$tresc = "Imię: $imie, Nazwisko: $nazwisko, Login z Allegro: $login_allegro, Adres e-mail: $user_email, Adres: $adresa, $adresb, Sposób płatnoœci: $platnosc, Sposób przesylki: $przesylka, Nazwa przedmiotu: $nazwa_przedmiotu, Ilość sztuk: $ilosc";

// wysyłka mailem zawartości formularza w określonej postaci przez $tresc.
mail ( 'zoomol@orange.pl', 'Ankieta Allegro', 'Dane do wysyłki: $tresc', 'From: $user_email' );


?>
</font>
</p>
</body>
</html>


Nie wiem co zrobiłem źle lub czego nie zrobiłem wcale... winksmiley.jpg Proszę o pomoc w ustawieniu tego formularza oraz pliku *.php obsługującego formularz.

Z góry bardzo dziękuję za pomoc winksmiley.jpg

Pozdrawiam
Zoomol
Fipaj
print "Imię: <b>$imie</b><br />";

na:

print "Imię: <b>" . $_POST['imie'] . "</b><br />";

i tak we wszystkich.

btw, śmieciowy kod. gdzie ty się chłopie uczyłeś HTML-a? smile.gif
zoomol
Dziękuję za szybką odpowiedź.

u mnie w linii:

  1. print "Jeśli wszystko się zgadza, kliknij <a href=\"dziekuje.html\"> WYŚLIJ!!!</a>, lecz jeśli coś nie gra, kliknij <a href=\"ankieta_allegro.html\"> WSTECZ!!!</a> i wypełnij ankietę jeszcze raz.<br /><br />";


pojawia się następujący błąd:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /obsluga_ankiety.php on line 43

Nie wiem o co chodzi?questionmark.gif Czy jestem niewidomy i czegoś tu nie widzę, czy serwer mi nie działa....

Dziękuję i pozdrawiam
Zoomol

PS. html i php uczę się z książek... Wiem że moja wiedza może być uboga i "wiejska" winksmiley.jpg
Fipaj
Do wiedzy ubogiej się tu nie czepiamy - w końcu na tym forum właśnie się uczymy winksmiley.jpg Gorzej z tą wiejskością winksmiley.jpg

Prościej będzie, jeśli do kodu HTML będziesz używał apostrofów, wtedy znikną problemy z cudzysłowami:

  1. <?php
  2. print 'Jeśli wszystko się zgadza, kliknij <a href="dziekuje.html"> WYŚLIJ!!!</a>, lecz jeśli coś nie gra, kliknij <a href="ankieta_allegro.html"> WSTECZ!!!</a> i wypełnij ankietę jeszcze raz.<br /><br />';
  3. ?>


Teraz powinno być OK. A jeśli błąd cały czas wyskakuje, to sprawdź poprzenie linijki pod względem tych cudzysłowów. I radzę używać jakiegoś edytora z kolorowaniem składni, to ułatwia błyskawiczne wyszukiwanie błędów winksmiley.jpg
zoomol
Dzięki bardzo, zadziałało winksmiley.jpg

Ale pojawił mi się znów inny problem (ja to mam pecha), do tej pory nie było z tym problemów, a tu nagle "bang!!"

Otórz w skrypcie:

Kod
mail(zoomol@orange.pl, Ankieta Allegro, Dane z Allegro: $_POST['tresc'], From: $_POST['user_email']);


Pojawiają się różne komunikaty, próbowałem wstawiać między wartości cudzysłowy, apostrofy, dzielić je na różny sposób, ale za każdym razem jakiś błąd mi się pojawia... ;(

Nie wiem co z tym zrobić....

Proszę zatem o pomoc i z góry dziękuję

Pozdr
Zoomol

OK Ok... działa mi wysyłka na maila, (chyba) działa mi przesłanie danych do formularza, ale niestety :

Po 1. Dostaję maila w następującej postaci:

OD: $user_email@orange.pl
Temat: Ankieta
Treść: "Dane do wysyłki: $tresc"

Po 2. Na stronie obsluga_ankiety.php nie pojawiają się wartości, jakie mają być wyświetlane przez funkcję "print"

Na przykład:

Kod
// Podziękowanie za wypełnienie ankiety i prośba o sprawdzenie czy wszystko jest OK.
print "" . $_POST['imie'] . " " . $_POST['nazwisko'] . ", dziękuję za wypełnienie ankiety. Sprawdź, czy wszystkie wprowadzone przez Ciebie dane są poprawne:<br /><br />";

// Wyświetlenie danych wprowadzonych do formularza ankieta_allegro.html.
print "<u>Twoje dane:</u><br />";
print "Imię: <b>" . $_POST['imie'] . "</b><br />";
print "Nazwisko: <b>" . $_POST['inazwisko'] . "</b><br />";
print "Login z Allegro: <b>" . $_POST['login_allegro'] . "</b><br />";
print "Adres e-mail: <b>" . $_POST['user_email'] . "</b><br /><br />";


Wyświetla mi się tylko to co widoczne na obrazku (czyli tekst ale bez wartości).


Proszę o pomoc, bo próbuję z całych sił coś tu wykombinować, ale nie mam z tego wymiernych efektów.

Z góry dziękuję i pozdrawiam
Zoomol
Gość
Teraz wszystko dziala (porownaj sobie co miales zle):
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html;charset=iso-win-1250" />
  6. <title> Strona potwierdzania zakupu przedmiotu</title>
  7. </head>
  8. <body bgcolor="#669999" link="lightskyblue" vlink="red">
  9.  
  10. <p align="left">
  11. <font face="courier new" size="4" color="yellow">
  12.  
  13. <?php
  14. // Ustawienia błędów
  15. ini_set ('display_errors', 1);
  16. error_reporting(E_ALL & ~E_NOTICE);
  17.  
  18.  
  19. // Podziękowanie za wypełnienie ankiety i prośba o sprawdzenie czy wszystko jest O
    K.
  20. print $_POST['imie'].' '. $_POST['nazwisko']. '.dziękuję za wypełnienie ankiety. Sprawdź, czy wszystkie wprowadzone przez Ciebi
    e dane sš poprawne:<br /><br />'
    ;
  21.  
  22. // Wyświetlenie danych wprowadzonych do formularza ankieta_allegro.html.
  23. print '<u>Twoje dane:</u><br />';
  24. print 'Imię: <b>'.$_POST['imie'].'</b><br />';
  25. print 'Nazwisko: <b>'.$_POST['nazwisko'].'</b><br />';
  26. print 'Login z Allegro: <b>'.$_POST['login_allegro'].'</b><br />';
  27. print 'Adres e-mail: <b>'.$_POST['user_email'].'</b><br /><br />';
  28.  
  29. print '<u>Adres, na który ma być przesłana przesyłka:</u><br />';
  30. print 'Ulica: <b>'. $_POST['adres'] .' '.$_POST['nazwa_ulicy'].' '.$_POST['nr_domu'].' '.$_POST['nr_mieszk'].'</b><br />';
  31. print 'Kod, miejscowość: <b>'.$_POST['kod_pocztowy'].' '.$_POST['miejscowosc'].'</b><br /><br />';
  32.  
  33. print '<u>Dane o przesyłce:</u><br />';
  34. print 'Sposób płatności: <b>'.$_POST['platnosc'].'</b><br />';
  35. print 'Sposób przesyłki: <b>'.$_POST['przesylka'].'</b><br />';
  36. print 'Nazwa przedmiotu: <b>'.$_POST['nazwa_przedmiotu'].'</b><br />';
  37. print 'lość sztuk: <b>'.$_POST['ilosc'].'</b><br /><br />';
  38.  
  39. print 'Jeśli wszystko się zgadza, kliknij <a href="dziekuje.html"> WYŚLIJ!!!</a>, lecz jeśli coś nie gra, kliknij <a href="ankieta_allegro.html"> WSTECZ!!!</a>.<br /><br />';
  40.  
  41. // konkatenacja adresów.
  42. $adresa = $_POST['adres']. ' ' . $_POST['$nazwa_ulicy']. ' ' . $_POST['nr_domu']. ' ' . $_POST['nr_mieszk'];
  43. $adresb = $_POST['kod_pocztowy']. ' ' . $_POST['miejscowosc'];
  44.  
  45. // $tresc to cała zawartość e-maila.
  46. $tresc = 'Imię: '.$_POST['imie'].', Nazwisko: '.$_POST['nazwisko'].', Login z Allegro: '.$_POST['login_allegro'].', Adres e-mail: '.$_POST['user_email'].', Adres: '.$_POST['adres'].'a, '.$_POST['adres'].' b, Sposób płatno�ci: '.$_POST['platnosc'].', Sposób przesylki: '.$_POST['przesylka'].', Nazwa przedmiotu: '.$_POST['nazwa_przedmiotu'].', Ilość sztuk: '.$_POST['ilosc'].'';
  47.  
  48. // wysyłka mailem zawartości formularza w określonej postaci przez $tresc.
  49. mail ( 'nygyt@wp.pl', 'Ankieta Allegro', 'Dane do wysyłki: '.$tresc.'', 'From: '.$_POST['user_email'].'' );
  50.  
  51.  
  52. ?>
  53. </font>
  54. </p>
  55. </body>
  56. </html>
zoomol
Dziękuję, ale jak pewnie zauważyłeś na swoim mailu (bo chyba wysłałem Ci ich kilka), niestety ale treść maila nie zawiera żadnych danych czyli wygląda następująco:

"Dane do wysyłki: Imię: , Nazwisko: , Login z Allegro: , Adres e-mail: , Adres: a, b, Sposób płatno?ci: , Sposób przesylki: , Nazwa przedmiotu: , Ilość sztuk:"

Również adres osoby, od której mail przychodzi nie wyświetla się w polu "nadawca".

Na stronie obsluga_ankiety.php nadal nie wyświetlają się wartości wg przypisanych zmiennych tak jak to jest na obrazku powyżej.... sad.gif

Hmmmm.... Co robić??

Pozdrawiam
Zoomol
skowron-line
moze masz stara wersje php prponuje zrobic wszystki tak
  1. <?php
  2. $zmienna = $HTTP_POST_VARS['zmienna'];
  3. ?>

to taka moja mala propozycja
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.