Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zdarzenie na przycisk
pysiok1983
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Witam!

Mam drobny problem z reakcją strony na przycisk. Mam formularz, w którym podaje się maila oraz jest przycisk wyślij. Przycisk i pole do wpisywania:
Kod
<form action="" method="POST">
<span class="style1">wpisz e-mail:</span>
<input tabindex="2" id="user_password" name="mail_to" maxlength="45" size="43" class="form" type="text" style="height:30; font-size:18px" />
<br><br><br />
<input class="mkj" type="submit" value="Wyślij" style="font-size:18px; font:bold "/>
</form>


W tym samym pliku mam również wpleciony kod php:
Kod
if (isset($_POST['mail_to'])){......... wówczas wyśle maila


Moje pytanie brzmi co należy dodać aby po kliknięciu na przycisk wyślij (po jego kliknięciu pojawia się nowa strona z komunikatem, że mail jest wysyłany, a jak skończy wysyłać, wyświetli się że strona, że już wysłano)

echo nie wchodzi w grę ponieważ chcę aby komunikat był wyświetlany na innej stronie już bez formularza i innych rzeczy, które są widoczne na początku.

Dzięki za pomoc!
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jeżeli wysyłasz jednego maila, to nawet nie ma sensu pokazywać komunikatu "wysyłany", bo jest to z reguły operacja na tyle szybka, że wręcz niezauważalna.
Go to the top of the page
+Quote Post
pysiok1983
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Hmmm no dobra w zasadzie to prawda. A w jaki sposób mogę rozwiązać to aby po wysłaniu wyczyścił stronę i załadował nowy html??
Go to the top of the page
+Quote Post
matixrr
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


No to po wyslaniu maila ustawiasz przekierowanie na inna strone np po 3 sekundach.

http://www.google.pl/search?client=opera&a...-8&oe=utf-8


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
pysiok1983
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Tylko wolałbym aby wszytko było w jednym pliku php
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Robisz przkierowanie header" title="Zobacz w manualu PHP" target="_manual Location, do tego samego pliku, z tym, że dodajesz jeszcze w adrsie zmienna: success=true, a w kodzie strony
  1. <?php if(isset($_GET['success']): ?><p>Mail wysłany!</p><?php endif; ?>
Go to the top of the page
+Quote Post
pysiok1983
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Ok! Mam też taki problem! Mam w html wpleciony kod php! W Php mam sprawdzany warunek czy mail jest ok i czy zostało coś wpisane! Mam tam rownież klawisz wyśli! Dodalem echo przed wyslaniem maila aby wyswielic ze mail jest wysylany! Niestety echo pojawia się dopiero w momencie kiedy mail już został wysłany!
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Niestety echo pojawia się dopiero w momencie kiedy mail już został wysłany!

To zrób przed wysyłaniem maila warunek sprawdzający zawartość pól...

PS. Nie krzycz.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pysiok1983
post
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Nie podziałało!

Jak klikam wyślij to przez chwile pojawia się kawałek strony a później to co jest w echo chociaż echo zrobiłem przed wysłaniem!

Czemu nie chce wyświetlić tego ? Tylko najpierw zajmuje się wysłaniem strona jakby wczytywała się od początku a później wyświetla wszytko!!

Tak jakby nie odświeżał strony tylko najpierw wysyła a potem odświeża!
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak klikam wyślij to przez chwile pojawia się kawałek strony a później to co jest w echo chociaż echo zrobiłem przed wysłaniem!

Może pokażesz, jak próbowałeś? Szklana kula odmawia pomocy.

Cytat
PS. Nie krzycz.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pysiok1983
post
Post #11





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Kod
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php
if (isset($_POST['execute']))
{

if ( get_magic_quotes_gpc() === 1 )
   $_POST['execute'] = stripslashes($_POST['execute']);
    
    
    $zmienna = $_GET['var'];

//echo $zmienna;


// manage errors
error_reporting(E_ALL); // php errors
define('DISPLAY_XPM4_ERRORS', true); // display XPM4 errors

// path to 'MAIL.php' file from XPM4 package
require_once '../MAIL.php';

// get ID value (random) for the embed image
$id = MIME::unique();

// initialize MAIL class
$m = new MAIL;
// set from address and name
$m->From('sprzedaz@xxxxx.com.pl', 'xxxxxx');
// add to address and name

$adr = "";

if (isset($_POST['mail_to'])){


$jakaszmienna = 'dziala i to bez problemu';
eval('echo $jakaszmienna;');

}

if (isset($_POST['mail_to'])){


$adr =$_POST['mail_to'];


if(preg_match('/^[a-zA-Z0-9\.\-\_]+\@[a-zA-Z0-9\.\-\_]+\.[a-z]{2,4}$/D', $adr)){


$m->AddTo($adr, 'Client Name') ? 'Mail został wysłany!' : 'Podano niepoprawny email!';

//$m->AddTo($mail, 'Client Name');
// set subject

$m->Subject('temat');



$tresc="llllllll.\n\n";
$tresc.=$zmienna;
$tresc.="\nJednocześnie zapraszamy do zapoznania się z naszą ofertą w innych lokalizacjach.\n";






$str='<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /></head><body>śćęółźżćńĄŻŚŹĘĆŃŁÓs</body></html>';



//$m->Text($str);
$m->Text($tresc);
// set text/html version of message
//$m->Html('<b>HTML</b> version of <u>message</u>.<br><i>Powered by</i> <img src="cid:'.$id.'">');
//$m->Html($tresc);
// add attachment ('text/plain' file)


//$m->Attach('source file', 'text/plain');
//$f = 'xpertmailer.gif';

// add inline attachment '$f' file with ID '$id'
//$m->Attach(file_get_contents($f), FUNC::mime_type($f), null, null, null, 'inline', $id);


//echo "Dziękujemy, ";

//$m->Send('client') ? 'Mail został wysłany!' : 'Wysyłanie nie powiodło się, spróbuj ponownie!';
$m->Send('client');
//echo 'wiadomosc poszla';


header("Location: pp.html");

echo "Dziękujemy, e-mail został wysłany!";

$adr = "";
$mail="";

}
else {
echo "Podano niepoprawny email! Popraw email i spróbuj ponownie!";
}


}

// send mail
//echo $m->Send('client') ? 'Mail sent !' : 'Error !';

// optional for debugging ----------------
//echo '<br /><pre>';
// print History
//print_r($m->History);
// calculate time
list($tm1, $ar1) = each($m->History[0]);
list($tm2, $ar2) = each($m->History[count($m->History)-1]);
//echo 'The process took: '.(floatval($tm2)-floatval($tm1)).' seconds.</pre>';


if(isset($HTTP_GET_VARS))
    $global_vars = $HTTP_GET_VARS;
else
    $global_vars = $_REQUEST;

if(isset($global_vars["submitted"]))
{
   // echo "Test results:<br>";
    $m = new MAIL;
    $m->Send('client') ? 'Mail sent !' : 'Error !';

   // echo "kkkkk";
}

function get($sName) {
    global $global_vars;
    if(isset($global_vars[$sName]))
        return $global_vars[$sName];
    else
        return "";
}
    

}

echo('<form action="j.php" method="post">
<input tabindex="2" id="user_password" name="mail_to" maxlength="45" size="43" class="form" type="text" style="height:30; font-size:18px" />
<input type="hidden" name="execute" value="true">
<input type="submit" value="Wykonaj kod">
</form>');
?>



</body>
</html>
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przecież kod jest wykonywany od góry do dołu, nie na odwrót. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pysiok1983
post
Post #13





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


hmmm no dobrze tylko nawet jeśli echo jest przed wysłaniem maila to i tak najpierw kończy wysyłać a później wyświetla. Tak jakby najpierw całego php wykonałquestionmark.gif
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Bo wysyłanie maila musisz dać W WARUNEK, a nie POZA.

To tak samo, jakbyś chciał grabiami wygrzebać kasztana z jesiennych liści, a nie sięgasz nimi nad owoc. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pysiok1983
post
Post #15





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Panie od kasztanków! Jakby Pan nie zauważył send jest w warunku także ...

To tak samo jakbyś chciał zerwać kasztana a nie widziałbyś gdzie jest drzewo smile.gif

Kod
<?php
ob_start();

    if (isset($_POST['execute']))
    {

        if ( get_magic_quotes_gpc() === 1 )
           $_POST['execute'] = stripslashes($_POST['execute']);
        $zmienna = $_GET['var'];
        error_reporting(E_ALL); // php errors
        define('DISPLAY_XPM4_ERRORS', true); // display XPM4 errors
        require_once '../MAIL.php';
        $id = MIME::unique();
        $m = new MAIL;
        $m->From('sprzedaz@xxxxx.com.pl', 'xxxxxx');
        $adr = "";

        if (isset($_POST['mail_to']))
        {


            $jakaszmienna = 'dziala i to bez problemu';
            eval('echo $jakaszmienna;');

        }

            if (isset($_POST['mail_to']))
            {


                $adr =$_POST['mail_to'];


                if(preg_match('/^[a-zA-Z0-9\.\-\_]+\@[a-zA-Z0-9\.\-\_]+\.[a-z]{2,4}$/D', $adr))
                {


                    $m->AddTo($adr, 'Client Name') ? 'Mail został wysłany!' : 'Podano niepoprawny email!';

                    $m->Subject('temat');

    

                    $tresc="llllllll.\n\n";

                    $m->Text($tresc);

                    header("Location: pp.html");

                    echo "Dziękujemy, e-mail został wysłany!";

                    $adr = "";
                    $mail="";

                 }
                 else
                {
                     echo "Podano niepoprawny email! Popraw email i spróbuj ponownie!";
                 }


    }

list($tm1, $ar1) = each($m->History[0]);
list($tm2, $ar2) = each($m->History[count($m->History)-1]);
if(isset($HTTP_GET_VARS))
    $global_vars = $HTTP_GET_VARS;
else
    $global_vars = $_REQUEST;

if(isset($global_vars["submitted"]))
{
   // echo "Test results:<br>";
    $m = new MAIL;
    $m->Send('client') ? 'Mail sent !' : 'Error !';

   // echo "kkkkk";
}

function get($sName) {
    global $global_vars;
    if(isset($global_vars[$sName]))
        return $global_vars[$sName];
    else
        return "";
}
    

}

echo('<form action="j.php" method="post">
<input tabindex="2" id="user_password" name="mail_to" maxlength="45" size="43" class="form" type="text" style="height:30; font-size:18px" />
<input type="hidden" name="execute" value="true">
<input type="submit" value="Wykonaj kod">
</form>');
ob_end_flush();

?>


Co by wątpliwości nie było
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
To tak samo jakbyś chciał zerwać kasztana a nie widziałbyś gdzie jest drzewo

A patrząc na powyższy listing to tak, jakbyśmy mówili o zupełnie innych drzewach, gdyż:
  1. z tego, co pobieżnie widzę, to są dwa różne listingi
  2. nie stosujesz wcięć i nie widać wszystkiego na pierwszy rzut oka
  3. do listingów PHP jest osobny bbcode


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pysiok1983
post
Post #17





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.02.2009

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


Spoko ! Nie zmienia to jednak faktu, że nie działa! Czy trzeba jakąś funkcją wywoływać to aby php najpierw wykonał echo a później to co ma dalej w listingu?
Send jest funkcją zapisaną gdzie indziej, mimo wszytko kod nie chce wykonać innych poleceń, które są wcześniej dopóki nie wykona senda. Można jakoś to rozwiązać?? Nie wiem przerwać czy cos?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 06:12