Formularz nie działa :( Błagam, pomożcie

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
magiamaja
Posty: 17
Rejestracja: pt lip 22, 2005 8:24 pm

Formularz nie działa :( Błagam, pomożcie

Post autor: magiamaja »

Zrobiłam formularz tak aby przesyłał się nie przez klienta pocztowego no i nie działa. Może ja czegoś nie rozumiem. Czy można ustawić to w kodzie html czy trzeba oddzielnie w pliku php? Jeśli oddzielnie to jak mam to zrobić? Moj kod php:
<?php
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = 'moj mail'
$subject = 'Ankieta'
$message = 'Dziękujemy za wypełnienie ankiety'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania ankiety'; // Komunikat błędu
$charset = 'iso-8859-2'; // Strona kodowa
//////////////////////////////

$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
else
{
?>
I to w oddzielnym pliku php? A w html'u ustawiłam:
<FORM action="ankieta.php" method="POST">
<FIELDSET>
<LEGEND>
Czy podobał się?
</LEGEND>
<INPUT type="radio" name="1piknik[]" value="tak" tabindex="1"> Tak<BR>
<INPUT type="radio" name="1piknik[]" value="nie" tabindex="2"> Nie<BR>
<INPUT type="radio" name="1piknik[]" value="niebylomnie" tabindex="3"> Nie było mnie<BR>
</FIELDSET>
<FIELDSET>
<LEGEND>
Skąd dowiedziałaś się?
</LEGEND>
<INPUT type="checkbox" name="skad[]" value="rodzina" tabindex="4"> Od rodziny<BR>
<INPUT type="checkbox" name="skad[]" value="znajomi" tabindex="5"> Od znajomych<BR>
<INPUT type="checkbox" name="skad[]" value="reklama" tabindex="6"> Z reklam<BR>
<INPUT type="checkbox" name="skad[]" value="surfujac" tabindex="7"> Przypadkowo surfując po sieci<BR>
<INPUT type="checkbox" name="skad[]" value="uczelnia" tabindex="8"> Dzięki info na uczelni<BR>
</FIELDSET>
<br>
<INPUT type="submit" value="Głosuj" tabindex="12">
<INPUT type="hidden" name="ankieta" value="ankieta">
</FORM>
Co jest nie tak i jak mam to ustawić żeby przesyłało mi na meila odpowiedzi. Acha, jak umieściłam to na serwerze to wyskakuje mi taka wiadomość:
Parse error: syntax error, unexpected T_VARIABLE in /home.2/p/s/y/psychopi/www/test2/ankieta.php on line 6
Błagam pomożcie.
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: Chmura »

nigdzie nie dałaś/eś średników

np:

[php]<?php
$email = 'moj mail'
//dodaj ;
$email = 'moj mail' ;
?>
[/php]

EDIT: wogóle jakoś bez pomysłu to zrobione, jeszcze raz prześledź kod
magiamaja
Posty: 17
Rejestracja: pt lip 22, 2005 8:24 pm

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: magiamaja »

Bo ja się w ogole nie znam, a muszę zrobić tak żeby była możlwiość wysłania bez posiadania programu pocztowego.
Poprawiłam jak zaproponowałeś i pojawia się komunikat:
"Parse error: syntax error, unexpected $end in /home.2/p/s/y/psychopi/www/test2/ankieta.php on line 33"
A może masz jakąś propozycję jak mogłby wyglądać taki formularz? I czy dać dwa odzielnie pliki, php tylko na formularz i html na resztę?
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: Chmura »

http://forum.webinside.pl/viewtopic.php?p=54325#54325 - tu znajdziesz dobry kod, pamiętaj ze na serwerze musi być obsługiwana funkcja mail!

ps: w razie jakichkolwiek problemów pisz
HaWaJ
Nowy
Nowy
Posty: 159
Rejestracja: pt kwie 06, 2007 5:12 pm

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: HaWaJ »

Kod: Zaznacz cały

"Parse error: syntax error, unexpected $end in /home.2/p/s/y/psychopi/www/test2/ankieta.php on line 33"
Nie została zakończony warunek IF bądź jakaś pętla. Prześledź dokładnie kod i zastanów się gdzie tkwi problem. Tak jak napisał Chmura - trochę to bez sensu ale każdy robi jak uważa lecz ten skrypt raczej nie ma szans na działanie :)

Nie ma nagłówków, adresu pocztowego mysle ze niepotrzebne jest te echo mail(), wystarczy samo mail().

dla przypomnienia (kolejność w funkcji mail) :

Kod: Zaznacz cały

 mail ($odbiorca,$temat,$wiadomosc,$naglowki)
magiamaja
Posty: 17
Rejestracja: pt lip 22, 2005 8:24 pm

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: magiamaja »

Oki, zmieniłam na:
<?php

//pobieranie pierwszej zmiennej
if (!empty($_GET['NAME'])) //jeśli $_GET['NAME']) jest NIE puste
{
print "IMIĘ I NAZWISKO: \n\t";
print $_GET['NAME'];
print "<br>\n\t";
}

//pobieranie drugiej zmiennej
if (!empty($_GET['E-MAIL'])) //jeśli $_GET['E-MAIL']) jest NIE puste
{
print "E-MAIL: \n\t";
print $_GET['E-MAIL'];
print "<br>\n\t";
}

//pobieranie trzeciej zmiennej
if (!empty($_GET['sob_copywrighter']))
{
print "g.12.00 - Z pamiętnika copywrightera...";
print "<br>\n\t";
}else
{
print "";
print "<br>\n\t";
}

//pobieranie czwartej zmiennej
if (empty($_GET['sob_uczucia_1'])) //jeśli $_GET['sob_uczucia_1']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.12.00 - Poznaję swoje uczucia (1 tura)";
print "<br>\n\t";
}

//pobieranie piątej zmiennej
if (empty($_GET['sob_uczucia_2'])) //jeśli $_GET['sob_uczucia_2']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.13.30 - Poznaję swoje uczucia (2 tura)";
print "<br>\n\t";
}

