Webboard

Pełna wersja: Formularz Kontaktowy i Parse Error
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam. O tuż chciałem zrobić sobie formularz kontaktowy, korzystałem z jednego z poradników z książki. Zrobiłem go, ale jak wejdzie się na stronę : Klik ! To wyskakuje Parse Error o treści :
Kod PHP:
Parse errorsyntax errorunexpected T_STRINGexpecting ',' or ';' in /virtual/programworld.cba.pl/skrypt.php on line 22 
Wiem że coś jest źle w 22 linii (jak wskazuje error) ale kompletnie nie mam pomysłu co. :huh:

Tutaj daje kod Formularza :
Kod PHP:
<?php 

class Formularz
     
{
        public function 
RozpocznijFormularz ()
        {
            echo 
'<form action="skrypt.php" method="post">';
        }
        
        public function 
DrukujPoleText ($Opis,$Nazwa)
        {
             echo 
$Opis.' <input type="text" name="' .$Nazwa.'" /><br />';
        }
        
        public function 
DrukujPoleTextarea ($Opis,$Nazwa)
        {
             echo 
$Opis.' <textarea name="' .$Nazwa.'"></textarea><br />
        {
        
        public function DrukujPoleHidden ($Nazwa,$Wartosc)
        {
             echo ' 
<input type="hidden" name="'.$Nazwa.'" value="'.$Wartosc.'" /><br />';
        }
        
        public function DrukujPoleSubmit ($Wartosc)
        {
             echo ' 
<input type="submit" valute="' .$Wartosc.'" /><br />';
        }
        
        public function ZakonczFormularz ()
        {
             echo '
</form>';
        }
}

$KlasaFormularza = new Formularz;
$KlasaFormularza->RozpocznijFormularz ();
$KlasaFormularza->DrukujPoleText ('
Podaj swoje imię:' ,'imie');
$KlasaFormularza->DrukujPoleText ('
Podaj swoje nazwisko:' ,'nazwisko');
$KlasaFormularza->DrukujPoleTextarea ('
Opisz siebie:' ,'opis');
$KlasaFormularza->DrukujPoleHidden ('
formularz_wyslany' ,'tak');
$KlasaForumlarza->DrukujPoleSubmit ('
Wyślij');
$KlasaFormularza->ZakonczFormularz ();

if($POST['
forumlarz_wyslany'] == ,tak')
{
         echo 
'<pre>';
         
print_r($_POST);
         echo 
'</pre>';
}

?>

Jak ktoś wie to niech napisze :)

*wybaczcie za prefiks, musiałem jakiś wybrać :<*

sobie, lecz teraz jest błąd w linii 45 :<

sobie, tylko nie wygląda to jak na obrazku :(
Z edytowany kod wygląda tak :
Kod PHP:
<?php 

define
('IN_MYBB'1); 
require 
"./global.php"
 
add_breadcrumb("Formularz Kontaktowy""skrypt.php");
eval(
"\$podstr = \"".$templates->get("skrypt")."\";"); 
output_page($podstr);

class 
Formularz
     
{
        public function 
RozpocznijFormularz ()
        {
            echo 
'<form action="skrypt.php" method="post">';
        }
        
        public function 
DrukujPoleText ($Opis,$Nazwa)
        {
             echo 
$Opis.' <input type="text" name="' .$Nazwa.'" /><br />';
        }
        
        public function 
DrukujPoleTextarea ($Opis,$Nazwa)
        {
             echo 
$Opis.' <textarea name="' .$Nazwa.'"></textarea><br />';
        }
        
        public function 
DrukujPoleHidden ($Nazwa,$Wartosc)
        {
             echo 
' <input type="hidden" name="'.$Nazwa.'" value="'.$Wartosc.'" /><br />';
        }
        
        public function 
DrukujPoleSubmit ($Wartosc)
        {
             echo 
' <input type="submit" value="' .$Wartosc.'" /><br />';
        }
        
        public function 
ZakonczFormularz ()
        {
             echo 
'</form>';
        }
}

$KlasaFormularza = new Formularz;
$KlasaFormularza->RozpocznijFormularz ();
$KlasaFormularza->DrukujPoleText ('Podaj swoje imie:' ,'imie');
$KlasaFormularza->DrukujPoleText ('Podaj swoje nazwisko:' ,'nazwisko');
$KlasaFormularza->DrukujPoleTextarea ('Opisz siebie:' ,'opis');
$KlasaFormularza->DrukujPoleHidden ('formularz_wyslany' ,'tak');
$KlasaForumlarza->DrukujPoleSubmit ('Wyslij');
$KlasaFormularza->ZakonczFormularz ();

if(
$_POST[`forumlarz_wyslany`] == 'tak')
{
         echo 
'<pre>';
         
print_r($_POST);
         echo 
'</pre>';
}

?>
Hm... dlaczego zrobiłeś to w formie takiej klasy?
Dla plugina tego typu w zupełności wystarczy funkcja.
A mógłbyś mi to z edytować by grało perfekcyjnie ? :)
blad w lini 21 nie 22 poczytaj o bledach w php
Hm... przede wszystkim, najpierw wyświetlasz stronę, a potem dodatkowo robisz kod PHP do wyświetlenia formularza. To powinno być od razu w szablonach.
W zasadzie na taki formularz, MyBB pozwala na odseparowanie HTMLa od PHP, kod w pliku powinien być tylko do weryfikacji no i akcji (np. email).

Możesz również użyć jakieś wtyczki:
http://mods.mybb.com/view/contact-us-1-0...ephp-co-cc
http://mods.mybb.com/view/contact-us-form
Ja właśnie zaczynam dopiero zabawę z PHP i chciałem od czegoś prostego zacząć, ale chyba za wysoko sobie podniosłem belkę :/