Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]kodowanie formularza
Forum PHP.pl > Forum > Przedszkole
skabszo
Witam - używam takiego skryptu prostego -
  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border="0"><form method="post">
  6. <tr>
  7. <td>Treść wiadomości</td>
  8. <td><textarea name="tresc" style="width: 250px; height: 100px"></textarea></td>
  9. </tr>
  10. <tr>
  11. <td>Imię, nazwisko lub nick</td>
  12. <td><input type="text" name="imie" style="width: 250px"></td>
  13. </tr>
  14. <tr>
  15. <td>Adres e-mail</td>
  16. <td><input type="text" name="email" style="width: 250px"></td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;</td>
  20. <td><input type="submit" name="submit" value="Wyślij">&nbsp;
  21. <input type="reset" value="Od nowa"></td></form>
  22. </tr>
  23. </table>";
  24. }
  25. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  26. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  27. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  28. // zmienna $message zawiera treść wiadomości
  29. $message = "Treść wiadomości:n$_POST[tresc]nWysłał: $_POST[imie]ne-mail: $_POST[email]";
  30. // zmienna $header zawiera przede wszystkim adres zwrotny
  31. $header = "From: $_POST[imie] <$_POST[email]>";
  32. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  33. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  34. or die('Nie udało się wysłać wiadomości');
  35. // wyświetlenie komunikatu w przypadku powodzenia 
  36. echo "<div align="center"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  37. }
  38. // lub w przypadku nie wypełnienia formularza do końca
  39. else echo "<span style="color: #FF0000; text-align: center;">Wypełnij wszystkie pola formularza!</span>";
  40.  
  41. ?>
Nie mam wielkiej wiedzy na temat php więc wszystko co robię to podstawy. No i mam pytanko - otóż skrypt, działa, wysyła maila - z taką różnicą że w mailu przychodzą krzaczki. Pomyślałem że to pewnie wina kodowania - więc użyłem tam jakiegoś programu pt gżegżółka do konwersji na iso no i jeśli mail ten odbierany jest na koncie przez program jak np theBat w którym kodowanie mam domyślnie ust. na iso czyli środkowoeuropejskie to mail przychodzi cały ładny i w ogóle. Ale jeśli odbieram to już przez mailera jako skrypt tzn np przez gmail to jak włączam tam poczte to już krzaki się pojawiają. Zmieniłem kodowanie na utf8 i dalej krzaki - tu i tu. To wina przeglądarki czy ja coś źle robię? Czy da się do tego skryptu dopisać coś, co by zamieniało odpowiednio kodowanie znaków i żeby wszystko ładnie przychodziło? Doczytałem się na forum że do kodowania służy iconv() ale czy to załatwi sprawę? pozdrawiam;]
kossa
do nagłówków (header) dodaj:

Kod
Content-Type: text/html; charset=iso-8859-2\n


Łukasz

edit:
  1. <?php
  2. $header = "From: $_POST[imie] <$_POST[email]>nContent-Type: text/html; charset=iso-8859-2n";
  3. ?>


napisałem smile.gif
alonzo69
Witam wszystkich serdecznie, jako ze sa tutaj specjalisci w php mam do Was prosbe, otoz nie dziala mi kodowanie w formularzu,
a dokladnie nie wiem co mam zmienic zeby dzialaly polskie znaki, wiem, ze na gorze jest juz odpwoiedz ale nie wiem jak ja zastosowac.

Otoz formularz jest w pliku html:
CODE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Description" content="" />
<meta name="Keywords" content="" />
<meta http-equiv="Content-Language" content="pl" />
<meta name="Author" content="" />
<link rel="Shortcut icon" href="ico.ico" />
<link rel="stylesheet" type="text/css" href="style/style.css" />

w kodzie:

<form action="mail_zamowienia.php" method="GET">
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f1" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f2" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f3" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f4" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f5" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/poleL.png"></div>
<div style="float:left"><input type="text" name="f6" value="" id="pole"/></div>
<div style="float:left"><img src="images/poleR.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>
<div>
<div style="float:left"><img src="images/pole2L.png"></div>
<div style="float:left"><textarea cols="23" id="pole2" name="f7"></textarea></div>
<div style="float:left"><img src="images/pole2R.png"></div>
<div style="clear:both;width:150px;height:10px"></div>
</div>


<div><input type="submit" name="send" value="wyslij"></div>
</form>




A w pliku .php mam:



CODE
<?php
if ("1" == "1" ){
/*
print "twoje dane:<br><br>\n\n\t";
//pobieranie pierwszej zmiennej
//
print $_GET['f0'];
print "<br>\n\t";

//pobieranie drugiej zmiennej
print $_GET['f1'];
print "<br>\n\t";

///pobieranie trzeciej zmiennej
print $_GET['f2'];
print "<br>\n\t";
//
////pobieranie czwartej zmiennej
print $_GET['f3'];
print "<br>\n\t";
*/

// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
// // zmienna $message zawiera treść wiadomości
ob_start();
$message = "Imie i Nazwisko:$_GET[f1]\nFirma:$_GET[f2]\n Stanowisko:$_GET[f3]\nAdres email:$_GET[f4]\nTelefon Stacjonarny:$_GET[f5]\n Telefon Komórkowy:$_GET[f6]\n Treść wiadomości :$_GET[f7] " ;
// // ob_start();zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $_GET[f1] <$_GET[f2]>";
// funkcja mail() za pomocą której wiadomość zostanie wysłana
$majl = "adres@poczty.pl";
@mail("{$majl}","Wiadomosc ze strony www - zamowienia","$message","$header", 'Content-type: text/plain; charset=ISO-8859-2') or die('Nie udało się wysłać wiadomości');
// // wyświetlenie komunikatu w przypadku powodzenia
echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
header('location: http://wp.pl/');

}
?>




Bardzo prosze o pomoc,
pozdrawiam
cniak
formularz.html
  1. <div id ="formularz">
  2. <table><h5>zaproponuj sugestie</h5>
  3. <form action="formularz.php" method="post">
  4. podpis<br> <input type="text" name="email" /><br />
  5. Tresc:<br>
  6. <textarea name="content" cols="30" rows="6"></textarea><br>
  7. <br>
  8. <input type="submit" value="wyslij" /><input type="reset" value="Wyczysc dane" />
  9. </form>
  10. </table>
  11. </div>



formularz.php

<?PHP
$adresat = 'twoj@mail.pl'; // mail
@$email = $_POST['email'];
@$content = $_POST['content'];
$header = "From: sugestia \nContent-Type:".
' text/plain;charset="iso-8859-2"'.
"\nContent-Transfer-Encoding: 8bit";
if (mail($adresat, 'sugestia', $content, $email, $header))
include('index.php?id=thx'); // jak dobrze
else
include('index.php?id=srry'); // jak zle
?>


Popelnilem blad to poprawcie
alonzo69
Dzieki za odpowiedz, ale nie da sie dodac kodowania do mojego formularza ?

Nadal nie moge zrobic tego kodowania, zaplace temu kto mi to zrobi smile.gif ktos chetny?
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.