header('Location: ') vraag-waar in mijn code?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kim de graaf

kim de graaf

01/08/2010 19:34:48
Quote Anchor link
Hallo

Ik heb vandaag een contactformulier gemaakt. Hiervoor heb ik een voorbeeldscript gebruikt. Op zich werkt het formulier prima. Maar ik wil graag dat als de bezoeker het formulier verzend hij terug gaat naar de home-pagina. Nu komt bezoeker in een wit scherm met wat tekst.

Na zoeken op internet kwam ik erachter dat ik de
header('Location: http://www.example.com/');
code moet gebruiken. Ik heb deze op verschillende plekken in mijn code gezet, maar zonder resultaat (krijg ook geen foutmeldingen, er veranderd gewoon niks). Ook ziet mijn code er wat anders uit dan de voorbeelden die ik heb gezien. Ik hoop dat iemand er naar kan kijken en me een stukje op weg kan helpen. Alvast hartelijk bedankt.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php

if(isset($_POST['email'])) {
    
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "[email protected]";
    $email_subject = "Your email subject line";
    
    
    function
died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form your submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !
isset($_POST['last_name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['telephone']) ||
        !
isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form your submitted.');        
    }

    
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
      $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

  }

  if(strlen($error_message) > 0) {
      died($error_message);
  }

    $email_message = "Form details below.\n\n";
    
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    
    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
    

// create email headers


$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@
mail($email_to, $email_subject, $email_message, $headers);  
?>


<!-- include your own success html here -->

Bedankt voor uw aanvraag. Wij nemen zo snel mogelijk contact met u op.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>




MVG Kim
Gewijzigd op 01/08/2010 19:37:02 door Kim de graaf
 
PHP hulp

PHP hulp

29/11/2024 03:40:01
 
P-ter AA

P-ter AA

01/08/2010 19:40:59
Quote Anchor link
Klopt, dit had ik ook ooit. Gebruik ipv header (php) de metatag refresh:

<meta http-equiv="refresh" content="0;url=http://example.com/">

Dus zoiets:

Vervang onderaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>


door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<meta http-equiv="refresh" content="0;url=http://example.com/">
<?
}
?>
Gewijzigd op 01/08/2010 19:43:41 door P-ter AA
 
Wouter De Schuyter

Wouter De Schuyter

01/08/2010 19:46:32
Quote Anchor link
Je moet het boven alle output zetten, m.a.w. er mag nog niks op de pagina uitgeprint zijn tenzij je slordig wilt gaan werken en bovenaan je script ob_start(); zet en onderaan ob_end_flush();

En je ziet waarschijnlijk geen errors omdat je default error reporting niet juist staat, zet eens bovenaan je script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php error_reporting(E_ALL); ?>
Gewijzigd op 01/08/2010 19:50:08 door Wouter De Schuyter
 
Mark L

Mark L

01/08/2010 20:18:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if(!isset($_POST['first_name']) ||
        !
isset($_POST['last_name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['telephone']) ||
        !
isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form your submitted.');        
    }

?>

Klopt de functie died() wel? Moet dit niet die(); zijn?

Line 41 ook.
Gewijzigd op 01/08/2010 20:19:30 door Mark L
 
Veur Heur

Veur Heur

01/08/2010 21:42:38
Quote Anchor link
@Mark L kijk goed en zie dat de functie died() op lijn 10 wordt gedefinieerd.
 
Kim de graaf

kim de graaf

01/08/2010 22:51:48
Quote Anchor link
Bedankt voor de snelle reacties! Ik ga er morgen eens rustig naar kijken en laat weten of het is gelukt.

Groetjes Kim

Toevoeging op 02/08/2010 19:02:18:

Hallo

Ik heb de metacode onderaan gezet en dit werkt!
Het enige wat ik nog een beetje vervelend vind is dat ik dan eerst 2 seconden in een wit scherm kom met wat tekst voordat hij naar de goede pagina gaat. Kunnen jullie me daarmee misschien ook wat op weg helpen? Dus dat de witte pagina wordt overgeslagen, en na verzenden er meteen naar de pagina in de metacode wordt gegaan.

Code nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

if(isset($_POST['email'])) {
    
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "[email protected]";
    $email_subject = "Your email subject line";
    
    
    function
died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form your submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !
isset($_POST['last_name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['telephone']) ||
        !
isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form your submitted.');        
    }

    
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
    
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
      $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

  }

  if(strlen($error_message) > 0) {
      died($error_message);
  }

    $email_message = "Form details below.\n\n";
    
    function
clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    
    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
    

// create email headers


?>




<meta http-equiv="refresh" content="0;url=http://www.doe-educatie.nl/">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
}
?>

Alvast hartelijk bedankt.

Groetjes Kim
Gewijzigd op 02/08/2010 19:04:44 door kim de graaf
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.