//pobieranie szóstej zmiennej
if (empty($_GET['sob_stres'])) //jeśli $_GET['sob_stres']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "Oswoić stres";
print "<br>\n\t";
}

//pobieranie siódmej zmiennej
if (empty($_GET['sob_komunikacja'])) //jeśli $_GET['sob_komunikacja']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.14.00 - Komunikacja w sporcie";
print "<br>\n\t";
}

//pobieranie ósmej zmiennej
if (empty($_GET['sob_asertywnosc'])) //jeśli $_GET['sob_asertywnosc']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.14.00 - Warsztat asertywności";
print "<br>\n\t";
}

//pobieranie dziewiątej zmiennej
if (empty($_GET['sob_tecza'])) //jeśli $_GET['sob_tecza']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.15.00 - Warsztat odprężająco - relaksacyjny dla dzieci Tęcza";
print "<br>\n\t";
}

//pobieranie dziesiątej zmiennej
if (empty($_GET['sob_relaks_1'])) //jeśli $_GET['sob_relaks_1']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.16.00 - Warsztat relaksacji (1 tura)";
print "<br>\n\t";
}

//pobieranie jedenastej zmiennej
if (empty($_GET['sob_relaks_2'])) //jeśli $_GET['sob_relaks_2']) jest puste
{
print "";
print "<br>\n\t";
}else
{
print "g.16.30 - Warsztat relaksacji (2 tura)";
print "<br>\n\t";
}
print "<br><br>zostały wysłane...\n\n\t";
?>
to wszystko w pliku php, a w html zrobiłam:
<form action="http://www.***.pl/formularz.php" method="GET">
<form action="mailto:***@op.pl" subject="Zapisy" method="GET" enctype="text/plain" onsubmit="mail_form(this); return false">
<TABLE>
<TR>
<TD><B>IMIĘ I NAZWISKO</B></TD>
<TD><INPUT type="text" name="NAME" maxlength="100" size="40" tabindex="1"><BR></TD>
</TR>
<TR>
<TD><B>E-MAIL</B></TD>
<TD><INPUT type="text" name="E-MAIL" maxlength="50" size="40" tabindex="2"><BR></TD>
</TR>
</TABLE>
SOBOTA<BR>
<INPUT type="checkbox" name="sob_copywrighter" value="1" tabindex="3"> g.12.00 - Z pamiętnika copywrightera...<BR>
<INPUT type="checkbox" name="sob_uczucia_1" value="1" tabindex="4"> g.12.00 - Poznaję swoje uczucia (1 tura)<BR>
<INPUT type="checkbox" name="sob_uczucia_2" value="1" tabindex="5"> g.13.30 - Poznaję swoje uczucia (2 tura)<BR>
<INPUT type="checkbox" name="sob_stres" value="1" tabindex="6"> Oswoić stres<BR>
<INPUT type="checkbox" name="sob_komunikacja" value="1" tabindex="7"> g.14.00 - Komunikacja w sporcie<BR>
<INPUT type="checkbox" name="sob_asertywnosc" value="1" tabindex="8"> g.14.00 - Warsztat asertywności<BR>
<INPUT type="checkbox" name="sob_tecza" value="1" tabindex="9"> g.15.00 - Warsztat odprężająco - relaksacyjny dla dzieci Tęcza<BR>
<INPUT type="checkbox" name="sob_relaks_1" value="1" tabindex="10"> g.16.00 - Warsztat relaksacji (1 tura)<BR>
<INPUT type="checkbox" name="sob_relaks_2" value="1" tabindex="11"> g.16.30 - Warsztat relaksacji (2 tura)<BR>
<INPUT type="reset" value="Resetuj formularz" tabindex="12">
<INPUT type="submit" value="Zapisz" tabindex="13">
<INPUT type="hidden" name="zapisy" value="ZAPISY">
</FORM>
Nie wyświetla się już strona z errorem i wygląda na to, że formularz się wysyła, ale nie dochodzą maile na moją skrzynkę. A może jest jakiś inny sposob w jaki można sprawdzić dane osob, ktore się zapisały?
Pozdro
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: Chmura »

