Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeniesienie na określoną stronę po wykonaniu skryptu
Forum PHP.pl > Forum > PHP
stas13111979
Witam,
mam kłopot z przekierowaniem przeglądarki na określoną stronę po wykonaniu skryptu.
na początku pliku definiuję stronę
Kod
$strona = "http://www.<domena>.info.php";

na końcu wstawiam
Kod
if($mail->Send())
    {                      
        header("Location: $strona");
        exit;
        }            
    else    //w przeciwnym wypadku
    
        {          
        echo 'E-mail nie mógł zostać wysłany';    //wyświetl następujący
        }
?>

i widzę białą stronę a jak wstawię
Kod
echo 'E-mail wysłany';

to gitara.
Simonell
Składnia domeny wydaje się nieprawidłowa, powinno być na przykład:
  1. $strona = "http://www.<domena>/info.php";
stas13111979
Sorki literówkę zrobiłem, jest /info.php ale nawet jak przeniosłem wszystkie pliki do katalogu głównego (wcześniej były w katalogu niżej) wpisywanie
Kod
$strona = "info.php";
lub pełnego
Kod
$strona = "http://<domena>/info.php";
nic nie daje.
bmati666
http://stackoverflow.com/questions/1419144...f-email-is-sent
  1. header('Location: http://<domena>/info.php');
stas13111979
Do bmati666 też tak próbowałem, ani ustalenie zmiennej i podanie w header('Location: ani wpis na sztywno nie zdaje egzaminu. Zmienię na echo i działa.
Wrzucę cały skrypt bo może już ślepnę i najprostszych rzeczy nie widzę.

Kod
<?
function error($error) {
?>
    <html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    </head>
    <body>
    <? echo $error ?>
    </body>
    </html>
<?
    exit;
}

$email    = $_POST['email'];
$location = $_POST['location'];
$require  = $_POST['require'];
$impreza  = $_POST['impreza'];
$imie_i_nazwisko = $_POST['imie_i_nazwisko'];
$data_i_miejsce_urodzenia = $_POST['data_i_miejsce_urodzenia'];
$adres_zamieszkania = $_POST['adres_zamieszkania'];
$telefon = $_POST['telefon'];
$seria_i_nr_paszportu = $_POST['seria_i_nr_paszportu'];
$data_waznosci_paszportu = $_POST['data_waznosci_paszportu'];
$miejscowosc_i_data = $_POST['miejscowosc_i_data'];
$mailowy = $_POST['mailowy'];

if($email == "") {
    $error = "Nie został podany adres na który ma być wysłany email z danymi z formularza.";
    error($error);
}

if($require != "") {
    $separator = ",";
    for($item = strtok($require,$separator);
        $item;
        $item = strtok($separator)) {
            $items[$item]++;
    }
}

while(list($key,$val) = each($_POST)) {
    if(($key != 'send') and ($key != 'email') and ($key != 'subject') and ($key != 'require') and ($key != 'location')) {
        if(gettype($items) == 'array') {
            reset($items);
            while(list($key2,$val2) = each($items)) {
                if(($key == $key2) and ($val == "")) {
                    $error = "Nie zostało wypełnione pole $key.";
                    error($error);                    
                }
            }
        }
        $body .= "$key:\n$val\n\n";
    }
}

require 'PHPMailerAutoload.php';
require_once('class.phpmailer.php');    // dodanie klasy phpmailer
require_once('class.smtp.php');    // dodanie klasy smtp
$mail = new PHPMailer();    //utworzenie nowej klasy phpmailer
$mail->From = "__________________________";    //Pełny adres e-mail
$mail->FromName = "Formularz kontaktowy";    //imię i nazwisko lub nazwa użyta do wysyłania wiadomoœci
$mail->Host = "mailng.az.pl";    //adres serwera SMTP wysyłającego e-mail
$mail->Mailer = "smtp";    //do wysłania zostanie użyty serwer SMTP
$mail->SMTPAuth = true;    //włączenie autoryzacji do serwera SMTP
$mail->Username = "_______________";    //nazwa użytkownika do skrzynki e-mail
$mail->Password = "___________________";    //hasło użytkownika do skrzynki e-mail
$mail->Port = 587; //port serwera SMTP
$mail->Subject = "Temat";    //Temat wiadomoœci, można stosować zmienne i znaczniki HTML
$mail->Body = "Dane osoby: $imie_i_nazwisko, Data i miejsce urodzenia: $data_i_miejsce_urodzenia, Adres zamieszkania: $adres_zamieszkania, Adres e-mai: mailowy, Numer telefonu: $telefon, Seria i numer paszportu: $seria_i_nr_paszportu, Data ważności paszportu: $data_waznosci_paszportu, Wybrana wycieczka: $impreza, Data i miejscowość: $miejscowosc_i_data";    //Treść wiadomości, można stosować zmienne i znaczniki HTML
$mail->SMTPAutoTLS = false;   //wyłączenie TLS
$mail->SMTPSecure = '';    //
$mail->AddAddress ("______________________","_______________");    //adres skrzynki e-mail oraz nazwa //adresata, do którego trafi wiadomość
if($mail->Send())    //sprawdzenie wysłania, jeœli wiadomość została pomyślnie wysłana
    {                      
            header('Location: http://_______________/info.php'); //wyświetl ten komunikat
        exit;
        }            
    else    //w przeciwnym wypadku
        {          
        echo 'E-mail nie mógł zostać wysłany';    //wyświetl następujący
        }
?>
bmati666
Spróbuj na samej górze:
  1. <?php

i na samym dole:
  1. ?>

albo
  1. echo '<script>document.location.href="http://www.<domena>/info.php";</script>';

zamiast
  1. header("Location: $strona");
markonix
JS to słabe rozwiązanie.

http://phpedia.pl/wiki/Cannot_add_header_i...rs_already_sent
stas13111979
Dzięki bmati666, echo zadziałało.
markonix
To jest słabe rozwiązanie!
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.