2016-05-29 7 views
-1

Ich bin mir nicht sicher ist es in Ordnung, dies zu fragen. Aber kann mir jemand helfen, diesen Code zu bearbeiten, damit er mich auf meine Homepage weiterleitet. Ich weiß, dass ich Header-Position nur nicht genau festlegen muss, wo Ursache im php völlig neu ist. Hier ist der Code.Ich habe Arbeitscode für E-Mail senden, aber ich bin nicht sicher, wie es zu bearbeiten

<?php 


$from = $_POST['Name']; 
$sendTo = $_POST['Email']; 
$subject = 'New message from contact form'; 
$fields = array('name' => 'Name', 'email' => 'Email', 'message' => 'Message'); // 
$okMessage = 'Contact form share button submited. Url of page will arrive in few seconds!'; 
$errorMessage = 'There was an error while submitting the form. Please try again later'; 
$link = $_SERVER['HTTP_REFERER']; 


try 
{ 
    $emailText = "$link You got message from shared button.\n=============================\n"; 

    foreach ($_POST as $key => $value) { 

     if (isset($fields[$key])) { 
      $emailText .= "$fields[$key]: $value\n"; 
     } 
    } 

    mail($sendTo, $subject, $emailText, "From: " . $from); 

    $responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (\Exception $e) 
{ 
    $responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
    $encoded = json_encode($responseArray); 

    header('Content-Type: application/json'); 

    echo $encoded; 
} 
else { 
    echo $responseArray['message']; 
} 
?> 
+0

Prüfung auf Fehler; es ist der einzige Weg zu erzählen und zu lernen –

+0

Willkommen bei SO. Bitte lesen Sie [Welche Themen kann ich fragen] (http://stackoverflow.com/help/on-topic) und [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to -ask) Und [die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO ist ** nicht eine freie Codierung oder Code-Konvertierung oder Lernprogramm oder Bibliotheks-Suchdienst ** Sie müssen auch zeigen, dass Sie sich bemüht haben, Ihr eigenes Problem zu lösen. – RiggsFolly

+0

Ich habe vergessen zu sagen, dass ich versuchte, in header ('Content-Type: application/json') zu setzen; stattdessen schrieb ich header ("Location: http://mywebpage.com"); aber es hat nicht funktioniert, also fragte ich. – user2977046

Antwort

-1

Sie hinzufügen könnte

header("Location: page.php"); 

Kurz nach

$responseArray = array('type' => 'success', 'message' => $okMessage); 

oder nach

echo $responseArray['message']; 
+0

Ich habe versucht, dass allreardy nicht funktioniert hat, aber danke. – user2977046

+0

Sie könnten Fehler einschalten und sehen, was das Problem ist. Es kann sein, dass Header bereits gesendet werden, bevor Sie den Header Location Code aufrufen. Die andere Möglichkeit wäre, eine Umleitung in JavaScript zu verwenden. Entweder schließen Sie Ihre PHP-Tags und verwenden Sie JS oder echo es in PHP – charlie

+1

Yeah @ user2977046, das ist, wie Sie die Seite ändern sollen. Sie haben offensichtlich ein anderes Problem, das Sie daran hindert, den Header zu setzen. Dies wird als [XY Problem] (http://meta.stackexchange.com/a/66378/270486) bezeichnet. Es ist möglich, dass Sie bereits eine Antwort an den Browser gesendet haben (könnte Text sein), die neue Header ungültig machen würde, gibt es einen anderen Code, der das tun könnte? –

Verwandte Themen