Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem ze skryptem od formularza
Xtremex
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Witam wszystkich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jestem początkującym w dziedzinie jakiego kolwiek programowania i nie dałem sobie rady z przerobieniem skryptu.
Chodzi mi mianowicie o ten skrypt:
  1. <?php
  2. if (count($_POST))
  3. {
  4.    ////////// USTAWIENIA //////////
  5.    $email = '';    // E-mail adresata
  6.    $subject = '';    // Temat maila
  7.    $message = '';    // Komunikat
  8.    $error = '';    // Komunikat bledu
  9.    $charset = 'iso-8859-2';    // Strona kodowa
  10.    //////////////////////////////
  11.    
  12.    $head =
  13.        "MIME-Versio: 1.0r\n" .
  14.        "Content-Typ: text/plain; charset=$charsetr\n" .
  15.        "Content-Transfer-Encodin: 8bit";
  16.    $body = '';
  17.    foreach ($_POST as $name => $value)
  18.    {
  19.        if (is_array($value))
  20.        {
  21.            for ($i = 0; $i < count($value); $i++)
  22.            {
  23.                $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i])&nbsp: $value[$i]) . "r\n";
  24.            }
  25.        }
  26.        else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value)&nbsp: $value) . "r\n";
  27.    }
  28.    echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message $error;
  29. }
  30. else
  31. {
  32. ?>

Skrypt działa tak:
-ktoś uzupełnia formularz i klika submit
-wysyła się formularz na maila, wczytuje się strona, na której był formularz i wyskakuje komunikat

Mój dylemat:
Jak przerobić ten skrypt, aby po wysłaniu formularza (po kliknięciu submit) pokazywała się inna stronka?
Mówiąc inaczej, co zrobić aby po naciśnięciu submit, przeglądarka ODRAZU przechodziła na inną podstronę?

Jeśli to w ogóle możliwe (chociaż wątpie, że nie) to proszę o pomoc.
Z góry serdecznie dziękuję...



Pozdrawiam
Xtremex
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Exek
post
Post #2





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


przeczytaj http://pl.php.net/header w przykładzie masz ładnie napisane.
Go to the top of the page
+Quote Post
Xtremex
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Niestety wyskakują mi przeróżne błędy... Czy mógłbyś wstawić to w skrypt, który podałem wyżej?


Pozdrawiam
Xtremex
Go to the top of the page
+Quote Post
Exek
post
Post #4





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


Przykro mi, wolę dawać wędkę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .

No a jakie to "przeróżne błędy" wyskakują? Bo mój pajęczy zmysł mówi, że może przeczytałeś, ale nie chcesz zrozumieć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Exek 10.09.2008, 22:17:03
Go to the top of the page
+Quote Post
Xtremex
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Niestety tak jak mówiłem - jestem początkujący i prawie nie programuje w php (bez reklamy żywca proszę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ). Więc bardzo proszę kogoś, aby wstawił mi header w skrypt, który podałem, bo niestety kiedy ja to robię to albo nie ma efektu, albo też nie ma efektu + błędy...

Z góry dziękuję
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Dlaczego nie chcesz podać komunikatów błędów? Podaj je i pokaż jak modyfikujesz ten skrypt.
Go to the top of the page
+Quote Post
Xtremex
post
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


  1. <?php
  2. if (count($_POST))
  3. {
  4.   ////////// USTAWIENIA //////////
  5.   $email = '';    // E-mail adresata
  6.   $subject = '';    // Temat maila
  7.   $message = '';    // Komunikat
  8.   $error = '';    // Komunikat bledu
  9.   $charset = 'iso-8859-2';    // Strona kodowa
  10.   //////////////////////////////
  11.  
  12.   $head =
  13.       "MIME-Versio: 1.0r\n" .
  14.       "Content-T: text/plain; charset=$charsetr\n" .
  15.       "Content-Transfer-Encod: 8bit";
  16.   $body = '';
  17.   foreach ($_POST as $name => $value)
  18.   {
  19.       if (is_array($value))
  20.       {
  21.           for ($i = 0; $i < count($value); $i++)
  22.           {
  23.               $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) $value[$i]) . "r\n";
  24.           }
  25.       }
  26.       else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) $value) . "r\n";
  27.   }
  28.   echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message $error;
  29. }
  30. else
  31. header('Locatio: Strona którą ma podmienić');
  32. header('Locatio: Strona podmieniona');
  33. {
  34. ?>


Ten post edytował Xtremex 13.09.2008, 09:41:59
Go to the top of the page
+Quote Post
Exek
post
Post #8





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


te headery to daj od razu po funkcji wysyłającej maila.

Po header('...'); najlepiej jeszcze od razu dać exit;

Przy mail wywal echo i " ? $message : $error"

Ten post edytował Exek 13.09.2008, 12:05:42
Go to the top of the page
+Quote Post
Xtremex
post
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Obecnie mam tak:
  1. <?php
  2. if (count($_POST))
  3. {
  4.  ////////// USTAWIENIA //////////
  5.  $email = '';    // E-mail adresata
  6.  $subject = '';    // Temat maila
  7.  $message = '';    // Komunikat
  8.  $error = '';    // Komunikat bledu
  9.  $charset = 'iso-8859-2';    // Strona kodowa
  10.  //////////////////////////////
  11.  
  12.  $head =
  13.      "MIME-Versio: 1.0r\n" .
  14.      "Conte: text/plain; charset=$charsetr\n" .
  15.      "Content-Transfer-Enco: 8bit";
  16.  $body = '';
  17.  foreach ($_POST as $name => $value)
  18.  {
  19.      if (is_array($value))
  20.      {
  21.          for ($i = 0; $i < count($value); $i++)
  22.          {
  23.              $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) $value[$i]) . "r\n";
  24.          }
  25.      }
  26.      else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) $value) . "r\n";
  27.  }
  28.  mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head);
  29.  header('Locatio: Strona którą ma podmienić');
  30.  header('Locatio: Strona podmieniona');
  31.  exit;
  32. }
  33. else
  34. {
  35. ?>

Ale kiedy klikam submit, to pojawia się ta sama stronka tyle, że bez formularza i error:
Kod
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/yoyo.pl/d/e/demon--team/index.php:7) in /var/www/sites/yoyo.pl/d/e/./index.php on line 631
Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/yoyo.pl/d/e/demon--team/index.php:7) in /var/www/sites/yoyo.pl/d/e/./index.php on line 632


