Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]formularz kontaktowy
Forum PHP.pl > Forum > Przedszkole
Krzysiek_1
Witam,

mam wielką prośbę do fachowców o pomoc. smile.gif
Na stronie internetowej mam formularz kontaktowy w php, do tej pory działał poprawnie, ale od 1 września 2008 nastąpiło przełączenie domyślnego interpretera języka PHP 4 na serwerze na PHP 5. Od tego czasu mam problem z formularzem kontaktowym. Wszystko byłoby dobrze, gdyby nie fakt, że w emailu nie dostaję treści wiadomości.
Wszystkie inne pola z formularza przychodzą wypełnione.
W tym miejscu jest moja prośba o sprawdzenie kodu formularza, co może być przyczyną tego problemu po przejściu na PHP5 :

  1. <?php
  2. $wiadomosc = strtr($tekst, 'ĄĆĘŁŃÓŚŻŹąćęłńóśżź', 'ACELNOSZZacelnoszz');
  3. if (count($_POST))
  4. {
  5. $email = [email=""]'xxxx@xx.xx'[/email];
  6. $subject = 'Formularz kontaktowy ze strony www.xxxx.xx[url="http://www.avantidevelopment.pl"]'[/url];  
  7. $error = 'Wystąpił błąd podczas wysłania formularza, proszę o ponowne wysłanie';  
  8. $charset = 'iso-8859-2';  
  9. $imie = $_POST["imie"];
  10. $nazwisko = $_POST["nazwisko"];
  11. $firma = $_POST["firma"];
  12. $telefon = $_POST["telefon"];
  13. $poczta = $_POST["poczta"];
  14. $ip = $_SERVER['REMOTE_ADDR'];  
  15. $body = "\n Imię: $imie\n Nazwisko: $nazwisko\n Firma: $firma\n Telefon: $telefon\n E-Mail: $poczta\n IP: $ip\n\n Wiadomosc: $wiadomosc\n";
  16. $head =      
  17.  "MIME-Version: 1.0r\n" .    
  18.  "Content-Type: text/plain; charset=iso-8859-2r\n" .    
  19.  "Content-Transfer-Encoding: 8bitr\n";    
  20.  echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=" , $body , $head) ? $message : $error;  
  21.  }
  22. else
  23. {
  24. ?>


  1. <form ACTION="?" method="post">
  2. <P ALIGN="LEFT"><b>Imię: </b>
  3. <INPUT TYPE="text" NAME="imie" size="40">
  4. <P ALIGN="LEFT"><b>Nazwisko: </b>
  5. <INPUT TYPE="text" NAME="nazwisko" size="40">
  6. <P ALIGN="LEFT"><b>Firma: </b>
  7. <INPUT TYPE="text" NAME="firma" SIZE="40">
  8. <P ALIGN="LEFT"><b>Telefon: </b>
  9. <INPUT TYPE="text" NAME="telefon" SIZE="40">
  10. <P ALIGN="LEFT"><b>E-mail: </b>
  11. <INPUT TYPE="text" NAME="poczta" SIZE="40">
  12. <P ALIGN="LEFT"><b>Wiadomość: </b>
  13. <TEXTAREA ROWS=4 COLS=50 NAME="tekst"></TEXTAREA>
  14. <INPUT TYPE="Submit" VALUE="Wyślij formularz">
  15. <INPUT TYPE="Reset" VALUE="Wyszyść formularz">
  16. </P>
  17. </FORM>


z góry dzięki za wszelką pomoc
Krzysiek
krzyszbi
dodaj
  1. <?php
  2. $wiadomosc= $_POST["tekst"];
  3. ?>

przed zmienną body a powinno działać
Krzysiek_1
jeśli dobrze zrozumiałem, to chodziło o oto smile.gif :

CODE

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-2'></HEAD>
<body bgcolor="#eaeaea">
<?php
$wiadomosc= $_POST["tekst"];
?>
<center>
<body><br/><br/><br/><br/><br/>
<b><font SIZE="8">Dziękujemy za wysłanie formularza.<br/><br/>
Proszę czekać na odpowiedź.</FONT></B>
</BODY>
</CENTER>
</HTML>

<?php
$wiadomosc = strtr($tekst, 'ĄĆĘŁŃÓŚŻŹąćęłńóśżź', 'ACELNOSZZacelnoszz');
if (count($_POST))
{
$moje = [email=""]'xxx@xx.xx'[/email];
$subject = 'Formularz kontaktowy ze strony xxx'.;
$error = 'Wystąpił błąd podczas wysłania formularza, proszę o ponowne wysłanie';
$charset = 'iso-8859-2';
$imie = $_POST["imie"];
$nazwisko = $_POST["nazwisko"];
$firma = $_POST["firma"];
$telefon = $_POST["telefon"];
$poczta = $_POST["poczta"];
$ip = $_SERVER['REMOTE_ADDR'];
$body = "\n Imię: $imie\n Nazwisko: $nazwisko\n Firma: $firma\n Telefon: $telefon\n E-Mail: $poczta\n IP: $ip\n\n Wiadomość: $wiadomosc\n";
$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=iso-8859-2\r\n" .
"Content-Transfer-Encoding: 8bit\r\n";
echo mail($moje, "=?$charset?B?" . base64_encode($subject) . "?=" , $body , $head) ? $message : $error;
}
else
{
?>

<form ACTION="?" method="post">
<P ALIGN="LEFT"><b>Imię: </b>
<INPUT TYPE="text" NAME="imie" size="40">
<P ALIGN="LEFT"><b>Nazwisko: </b>
<INPUT TYPE="text" NAME="nazwisko" size="40">
<P ALIGN="LEFT"><b>Firma: </b>
<INPUT TYPE="text" NAME="firma" SIZE="40">
<P ALIGN="LEFT"><b>Telefon: </b>
<INPUT TYPE="text" NAME="telefon" SIZE="40">
<P ALIGN="LEFT"><b>E-mail: </b>
<INPUT TYPE="text" NAME="poczta" SIZE="40">
<P ALIGN="LEFT"><b>Wiadomość: </b>
<TEXTAREA ROWS=4 COLS=50 NAME="tekst"></TEXTAREA>
<INPUT TYPE="Submit" VALUE="Wyślij formularz">
<INPUT TYPE="Reset" VALUE="Wyszyść formularz">
</P>
</FORM>

<?php
}
echo"
<script language=\"JavaScript\">
function przenies(){
window.location.href='http://www.html';
}
var szybkosc = 4000;
setTimeout(\"przenies()\",szybkosc);
</script>
";
?>


jeśli o to chodziło, to niestety dodanie tego kodu php przed body nie pomogło i dalej nie widać treści wiadomości sad.gif

z wysłanego formularza dostaję taką wiadomość email:

Imię: aaaaaaaa
Nazwisko: bbbbbbbbb
Firma: ccccccccc
Telefon: dddddddddd
E-Mail: eeeeeeeeeeee
Wiadomość:
krzyszbi
napisałem
Cytat(krzyszbi @ 16.10.2008, 00:18:46 ) *
dodaj
  1. <?php
  2. $wiadomosc= $_POST["tekst"];
  3. ?>

przed zmienną body a powinno działać

przed funkcją mail
Krzysiek_1
sorry, za laicyzm, ale możesz mi podpowiedzieć w które miejsce mam ten kod wstawić,
pomiędzy które linie kodu, który załączyłem w poście powyżej, bo się pogubiłem smile.gif
krzyszbi
mięczy linią
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. ?>

a
  1. <?php
  2. $body = "\n Imię: $imie\n Nazwisko: $nazwisko\n Firma: $firma\n Telefon: $telefon\n E-Mail: $poczta\n IP: $ip\n\n Wiadomość: $wiadomosc\n";
  3. ?>
Krzysiek_1
mam jeszcze jedno pytanie,
czy jest możliwość dopisania do już istniejącego postu kodu php, takich funkcji, aby dane wysyłane w formularzu, były oprócz wysyłania ich email, archiwizowane w jakimś pliku na serwerze, z możliwością poźniejszego ich odczytu?

za każdą podpowiedź od fachowców dziękuję z góry smile.gif
michalkjp
Cytat(Krzysiek_1 @ 20.10.2008, 20:52:31 ) *
były oprócz wysyłania ich email, archiwizowane w jakimś pliku na serwerze


Coś takiego?

  1. <?php
  2.    $date = date('Y-m-d H:i:s');
  3.  
  4.    $fh = fopen("plik_z_wiadomosciami.txt", "a");
  5.    
  6.    fwrite($fh, "\n\n\n Data: $date\n\n");
  7.    fwrite($fh, "Imie: $imie\n");
  8.    fwrite($fh, "Nazwisko: $nazwisko\n");
  9.    fwrite($fh, "Firma: $firma\n");
  10.    fwrite($fh, "Telefon: $telefon\n");
  11.    fwrite($fh, "Poczta: $poczta\n");
  12.    fwrite($fh, "IP: $ip\n");
  13.    fwrite($fh, "Wiadomosc:\n $wiadomosc\n");
  14.  
  15.    fclose($fh);
  16. ?>

Dodaj na końcu skryptu i powinno działać - ew. popraw nazwę jakiejś zmiennej, bo nie testowałem winksmiley.jpg
Może wystąpić mały problem, jeśli kilka osób na raz będzie chciało wysłać wiadomość, bo nie można zablokować pliku – zawsze możesz dodać parametr daty do nazwy pliku, żeby każda wiadomość była zapisywana w oddzielnym pliku.
Krzysiek_1
Dzięki za szybką odpowiedź, już testuję smile.gif

wielkie dzięki za pomoc, działa wyśmienicie smile.gif

mam jeszcze jedno pytanie smile.gif

chcę wyświetlić zawartość wcześniej zapisanego pliku w przegądarce internetowej, ale mam mały problem, jak wyświetlam zawartość tego pliku za pomocą takiego kodu:

  1. <?php
  2. $fh = fopen("plik_z_wiadomosciami.txt", "r");
  3. fpassthru($fh);
  4. fclose($fh);
  5. ?>


to owszem wyświetla mi zawartość pliku, ale w jednej linii,
i tutaj jest moje dodatkowe pytanie,
co muszę zmienić w powyższym kodzie, abym mógł wyświetlić zawartość pliku, aby każda linia była wyświetlana jedna pod drugą, tak jak została zapisana w .txt za pomocą \n ?
Krzysiek_1
dzięki za podpowiedź, czy w Twojej ocenie taki kod będzie poprawny? smile.gif
  1. <?php
  2. $plik =("plik_z_wiadomosciami.txt");
  3. $lines = file($plik);
  4. foreach($lines as $line) {
  5. echo $line.'<br />';
  6. }
  7. ?>
Maxik
  1. <?php
  2. $plik = "plik_z_wiadomosciami.txt";
  3. ?>


I będzie OK.
Krzysiek_1
serdeczne dzięki za pomoc smile.gif
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.