Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Jak zmodyfikować kod aby wytłuścić czcionkę?
zaworek
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (0%)
-----


Zwracam się z prośbą o pomoc w modyfikacji poniższego kodu.
Jest to wycinek skryptu, którego zadaniem jest przechwytywanie informacji z formularza, zapisanie ich w bazie oraz przesłanie drogą mailową.

  1. $eol = "\n";
  2. $internalfields = array ("submit", "reset", "send", "captcha_code");
  3. $message .= $eol;
  4. $message .= "Adres IP : ";
  5. $message .= $_SERVER['REMOTE_ADDR'];
  6. $message .= $eol;
  7. foreach ($_POST as $key => $value)
  8. {
  9. if (!in_array(strtolower($key), $internalfields))
  10. {
  11. if (!is_array($value))
  12. {
  13. $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
  14.  
  15. }
  16. else
  17. {
  18. $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
  19. }
  20. }
  21. }


Skrypt dział jak powinien chciałbym jednak żeby pewne dane przekazywane w mailu zostały sformatowane (chodzi o wytłuszczenie).
Konkretnie sprawa dotyczy poniższej zmiennej. Nie mogę poradzić sobie z wydawałoby się tak prostą sprawą.

  1. $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;


Ten post edytował zaworek 28.11.2011, 12:35:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Ilware
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(zaworek @ 28.11.2011, 12:30:26 ) *
  1. $eol = "\n";
  2. $internalfields = array ("submit", "reset", "send", "captcha_code");
  3. $message .= $eol;
  4. $message .= "Adres IP : ";
  5. $message .= $_SERVER['REMOTE_ADDR'];
  6. $message .= $eol;
  7. foreach ($_POST as $key => $value)
  8. {
  9. if (!in_array(strtolower($key), $internalfields))
  10. {
  11. if (!is_array($value))
  12. {
  13. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . $value . $eol."</b>";
  14.  
  15. }
  16. else
  17. {
  18. $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
  19. }
  20. }
  21. }


Skrypt dział jak powinien chciałbym jednak żeby pewne dane przekazywane w mailu zostały sformatowane (chodzi o wytłuszczenie).
Konkretnie sprawa dotyczy poniższej zmiennej. Nie mogę poradzić sobie z wydawałoby się tak prostą sprawą.

  1. $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;


czy taka modyfikacja nie rozwiązuje problemu?
Go to the top of the page
+Quote Post
zaworek
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (0%)
-----


Niestety. Po zasugerowanej zmianie czyli

  1. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . $value . $eol."</b>";


PHP generuje błąd

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Go to the top of the page
+Quote Post
Ilware
post
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


a co potem robisz ze zmienną $message?

wywołałem taki kod :

  1. $eol = "\n";
  2. $internalfields = array ("submit", "reset", "send", "captcha_code");
  3. $message .= $eol;
  4. $message .= "Adres IP : ";
  5. $message .= $_SERVER['REMOTE_ADDR'];
  6. $message .= $eol;
  7. foreach ($_SERVER as $key => $value)
  8. {
  9. if (!in_array(strtolower($key), $internalfields))
  10. {
  11. if (!is_array($value))
  12. {
  13. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . $value . $eol."</b>";
  14.  
  15. }
  16. else
  17. {
  18. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . implode(",", $value) . $eol."</b>";
  19. }
  20. }
  21. }
  22. echo $message;


i nie ma żadnego błędu.
http://mentax.eu/printscreen/adam/2011-11-...51.png#1907x551

Ten post edytował Ilware 28.11.2011, 14:51:40
Go to the top of the page
+Quote Post
zaworek
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (0%)
-----