PS. Nie wiem czemu, ale tutaj kiedy wpisuje "Location" wychodzi "Locatio", więc o nie tutaj błąd (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Xtremex 13.09.2008, 14:43:42
Go to the top of the page
+Quote Post
akurczyk
post
Post #10





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


po błądaqch można się dowiedzieć że nie pokazałeś całego skryptu wywal <html><head>...(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
polecał bym zrobić coś takiego:
  1. <?php
  2. if(!isset($_POST['wyslij'])) {
  3.    echo "<form method=\"post\">";
  4.    echo "<table width=\"100%\">";
  5.    echo "<tr>";
  6.    echo "<td align=\"right\">";
  7.    echo "E-mail:";
  8.    echo "</td>";
  9.    echo "<td width=\"100%\">";
  10.    echo "<input type=\"text\" name=\"email\" style=\"widt: 100%;\">";
  11.    echo "</td>";
  12.    echo "</tr>";
  13.    echo "<tr>";
  14.    echo "<td align=\"right\">";
  15.    echo "Treś:";
  16.    echo "</td>";
  17.    echo "<td width=\"100%\">";
  18.    echo "<textarea name=\"tresc\" style=\"widt: 100%; heigh: 200px;\"></textarea>";
  19.    echo "</td>";
  20.    echo "</tr>";
  21.    echo "<tr>";
  22.    echo "<td>";
  23.    echo "</td>";
  24.    echo "<td>";
  25.    echo "<input type=\"submit\" name=\"wyslij\" value=\"Wyślij\">";
  26.    echo "</td>";
  27.    echo "</tr>";
  28.    echo "</table>";
  29.    echo "</td>";
  30.    echo "</tr>";
  31.    echo "</table>";
  32. } elseif(empty($_POST['email']) || empty($_POST['temat']) || empty($_POST['tresc'])) {
  33.    echo "Wszystkie pola muszą być wypełnione!";
  34. } else {
  35.    mail("twoj@mail.pl", "Wiadomość ze strony WWW", addslashes($_POST['tresc']), "Fro: {$_POST['email']}r\nContent-Typ: text/plain; charset=iso-8859-2");
  36.    echo "Wiadomość została wysłana!";
  37. }
  38. ?>
Go to the top of the page
+Quote Post
Xtremex
post
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2007

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


Pokazałem cał skrypt. Te błędy były właśnie na headerach. Nie wiem co teraz mam robić, a nad twoim skryptem się zastanowię, lecz wolałbym ten, co ja podałem.
Go to the top of the page
+Quote Post
Exek
post
Post #12





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


@Xtremex
linia 1: widzę niepotrzebny enter, niech skrypt zaczyna się od razu od <?php

@akurczyk

litości, lepiej zastosować alternatywną składnię ifa:
Kod
<?php if (isset($_POST['submit'])): ?>
  <form method="post">
  <table width="100%">
  <tr>
  <td align="right">
  ...
<?php endif ?>


Ten post edytował Exek 13.09.2008, 16:38:44
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: 23.08.2025 - 16:59