$_GET - $_POST

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard

Richard

24/04/2007 20:32:00
Quote Anchor link
Ik heb een klein probleemje ik gebruik een mail scriptje wat correct werkte maar nu heb ik voor mijn site een elsif statement gemaakt om de pagina's op te vragen maar nu werkt het contact formulier niet meer en gaat hij zodra ik op verzenden klik terug naar de homepage,
er is mij verteld dat dat komt omdat ik in mijn code alleen maar $_GET gebruik terwijl er in dat mail formulier $_POST wordt gebruikt, maar ik ben nog een echte beginner in php en heb dus geen flauw idee hoe ik dit op kan lossen :P bij deze dus hulp gevraagt plz.

de code van het formulier
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?
// geef e-mail adres op van ontvanger
$mail_ontv = "[email protected]";

// is niet 100% !!!
function checkmail($mail)
{

    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        $valid = 1;

    return $valid;
}


// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{

    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))  
    {

        echo "&nbsp;&nbsp;Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen.<br>";
        echo "&nbsp;&nbsp;Ook kan het zijn dat je een verkeerd e-mail adres hebt ingevuld.<p>";
    }

      
    // form + tabel
    echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
    echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";
      
    // naam
    echo "<tr><td>&nbsp;&nbsp;Naam:</td></tr>";
    echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>&nbsp;&nbsp;E-mail adres:</td></tr>";
    echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>&nbsp;&nbsp;Onderwerp:</td></tr>";
    echo "<tr><td><input type=\"text\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // mail
    echo "<tr><td>&nbsp;&nbsp;Bericht:</td></tr>";
    echo "<tr><td><TEXTAREA style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";
      
    // space
    echo "<tr><td>&nbsp;</td></tr>";
      
    // button
    echo "<tr><td>&nbsp;</td></tr>";
    echo "<tr><td><input type=\"submit\" style=\"color: #000000; background-color: #80adff; border: #000000 solid 1px; font-family: Verdana; margin-left: 15px\" name=\"submit\" value=\"Versturen\"></td></tr>";
      
    // sluit form + tabel
    echo "</form>";
    echo "</table>";
}

// versturen naar
else
{      
    // set datum
    $datum = date("d.m.Y H:i");
      
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];
      
    $inhoud_mail = "===================================================\n";
    $inhoud_mail .= "Ingevulde contact formulier\n";
    $inhoud_mail .= "===================================================\n\n";
      
    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= "Bericht:\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";
      
    $inhoud_mail .= "Verstuurd op $datum via het ip " . $ip . "\n\n";
      
    $inhoud_mail .= "===================================================\n\n";
    
    // --------------------
    // spambot protectie
    // ------
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
    // ------

    
    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
    
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n
    $headers = str_replace("\r", "", $headers); // Verwijder \r
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
    
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
    
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
    
    echo "<h1>Je e-mail is verstuurd</h1>";
    
    echo "<p>Bedankt voor het versturen van een e-mail. Je zult snel een antwoord ";
    echo "krijgen indien dit nodig is.</p>";
    
    echo "<p>We nemen alles serieus en zullen vertrouwelijk omgaan met de informatie ";
    echo "die we binnen krijgen. Je e-mail adres zal nooit aan derden worden verstrekt.</p>";
}

?>



code voor de pagina's
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
<?php
error_reporting (E_ALL ^ E_NOTICE);

if($_GET['go'] == "" or $_GET['go'] == "home"){
   include("home.php");
}

elseif($_GET['go'] == "about"){
   include("about.php");
}

elseif($_GET['go'] == "portofolio"){
   include("portofolio.php");
}

elseif($_GET['go'] == "contact"){
   include("contact.php");
}

?>
  


Bij voorbaad dank
 
PHP hulp

PHP hulp

16/04/2024 17:25:40
 
Guido van C

Guido van C

24/04/2007 20:37:00
Quote Anchor link
echo "<form method=\"POST\" ACTION=\"" . $_SERVER['PHP_SELF'] . "\">";

In je pagina, bijvoorbeeld contact.php kun je plaatsen ipv server self. Het is dan mogelijk om een get variable mee te geven: contact.php?id=90

Als je form post gebruikt, en je action staat alleen op de phpself, die heeft niet je get variablen van je pagina, die zou je dan kunnen opvangen en in de pagina met action stoppen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$pagina
= $_SERVER['PHP_SELF'] ;
$get = 'id='.$_GET['id'];

// ... even verder

echo '<form method="POST" ACTION="'.$pagina.$get'">';
?>
Gewijzigd op 01/01/1970 01:00:00 door Guido van C
 
TJVB tvb

TJVB tvb

24/04/2007 20:38:00
Quote Anchor link
Je kunt in de action van het formulier je GET waarde geven, bijvoorbeeld:
<FORM METHOD="POST" ACTION="?go=contact">
 
Richard

Richard

24/04/2007 21:10:00
Quote Anchor link
Tobias schreef op 24.04.2007 20:38:
Je kunt in de action van het formulier je GET waarde geven, bijvoorbeeld:
<FORM METHOD="POST" ACTION="?go=contact">


(y) helemaal geweldig probleem opgelost :)
 



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.