|
SWiSH Forum Forum użytkowników programów SWiSH |
|
SWiSH Max - [POMOC] Formularz kontaktowy +php
propanek121 - Sob 24 Mar, 2012 11:21 Temat postu: [POMOC] Formularz kontaktowy +php Mam taki problem odnosnie tego ze gdy nacisne wyslij wszystko pieknie ladnie wyskakuje komunikat ze wyslano. Sprawdzilem plik php odpowiedzialny za odpowiedz zwrotna z serwera jednak na podanym przeze mnie adresie xxxx@xxx.xxx nic nie ma.
W czym tkwi blad?
...
Jezeli to pomoze to wstawie tutaj skrypt do przycisku wyslij:
on (release) {
if((nameVar=="")||(emailVar=="")||(subjectVar=="")||(msgVar=="")) {
errormessage="Uzupełnij wszystkie pola";
}
else {
errormessage="Trwa wysylanie....";
send="yes";
this.loadVariables("contact.php",'POST');
send="no";
nameVar="";
emailVar="";
subjectVar="";
msgVar="";
}
}
Kod pliku php:
<?
if ($send=="yes") {
$to = "xxxx@xxx.xxx";
$subject = "$subjectVar";
$body .= "$msgVar";
$from = "$nameVar";
$tfrom = "From: <$emailVar>";
mail($to,$subjectVar,$msgVar,$tfrom);
}
echo "&errormessage=Wyslano&";
?>
[ Dodano: Sob 24 Mar, 2012 12:27 ]
Dodam jeszcze ze komunikat "Wyslano" pochodzi od pliku php wiec dlaczego nie mam odpowiedzi zwrotnej na swojego emaila?? To nie wina serwera na ktorym mam strone tylko cos innego.(Mam tutaj 2 stronki z zastosowaniem php formularzy i dziala)
Januszr - Sob 24 Mar, 2012 12:03
Przyjacielu, spróbuj napisać po polsku. Syntezator zbyt często informuje mnie, że jest zbyt dużo błędów...
propanek121 - Sob 24 Mar, 2012 12:09
hmm ale co mam ci tu niby po polsku napisac;/ jak tam jest pare linijek kodu.
Mi sie wydaje ze ten plik php jest nie kompletny?
espe1 - Sob 24 Mar, 2012 12:23
formularz swish:
//tylko zmień sobie parametr base w export html
a błąd tkwi w tym, że trzeba załadować dane z formularza do php:
Kod: |
myVars.sendAndLoad("contact.php", myVars, "POST"); |
propanek121 - Sob 24 Mar, 2012 12:29
to jest w wersji 4.0 a ja mam 3.0 i chcialbym po prostu ktos zerkna w czym tkwi blad w moim kodzie php(bo chyba innej opcji nie ma by gdzies indziej byl blad lub moze cos brakuje)
espe1 - Sob 24 Mar, 2012 12:35
adres do skryptów:
http://flashblog.swish.pl...unikacja-z-php/
propanek121 - Sob 24 Mar, 2012 12:39
wrzucilem twoj formularz na serwer zmienilem tylko contact.html na index.html i podalem w sendto swoj email. Jest ten sam problem co w wypadku mojego formularza
[ Dodano: Sob 24 Mar, 2012 13:41 ]
mam serwer na 000webhost.com
[ Dodano: Sob 24 Mar, 2012 13:50 ]
hmm podmienilem swoj this.loadVariables("contact.php",'POST');
na twoj myVars.sendAndLoad("contact.php", myVars, "POST");
nic to nie dal oa nawet podczas wysylania sie zacielo
espe1 - Sob 24 Mar, 2012 12:52
może zmień chmod pliku php na 777
propanek121 - Sob 24 Mar, 2012 12:56
a jak zmienic i w ktorym miejscu??
a my rozmawiamy o twoim czy o moim formularzu?
[ Dodano: Sob 24 Mar, 2012 13:57 ]
widziales wogle kod zrodlowy mojego formularza i skryptu z przycisku wyslij?
espe1 - Sob 24 Mar, 2012 12:58
u mnie działa,
gdzie masz pocztę?
bo często występują opóźnienia w dostarczaniu wiadomości
podaj maila, to ustawię na serwerze i sobie sprawdzisz
propanek121 - Sob 24 Mar, 2012 13:01
ale ty robisz to w oparciu o swoj formularz czy moj??
espe1 - Sob 24 Mar, 2012 13:05
twój też sprawdziłem, ale nie działa
[ Dodano: Sob 24 Mar, 2012 13:06 ]
a chmod nie ma większego znaczenia, wystarczy standardowo 664
propanek121 - Sob 24 Mar, 2012 13:09
ale wlasnie dlaczego nie dziala co w nim jest nie tak
[ Dodano: Sob 24 Mar, 2012 14:30 ]
to wie ktos co powinienem zmienic w swoim formularzu(tresc skryptu) i php kodzie aby dzialalo? nie chce jak przed mowca by kierowal na swojego gotowca.
[ Dodano: Sob 24 Mar, 2012 15:01 ]
hmm a moglbys jakos skonwertowac ten szablon formularza do wersji 3.0 co podal przedmowca?
espe1 - Sob 24 Mar, 2012 19:32
1.
propanek121 napisał/a: | nie chce jak przed mowca by kierowal na swojego gotowca.
|
"twój" formularz, który sam napisałeś : http://www.swish-db.com/tutorials/view.php/.../490
i nie jest gotowcem.
Dodam tylko, że "twój" formularz ma już 10 lat, od tamtej pory zmienił się flash i PHP:
było: PHP ver. 3 lub 4, teraz: PHP 6
było: flash ver.6 lub.7, teraz: 10 lub 11,5
2. skoro nie wiesz co to chmod, to oznacza, że jesteś początkującym webmasterem.
3. Nie da się przerobić pliku z SM4 na SM3 w programie, chyba, że ktoś wszystko przepisze
4. U góry podałem link do kodów i tutorialu "mojego" gotowca, przerobienie "twojego" na "mojego" zajmuje kilkanaście sekund, wystarczy przekopiować kody i pozmieniać nazwy pól tekstowych.
5. Jeśli koniecznie chcesz przerobić "twojego" gotowca na działającego, to napisz na PW ile jesteś w stanie zapłacić.
propanek121 - Sob 24 Mar, 2012 20:54
hmm a masz do jakies skrakowanej wersji swish 4 link?? moze obczaje ta 4;p
krzywy105 - Sob 24 Mar, 2012 21:05
Nie ściągałem załączonych skryptów ale myślę że:
po stronie flasha powinieneś wysyłać dane poprzez sendAndLoad
po stronie php musisz się odnosić do zmiennych w tablicy POST (chyba że te zmienne które używasz w fragmencie załączonego kodu są wcześniej właśnie przepisywane z POST)
ps. nie wystarczy sama zamiana loadVars na sendAndLoad
przed wysłaniem poprzez sandAndLoad musisz stworzyć obiekty do wysłania i odebrania danych.
Kod: |
var result_wynik:LoadVars=new LoadVars();
var send_wyslanie:LoadVars=new LoadVars();
send_wyslanie.email= emailVar; // przepisanie zmiennych które mają być wysłane
send_wyslanie.temat= subjectVar;
//itd.
send_wyslanie.sendAndLoad("plik.php", result_wynik, "POST"); // wysłanie do pliku php zmiennych obiektu send_wysłanie i odebranie wyniku do obiektu result_wynik
|
I w tym momencie w pliku php będizesz miał zmienne które ustawiłeś w send_wyslanie.
Będą one dostępne poprzez $HTTP_POST_VARS['email']; $HTTP_POST_VARS['temat']; itd.
Więc musisz przerobić swój skrypt i albo używać wszędzie zmiennych POST albo przepisać z POST do zmiennych lokalnych które już masz użyte w skrypcie.
espe1 - Sob 24 Mar, 2012 21:52
ja pier....
wystarczy wkleić na scenie 1 scrypt:
Kod: |
function formValidation(): boolean{
// wyczesczenie komunikatow bledow
nameError.text = "";
emailError.text = "";
trescError.text = "";
if (userName.text.length < 4) nameError.text = "Za krótka nazwa, minimum 4 znaki";
else if (userEmail.text.length < 4) emailError.text = "Za krótki e-mail, minimum 4 znaki";
else if (userTresc.text.length < 10) trescError.text = "Za krótka treść, minimum 10 znaków";
else {
return true;
}
return false;
}
function Events(name, status){
if ( (name == "btnwyslij") && formValidation() ) {
var myVars:LoadVars = new LoadVars();
myVars.Name = userName.text;
myVars.Email = userEmail.text;
myVars.Message = userTresc.text;
myVars.onLoad = function (success) {
if (success) {
_root.dynamTekst.text = myVars.zwracanazmienna;
}
}
myVars.sendAndLoad("contact.php", myVars, "POST");
}
}
|
zmienić plik php na:
Kod: |
<?php
header('Content-type: text/text; charset=utf-8');
$name = $HTTP_POST_VARS['Name'];
$email = $HTTP_POST_VARS['Email'];
$message = $HTTP_POST_VARS['Message'];
$message = stripslashes($message);
$sendTo = "twoj_mail@xxxxxxxxxxxxx.pl";
$subject = "Wiadomość z formularza kontaktowego";
$msg_body = "Imię i nazwisko: $name\n";
$msg_body .= "E-Mail: $email\n";
$msg_body .= "Wiadomość: $message\n";
$header_info = "From: ".$name." <".$email.">";
if (mail($sendTo, $subject, $msg_body, $header_info))
$wynik = "Wiadomość wysłana";
else
$wynik = "Błąd wysyłania";
// tu zwracamy zmienną
echo "&zwracanazmienna=$wynik&";
?>
</body>
</html> |
utworzyć 7 pól tekstowych (dynamicznych) o nazwach:
nameError
emailError
trescError
userName
userEmail
userTresc
dynamTekst
i 1 przycisk o nazwie:
btnwyslij
wszystko jest tutaj po polsku (link podawałem wyżej):
http://flashblog.swish.pl...unikacja-z-php/
mielu - Pon 26 Mar, 2012 10:18
po pierwsze sprawdź spam maile wysyłane za pomocą php (funkcji mali), najczęściej lądują w spamie
|
|