Forum Informatyczne WebElite.pl
Formularz kontaktowy - Wersja do druku

+- Forum Informatyczne WebElite.pl (https://www.webelite.pl)
+-- Dział: # Technika komputerowa (https://www.webelite.pl/forumdisplay.php?fid=10)
+--- Dział: Webmasterka (https://www.webelite.pl/forumdisplay.php?fid=34)
+---- Dział: Skrypty (https://www.webelite.pl/forumdisplay.php?fid=60)
+---- Wątek: Formularz kontaktowy (/showthread.php?tid=1704)



Formularz kontaktowy - ziomek - 05-03-2009

witam
mam problem i mam nadzieję że ktoś mi pomoże
próbuję umieścić na własnej stronie formularz kontaktowy i za cholere mi nie wychodzi albo wiadomości nie dochodzą albo otwiera mi się przez Outlook a chcę po prostu żeby wiadomość doszła wysłana ze strony www
mam 2 przykłady kodu i proszę o pomoc co jest z nimi nie tak dodam że nie znam się na kodach html i tym podobnych


1

Kod PHP:
<FORM NAME="mailer" METHOD="post" ACTION="" ENCTYPE="text/plain" onSubmit="(document.mailer.action += mailtoandsubject)">
<
TABLE BORDER=0>
<
TR VALIGN="top">
<
TD><font color="#000000">Adresat:</font></TD>
<
TD><SELECT NAME="mailtoperson" onChange="msg(this.form)">
<
OPTION VALUE="adres@email.com">Administrator

</SELECT></TD>
</
TR>
<
TR VALIGN="top">
<
TD><font color="#FF00FF">Twoj nick i/lub imie</font></TD>
<
TD><INPUT TYPE="text" SIZE=45 NAME="name" onChange="msg(this.form)"></TD>
</
TR>
<
TR VALIGN="top">
<
TD><font color="#FF00FF">Twoj E-mail:</font></TD>

<
TD><INPUT TYPE="text" SIZE=45 NAME="email" onChange="msg(this.form)"></TD>
</
TR>
<
TR VALIGN="top">
<
TD><font color="#FF00FF">Priorytet:</font></TD>
<
TD>
<
SELECT NAME="priority" onChange="msg(this.form)">
<
OPTION VALUE="Normal">Normalny
<OPTION VALUE="Urgent">Pilne
<OPTION VALUE="No Reply Needed">Odpowiedz nie jest konieczna
</SELECT></TD>
</
TR>
<
TR VALIGN="top">
<
TD><font color="#FF00FF">Temat listu</font></TD>
<
TD><INPUT TYPE="text" SIZE=45 NAME="subject" onChange="msg(this.form)"></TD>
</
TR>

<
TR VALIGN="top">
<
TD><font color="#FF00FF">Napisz co mam zmienic?</font><p>
<
font color="#FF00FF">Zadaj pytanie</font></p>
<
p><font color="#FF00FF">Napisz co myslisz o WWW</font></p>
<
p><font color="#FF00FF">Albo poprostu skontaktuj</font></p>
<
p><font color="#FF00FF">sie ze mna </font></TD>
<
TD><TEXTAREA NAME="message" COLS=45 ROWS=7 WRAP="virtual" OnChange="msg(this.form)"></TEXTAREA></TD>
</
TR>
<
TR>
<
TD>&nbsp;</TD>
<
TD><INPUT TYPE="submit" VALUE="WYSLIJ">

<
INPUT TYPE="reset" VALUE="Usun informacje"></TD>
</
TR>
</
TABLE>
</
FORM>

<
SCRIPT LANGUAGE="JavaScript">
function 
msg() {
document.mailer.action "mailto:"
mailtoandsubject = ((document.mailer.mailtoperson.options[document.mailer.mailtoperson.selectedIndex].value) + '?subject=' document.mailer.subject.value);
}
</
SCRIPT



2

Kod PHP:
<FORM NAME="mailer" METHOD="post" ACTION="" ENCTYPE="text/plain" onSubmit="(document.mailer.action += mailtoandsubject)"
<
TABLE BORDER=0>
<
TR VALIGN="top">
<
TD>Adresat:</TD>
<
TD><SELECT NAME="mailtoperson" onChange="msg(this.form)">
<
OPTION VALUE="">Wybierz adresata listu
<OPTION VALUE="krzysztof.golachowski@pckurier.pl">Krzysztof Golachowski redaktor (Sieci i Telekomunikacja)
<
OPTION VALUE="michal.setlak@pckurier.pl">Michał Setlak redaktor (Sprzęt)
<
OPTION VALUE="pawel.wimmer@pckurier.pl">Paweł Wimmer redaktor (Internet)
</
SELECT></TD>
</
TR>
<
TR VALIGN="top">
<
TD>Twoje imię i nazwisko:</TD>
<
TD><INPUT TYPE="text" SIZE=45 NAME="name" onChange="msg(this.form)"></TD>
</
TR>
<
TR VALIGN="top">
<
TD>Twój E-mail:</TD>
<
TD><INPUT TYPE="text" SIZE=45 NAME="email" onChange="msg(this.form)"></TD>
</
TR>
<
TR VALIGN="top">
<
TD>Priorytet:</TD>
<
TD>
<
SELECT NAME="priority" onChange="msg(this.form)">
<
OPTION VALUE="Normal">Normalny
<OPTION VALUE="Urgent">Pilne
<OPTION VALUE="No Reply Needed">Odpowiedź nie jest konieczna
</SELECT></TD>
</
TR>
<
TR VALIGN="top">
<
TD>Temat listu:</TD>
<
TD><INPUT TYPE="text" SIZE=45 NAME="subject" onChange="msg(this.form)"></TD>
</
TR>
<
TR VALIGN="top">
<
TD>Treść listu:</TD>
<
TD><TEXTAREA NAME="message" COLS=45 ROWS=7 WRAP="virtual" OnChange="msg(this.form)"></TEXTAREA></TD>
</
TR>
<
TR>
<
TD> </TD>
<
TD><INPUT TYPE="submit" VALUE="Wyślij list">
<
INPUT TYPE="reset" VALUE="Usuń informacje"></TD>
</
TR>
</
TABLE>
</
FORM>

<
SCRIPT LANGUAGE="JavaScript">
function 
msg() {
document.mailer.action "mailto:" 
mailtoandsubject = ((document.mailer.mailtoperson.options[document.mailer.mailtoperson.selectedIndex].value) + '?subject=' document.mailer.subject.value); 

</
SCRIPT


Z góry dziękuję za odp
Pozdrawiam


RE: Formularz kontaktowy - Mick - 05-03-2009

Skrypt, który tutaj podałeś działa.(Pomijając olbrzymią liczbę błędów w kodzie).
Mówiąc najprostszym językiem kiedy użytkownik wpisze w pola formularza dane i kliknie przycisk „Wyślij list” to otworzy mu się klient pocztowy (np. Outlook Express). W programie zostaną wpisane dane (Temat, adresat, treść itp.), które zostały wpisane przez użytkownika w polach tekstowych. O wiele lepszą alternatywą do wysyłania emaili jest php. Jeżeli twój serwer obsługuje php to mogę ci napisać skrypt, który będzie wysyłał emaile i będzie działał zawsze. Smile



RE: Formularz kontaktowy - ziomek - 05-03-2009

Tak wiem że działa ten skrypt chodzi mi o to że nie chce takiego ponieważ nie wszyscy maja skonfigurowaną pocztę np. Outlook Express

Był bym bardzo wdzięczny jak byś mi napisał skrypt który będzie mi wysyłał wiadomość bezpośrednio ze strony www do mnie na e-maila.
Z góry dziękuję
Pozdrawiam.Smile


RE: Formularz kontaktowy - Mick - 05-03-2009

Proszę. Skrypt składa się z 3 plików.

dane.php


Kod PHP:
<?php
$adres
[]=array('Imie i Nazwisko','adres@email.pl'); 
//Możesz tutaj dopisać więcej adresów
?>

mail.php

Kod PHP:
<?php
require_once('antyhaker.php');
include(
'dane.php'); 
switch(
$_GET['mail']) 

case 
'ok'
if(isset(
$_POST['odkogo']) && $_POST['odkogo']==''$blad.='- Nie podałeś od kogo jest ten e-mail!<br/>'
if(isset(
$_POST['dokogo']) && $_POST['dokogo']==''$blad.='- Nie podałeś do kogo jest ten e-mail!<br/>'
if(isset(
$_POST['mail']) && $_POST['mail']==''$blad.='- Nie podałeś swojego adresu e-mail!<br/>'
if(isset(
$_POST['mail']) && $_POST['mail']!='' && !ereg("^.+@.+\..+$"$_POST['mail'])) $blad.='- Podałeś niepoprawny adres email!<br/>'
if(isset(
$_POST['temat']) && $_POST['temat']==''$blad.='- Nie podałeś tematu e-maila!<br/>'
if(isset(
$_POST['wiadomosc']) && $_POST['wiadomosc']==''$blad.='- Nie podałeś treści e-maila!<br/>'
if(isset(
$_COOKIE[$_POST['dokogo']])) $blad.='- Wysłałeś już e-maila do tej osoby!<br/>'
if(!isset(
$blad)) 

 
setcookie($_POST['dokogo'], $_POST['dokogo'], time()+3600*3); 
 if(
mail($adres[$_POST['dokogo']][1],$_POST['temat'],$_POST['wiadomosc'],'Od: '.$_POST['odkogo'].' <'.$_POST['mail'].'>')); 
 echo 
'<center>Twój e-mail został pomyślnie wysłany!<br/></center>'
 break; 
 } 
 if(isset(
$blad)) 
 { 
 echo 
'<b>Napotkano następujące błędy:</b><br/><br/>'
 echo 
$blad.'<br/>'
 } 
default:    
?> 
Tutaj wpisz tekst...<br/><br/>
<form method="post" action="mail.php?mail=ok"> 
    <table cellpadding="1" cellspacing="2"> 
        <tr> 
            <td style="width:105px">Do kogo:</td> 
            <td><select size="1" name="dokogo"> 
<?php
for($i=0;$i<count($adres);$i++) 
 { 
 echo 
'<option value="'.$i.'"'
 if(
$i==$_POST['dokogo']) echo ' selected="selected"'
 echo 
'>'.$adres[$i][0].'</option>'."\n"
 } 
?></select></td> 
        </tr> 
        <tr> 
            <td style="width:105px">Imię:</td> 
            <td><input type="text" name="odkogo" size="44" value="<?php echo $_POST['odkogo']; ?>" maxlength="30"/></td> 
        </tr> 
        <tr> 
            <td style="width:105px">Twój e-mail:</td> 
            <td><input type="text" name="mail" size="44" value="<?php echo $_POST['mail']; ?>" maxlength="30"/></td> 
        </tr> 
        <tr> 
            <td style="width:105px">Temat:</td> 
            <td><input type="text" name="temat" size="44" value="<?php echo $_POST['temat']; ?>"maxlength="30"/></td> 
        </tr> 
        <tr> 
            <td style="width:105px" valign="top">Treść:</td> 
            <td><textarea rows="8" cols="50"><?php echo $_POST['wiadomosc'];?></textarea></td> 
        </tr> 
        <tr> 
            <td style="width:105px"></td> 
            <td style="text-align:center">
        <input type="submit" value="Wyślij wiadomość" style="width:130px"/>
        <input type="reset" value="Wyczyść pola" style="width:130px"/></td>
        </tr> 
    </table> 
</form> 
<?php

?>

antyhaker.php (Zabezpiecza, przed atakami XSS)

Kod PHP:
<?php
function filtruj($in){
$out $in;
if(!
get_magic_quotes_gpc()){ 
$out addslashes($out); 
}
$out htmlspecialchars($out); 
return 
$out;
}
foreach(
$_COOKIE as $k=>$w){
$_COOKIE[$k] = filtruj($w);
}
foreach(
$_POST as $k=>$w){
$_POST[$k] = filtruj($w);
}
foreach(
$_GET as $k=>$w){
$_GET[$k] = filtruj($w);
}
foreach(
$_REQUEST as $k=>$w){
$_REQUEST[$k] = filtruj($w);
}
?>

Wszystkie pliki muszą być umieszczone w jednym katalogu.

Proszę tutaj jest przykład użycia tego skryptu. Smile


RE: Formularz kontaktowy - ziomek - 06-03-2009

Dzięki za szybką odpowiedź tylko nie wiem czy z tym skryptem jest coś nie tak czy ja coś źle robię ponieważ wyskoczył mi formularz i oprócz tego napisy z kodem skryptu jak by cos nie było połączone w wyborze adresata jest pusto ogólnie zamienszanie, masz może pomysł o co chodzi
Może jeszcze dodam że wyczyściłem nie potrzebne (chyba nie potrzebne) znaki i mam teraz czysty formularz ale zostaje problem z tym że nie mogę wybrać nadawcy ponieważ pole wyboru jest puste
Proszę pomóż

Pozdro


RE: Formularz kontaktowy - Mick - 06-03-2009

Plik ze skryptem musi mieć rozszerzenie *.php np. index.php. Jeżeli tego nie będzie skrypt php nie będzie działał. Ponadto serwer musi obsługiwać php. Napisz na jakim hostingu masz ten serwer, a powiem Ci czy ma php czy też go nie ma. Smile



RE: Formularz kontaktowy - ziomek - 06-03-2009

Za dużo to ci nie powiem bo nie wiem, robię stronkę z darmowych szablonów www.stronygratis.pl
Jedną z opcji jest przełączenie na edytor html i oczywiście jest przydatna ta opcja bo mam dużo możliwości ale z tym formularzem to nie mam pojęcia


RE: Formularz kontaktowy - Mick - 06-03-2009

Z tego co widze, to strona nie obsługuje PHP, wieć mój skrypt nie będzie tutaj działał Sad


RE: Formularz kontaktowy - ziomek - 06-03-2009

Cóż dzięki za chęci
Pomyśle jak wstawić w inny sposób ten formularz kontaktowy
Pozdro.