[PHP] Switch include

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

  • Beyond
  • Registratie: Juni 2001
  • Laatst online: 01:11

Beyond

Dussssss.......

Topicstarter
Ik include een php script in een switch.

index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
        
    include_once("./include/header.php"); 
        
    switch ($_GET["content"]) { 
    
    case "Contact": 
        include "./include/contact.php"; 
        break;         
    } 
    
    include_once("./include/footer.php");   
?>


Op deze manier wordt netjes het formulier getoond.
Maar als ik nu op verzenden klik dan wordt er niks verstuurd. Zodra ik die include "./include/contact.php"; buiten de switch zet dan werkt hij wel goed.
Hoe kan dit?

contact.php

PHP:
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
65
66
67
<?php
$email_address = "beyond@beyond.com";
$sender_name = @$_POST[sender_name];
$sender_email = @$_POST[sender_email];
$subject = @$_POST[subject];
$message = @$_POST[message];
$op = @$_POST[op];
$form_block = "
<p><strong>Contact Form:</strong></p>
<form method=\"POST\" action=\"$_SERVER[PHP_SELF]\">
<p><strong>Your Name:</strong><br>
<input type=\"text\" name=\"sender_name\" value=\"$sender_name\" size=30></p>
<p><strong>Your E-Mail:</strong><br>
<input type=\"text\" name=\"sender_email\" value=\"$sender_email\" size=30></p>
<p><strong>Subject:</strong><br>
<input type=\"text\" name=\"subject\" value=\"$subject\" size=30></p>
<p><strong>Message:</strong><br>
<textarea name=\"message\" cols=30 rows=5 wrap=virtual>$message</textarea></p>
<input type=\"hidden\" name=\"op\" value=\"ds\">
<p><input type=\"submit\" name=\"submit\" value=\"Send E-Mail\"></p>
</form>";
if ($op != "ds") {
   // they need to see the form
   echo "$form_block";
} else if ($op == "ds") {
       if ($sender_name == "") {
            // check value of $_POST[sender_name]
            $name_err = "<font color=red>Please enter your name!</font><br>";
            $send = "no";
          }
          if ($sender_email == "") {
            // check value of $_POST[sender_email]
            $email_err = "<font color=red>Please enter your e-mail address!</font><br>";
            $send = "no";
          }
          if ($subject == "") {
            // check value of $_POST[sender_email]
            $subject_err = "<font color=red>Please enter a subject!</font><br>";
            $send = "no";
          }
          if ($message == "") {
          // check value of $_POST[message]
            $message_err = "<font color=red>Please enter a message!</font><br>";
            $send = "no";
          }
          if (@$send != "no") {
            // it's ok to send so build the mail
            $to = "$email_address";
            $subject = "$subject";
            $mailheaders = "From: My Web Site <$to> \n";
            $mailheaders .= "Reply-To: $sender_email\n";
            $msg = "E-MAIL SENT FROM WWW SITE\n";
            $msg .= "Sender's Name:    $sender_name\n";
            $msg .= "Sender's E-Mail:  $sender_email\n";
            $msg .= "Message:          $message\n";
            mail($to, $subject, $msg, $mailheaders);
            echo "<p>Mail has been sent!</p>";
          } else if ($send == "no") {
            echo "$name_err";
            echo "$email_err";
            echo "$subject_err";
            echo "$message_err";
            echo "$form_block";
          }
}

?>

[ Voor 19% gewijzigd door Beyond op 09-06-2005 23:38 ]

Al het goeie.......


  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 01-03 18:17
Zet error_reporting() voor de gein eens op E_ALL. En wat doen al die vieze @-jes daar?

Over je vraag: krijgt de GET variabele content wel ergens een waarde :?

  • Beyond
  • Registratie: Juni 2001
  • Laatst online: 01:11

Beyond

Dussssss.......

Topicstarter
ludo schreef op donderdag 09 juni 2005 @ 23:40:
Zet error_reporting() voor de gein eens op E_ALL. En wat doen al die vieze @-jes daar?

Over je vraag: krijgt de GET variabele content wel ergens een waarde :?
het contact script heb ik ergens weg gehaald en deze werkt ook. Alleen niet als ik include in de switch.

Als je post naar PHP_SELF post hij m dan naar index.php of naar contact.php?

Al het goeie.......


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je doet een POST naar index.php, maar op dat moment is de GET-variabele content natuurlijk niet meer bekend...

[ Voor 3% gewijzigd door crisp op 09-06-2005 23:56 ]

Intentionally left blank


  • Beyond
  • Registratie: Juni 2001
  • Laatst online: 01:11

Beyond

Dussssss.......

Topicstarter
crisp schreef op donderdag 09 juni 2005 @ 23:54:
Je doet een POST naar index.php, maar op dat moment is de GET-variabele Contact natuurlijk niet meer bekend...
Hoe kan ik wel posten naar die contact.php?

Al het goeie.......


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Beyond schreef op donderdag 09 juni 2005 @ 23:56:
[...]


Hoe kan ik wel posten naar die contact.php?
De makkelijkste manier is denk ik deze:
PHP:
1
2
3
4
$form_block = "
...
<form method=\"POST\" action=\"$_SERVER[PHP_SELF]?content=Contact\">
...";

[ Voor 5% gewijzigd door crisp op 09-06-2005 23:58 ]

Intentionally left blank


  • Beyond
  • Registratie: Juni 2001
  • Laatst online: 01:11

Beyond

Dussssss.......

Topicstarter
Thnx man,

het werkt nu.

Al het goeie.......


  • FTPlus
  • Registratie: Februari 2003
  • Laatst online: 10-11-2024

FTPlus

Pluisje

je had ook nog $_POST["content"] kunnen gebruiken in plaats van GET :P

-=Waiz=-


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

FTPlus schreef op vrijdag 10 juni 2005 @ 00:24:
je had ook nog $_POST["content"] kunnen gebruiken in plaats van GET :P
Nee, dat had niet zomaar gekund, dat had betekend dat hij $_REQUEST['content'] had moeten opnemen in zijn switch en een hidden veld met de naam "content" in zijn formulier, waarbij dan ook nog eens die waarde gevuld moet worden op het moment dat het formulier gemaakt wordt.

Hoe dan ook, dit was allemaal met een beetje logisch nadenken en debuggen ook wel opgelost, dus doe ik dit topic maar op slot, mede omdat het probleem toch al opgelost is. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.