ale gdzie Ty tam masz jakaś funkcje wywołująca "mail();"

jak na razie to Ty tylko wyświetlasz coś po wybraniu jakiejś opcji w formularzu

postaraj sie sama to zrobić, jeśli na prawdę nie dasz rady opisz swoją wizje
magiamaja
Posty: 17
Rejestracja: pt lip 22, 2005 8:24 pm

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: magiamaja »

O to chodzi, że ja bym chętnie sama to zrobiła wszystko bo sama lubię dochodzić do różnych rzeczy. To daje satysfakcję i uskrzydla, ale to wymaga też czasu, a ja tego czasu nie mam w tej chwili, i przez egzaminy, i przez fakt, że muszę oddać jak najszybciej stronkę i musi być sprawna. Umiejętności też nie mam za dużych. Znam podstawy, ale jakoś zrobiłam i grafikę i szkielet www i nieźle to imho wygląda jak na początek. Kiepska sytuacja i naprawdę dobija mnie, że próbuję od dłuższego czasu ustawić ten formularz i nie mogę bo ktoś mi mówi, żebym coś zrobiła, ale ja nie wiem o co mu chodzi. Frustracja... Być może jest tak, że jak się czegoś nie umie to nie należy może się tak na coś porywać bo tylko występuje efekt walenia głową w mur, ale cóż, lubię wyzwania i zresztą kiedyś się człowiek musi rozwijać i uczyć. Zresztą teraz to nawet nie mam wyjścia, bo nie robię tej stronki dla siebie, nie mogę zrezygnować i nie chcę. Tymbardziej, że www już jest gotowa, tylko brak mi formularza, ankiety i menu zjeżdżąjącego w explorerze (mam ustawione, ale te menu zmienia pozycje, przesuwa się w prawo). Dzięki za odpowiedzi :) Zawsze to coś daje :)
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: Chmura »

Pisane z palca (powinno działać, nie widzę błędów)
[php]
<?php
////////////////////////////////////////////////////////////////
function wys_mail($od_kogo, $do_kogo, $temat, $tresc)
{
$header = 'MIME-Version: 1.0'."\n";
$header .= 'Content-type: text/html; charset=iso-8859-2'."\n";
$header .= 'From: '.$od_kogo.''."\n";
$text = nl2br ($text);
$text = stripslashes ($text);
if(mail($do_kogo, $temat, $tresc, $header))
{
return true;
}
return false;
}
////////////////////////////////////////////////////////////////
$do_kogo = 'Twó[email protected]'; //Twój mail
$temat = 'Ankieta'; //Temat Maila