Potem widzę, że wysyłane jest to w BODY

  1. $boundary = md5(uniqid(time()));
  2. $body = 'This is a multi-part message in MIME format.'.$eol.$eol;
  3. $body .= '--'.$boundary.$eol;
  4. $body .= 'Content-Type: text/plain; charset=UTF-8'.$eol;
  5. $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
  6. $body .= $eol.stripslashes($message).$eol;
  7. $body .= '--'.$boundary.'--'.$eol;
  8. mail($mailto, $subject, $body, $header);
  9. $search = array("ä", "Ä", "ö", "Ö", "ü", "Ü", "ß", "!", "§", "$", "%", "&", "/", "\x00", "^", "°", "\x1a", "-", "\"", " ", "\\", "\0", "\x0B", "\t", "\n", "\r", "(", ")", "=", "?", "`", "*", "'", ":", ";", ">", "<", "{", "}", "[", "]", "~", "˛", "ł", "~", "ľ", "@", "|", "<", "+", "#", ".", "´", "+", ",");
  10. $replace = array("ae", "Ae", "oe", "Oe", "ue", "Ue", "ss");
  11. foreach($_POST as $name=>$value)
  12. {
  13. $name = str_replace($search, $replace, $name);
  14. $name = strtoupper($name);
  15. $form_data[$name] = $value;
  16. }
Go to the top of the page
+Quote Post
Ilware
post
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


u mnie nadal wszystko działa i nie ma żadnego błędu.
Go to the top of the page
+Quote Post
zaworek
post
Post #7





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (0%)
-----


Sprawdziłem jeszcze raz na spokojnie poniższy kod.


  1. foreach ($_POST as $key => $value) //pętla przetwarza tablicę $_POST i zwraca nazwy indeksów
  2.  
  3. {
  4. if (!in_array(strtolower($key), $internalfields))
  5. {
  6. if (!is_array($value))
  7. {
  8. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . $value . $eol."</b>";
  9.  
  10. }
  11. else
  12. {
  13. $message .= ucwords(str_replace("_", " ", $key)) . " : <b>" . implode(",", $value) . $eol."</b>;
  14. }
  15. }
  16. }
  17. echo $message; //wyświetlam zmienną message (tutaj pogrubienie jest widoczne)


Wyświetlając zmienną message czcionka jest wytłuszczona czy tak jak chcę.
Niestety w mailu już tego nie widać a dodatkowo dodawany jest w treści znacznik <b>.

Znakiem tego wytłuszczenie znika gdzieś w poniższym kodzie.
  1. $body = 'This is a multi-part message in MIME format.'.$eol.$eol;
  2. $body .= '--'.$boundary.$eol;
  3. $body .= 'Content-Type: text/plain; charset=UTF-8'.$eol;
  4. $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
  5. $body .= $eol.stripslashes($message).$eol; //usuwa znak \ z ciągu znaków
  6. $body .= '--'.$boundary.'--'.$eol;
  7. mail($mailto, $subject, $body, $header);
  8. $search = array("ä", "Ä", "ö", "Ö", "ü", "Ü", "ß", "!", "§", "$", "%", "&", "/", "\x00", "^", "°", "\x1a", "-", "\"", " ", "\\", "\0", "\x0B", "\t", "\n", "\r", "(", ")", "=", "?", "`", "*", "'", ":", ";", ">", "<", "{", "}", "[", "]", "~", "˛", "ł", "~", "ľ", "@", "|", "<", "+", "#", ".", "´", "+", ",");
  9. $replace = array("ae", "Ae", "oe", "Oe", "ue", "Ue", "ss");
  10. foreach($_POST as $name=>$value)
  11. {
  12. $name = str_replace($search, $replace, $name);
  13. $name = strtoupper($name);
  14. $form_data[$name] = $value;
  15. }



Idąc tym tropem zmieniłem
  1. $body .= 'Content-Type: text/plain; charset=UTF-8'.$eol;

na
  1. $body .= 'Content-Type: text/html; charset=UTF-8'.$eol;


Formatowanie już działa ale nie ma łamania wierszy. Wszystko w mailu wysyłane jest w jednym ciągu :/

Ten post edytował zaworek 29.11.2011, 09:27:57
Go to the top of the page
+Quote Post
Ilware
post
Post #8





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


dodaj po każdym nowym wierszu <br /> i powinno być okej (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zaworek
post
Post #9





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (0%)
-----


Tak też zrobiłem. Dziękuję za pomoc. Temat uważam za rozwiązany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 20:05