if($_GET['action'] == 'wyslij')
{
$nick = $_POST['nick'];
$mail = $_POST['mail'];
// informacje z formularza
$copywrighter = $_POST['copywrighter'];
$uczucia_1 = $_POST['uczucia_1'];
$uczucia_2 = $_POST['uczucia_2'];
$stres = $_POST['stres'];
$komunikacja = $_POST['komunikacja'];
$asertywnosc = $_POST['asertywnosc'];
$tecza = $_POST['tecza'];
$relaks_1 = $_POST['relaks_1'];
$relaks_2 = $_POST['relaks_2'];

$tresc = 'Ankiete wypełniał: <b>'.$nick.'</b>('.$mail.')<br /><br /><b>Wybrał:</b><br />1.'.$copywrighter.'<br />2.'.$uczucia_1.'<br />3.'.$uczucia_2.'<br />4.'.$stres.'<br />5.'.$komunikacja.'<br />6.'.$asertywnosc.'<br />7.'.$tecza.'<br />8.'.$relaks_1.'<br />9.'.$relaks_2.'<br />';
//
wys_mail($mail, $do_kogo, $temat, $tresc); //wywołanie funkcji
echo 'Mail został wysłany. <a href="javascript: history.go(-1)">Wróć</a>';

}
else
{
echo '<form action="?action=wyslij" method="POST">
<table cellspacing="0" cellpadding="0" width="423">
<tr>
<td width="147"><b>IMIĘ I NAZWISKO</b></td>
<td width="276">
<input type="text" name="nick" maxlength="100" size="40" tabindex="1"><br>
</td>
</tr>
<tr>
<td width="147"><b>E-MAIL</b></td>
<td width="276">
<input type="text" name="mail" maxlength="50" size="40" tabindex="2"><br>
</td>
</tr>
<tr>
<td colspan="2">
<br>SOBOTA<br>
<input type="checkbox" name="copywrighter" tabindex="3" value="Z_pamietnika_copywrightera"> g.12.00 - Z pamiętnika copywrightera...<br>
<input type="checkbox" name="uczucia_1" tabindex="4" value="Poznaje_swoje_uczucia(1_tura)"> g.12.00 - Poznaję swoje uczucia (1 tura)<br>
<input type="checkbox" name="uczucia_2" tabindex="5" value="Poznaje_swoje_uczucia(2_tura)"> g.13.30 - Poznaję swoje uczucia (2 tura)<br>
<input type="checkbox" name="stres" tabindex="6" value="Oswoic_stres">Oswoić stres<br>
<input type="checkbox" name="komunikacja" tabindex="7" value="Komunikacja_w_sporcie"> g.14.00 - Komunikacja w sporcie<br>
<input type="checkbox" name="asertywnosc" tabindex="8" value="Warsztat_asertywności"> g.14.00 - Warsztat asertywności<br>
<input type="checkbox" name="tecza" tabindex="9" value="Warsztat_odpreżająco_-_relaksacyjny_dla_dzieci_Tęcza"> g.15.00 - Warsztat odprężająco - relaksacyjny dla dzieci Tęcza<br>
<input type="checkbox" name="relaks_1" tabindex="10" value="Warsztat relaksacji(1 tura)"> g.16.00 - Warsztat relaksacji (1 tura)<br>
<input type="checkbox" name="relaks_2" tabindex="11" value="Warsztat_relaksacji(2_tura)"> g.16.30 - Warsztat relaksacji (2 tura)</td>
</tr>
</table>
<br>
<input type="submit" value="Zapisz" tabindex="13">
<input type="reset" value="Resetuj formularz" tabindex="12">
</form>';
}
?>
[/php]
Myślę że Cię to zadowoli (również nie posiadam dużo czasu ostatnio)
magiamaja
Posty: 17
Rejestracja: pt lip 22, 2005 8:24 pm

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: magiamaja »

Ja!!! :D Ratujesz mnie :D Dzięki wielkie :D Zmieniłam trochę Twoj kod, bo musiałam dodać parę rzeczy i działa bez problemow! Postanowiłam się choć trochę zrewanżować i umieścić na stronie podziękowania :) Mam wpisać Twoj nick, pseudonim czy chcesz podać imię i nazwisko? :) Pozdro i jeszcze raz dzięki wielkie :)
Chmura
Przelotem
Przelotem
Posty: 220
Rejestracja: ndz gru 31, 2006 12:46 am
Lokalizacja: o stamtąd
Kontakt:

Re: Formularz nie działa :( Błagam, pomożcie

Post autor: Chmura »

Cała przyjemność po mojej stronie.
ODPOWIEDZ