Notice Undefined index: krijg ik niet opgelost

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Elle H

Elle H

12/06/2015 22:41:10
Quote Anchor link
Ik blijf door onderstaande code de melding undefined index: naam/.../... en wat ik ook probeer ik krijg het niet weg. Het is een code door iemand anders geschreven, ik heb al meerdere notices kunnen oplossen maar deze blijven helaas over.

Echter na lezen en testen/uitproberen van alle tutorials op dit gebied blijven, ondanks mijn vele pogingen, de volgende vier notices undefined index: naam/.../..., undefined index: mail/.../..., undefined index: onderwerp/.../... en undefined index: mssg/.../... staan. Ik heb geen idee meer waar ik de fout moet zoeken. Ik heb veel tutorials van isset, empty, POST en GET tot submit bestudeerd en kom er niet achter.

De meldingen betreffen de volgende regels:
echo "<tr><td>Naam: <input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";
echo "<tr><td><TEXTAREA name=\"msggs\" ROWS=\"6\" COLS=\"45\">" . htmlentities($_POST['msggs']) . "</TEXTAREA></td></tr>";



Hieronder de hele code van de pagina:


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
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!

// E-mailadres van de ontvanger

$mail_ontv = '[email protected]' ; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

// naam controle
if (!preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
}


// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && ( empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['onderwerp']) || empty($_POST['msggs']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

if (!empty($naam_fout))
echo 'U bent uw naam vergeten in te vullen.';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
else
echo '<p>U bent uw naam, e-mail adres, onderwerp of bericht vergeten in te vullen</p>';
}


// form + tabel
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>";

// naam
echo "<tr><td>Naam:</td></tr>";
echo "<tr><td>Naam: <input type=\"text\" name=\"naam\" value=\"" . $_POST['naam'] . "\"></td></tr>";

// space
echo "<tr><td>&nbsp;</td></tr>";

// mail
echo "<tr><td>E-mail adres:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"mail\" value=\"" . $_POST['mail'] . "\"></td></tr>";

// space
echo "<tr><td>&nbsp;</td></tr>";

// mail
echo "<tr><td>Onderwerp:</td></tr>";
echo "<tr><td><input type=\"text\" name=\"onderwerp\" value=\"" . $_POST['onderwerp'] . "\"></td></tr>";

// space
echo "<tr><td>&nbsp;</td></tr>";

// mail
echo "<tr><td>Bericht:</td></tr>";
echo "<tr><td><TEXTAREA 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\" 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 .= "ingevuld mailform. vanaf website";
$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";


$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 je e-mail. Alle e-mail wordt zo snel mogelijk ";
echo "behandeld.</p>";

}

?>
 
PHP hulp

PHP hulp

16/01/2025 01:42:37
 
Eddy E

Eddy E

12/06/2015 22:46:10
Quote Anchor link
Wat geeft dit, als je dit invoegt op regel 3?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
?>


Want hij zegt dat hij $_POST['naam/../..'] niet kan vinden.
Dat is logisch, maar bestaat $_POST['naam'] wel?
En welke regel geeft de foutmelding aan?
 
Pipo Clown

Pipo Clown

12/06/2015 23:28:30
Quote Anchor link
De eerste maal dat je een pagina oproept is deze nog niet gesubmit en zijn er dus ook nog geen $_POST variabelen beschikbaar.

Het beste is om bovenaan de code te testen of de $_POST variabelen beschikbaar zijn en zo niet, dan een default waarde meegeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
isset($_POST['naam']) ? $naam = $_POST['naam'] : $naam = '';


Vervolgens gebruik je verder in je code de variabele $naam i.p.v. $_POST['naam'].
Gewijzigd op 12/06/2015 23:30:13 door Pipo Clown
 
Eddy E

Eddy E

12/06/2015 23:32:01
Quote Anchor link
Of overschrijf $_POST['naam'] gewoon ;)
 
Elle H

Elle H

13/06/2015 20:31:02
Quote Anchor link
Eddy E op 12/06/2015 22:46:10:
Wat geeft dit, als je dit invoegt op regel 3?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
?>


Want hij zegt dat hij $_POST['naam/../..'] niet kan vinden.
Dat is logisch, maar bestaat $_POST['naam'] wel?
En welke regel geeft de foutmelding aan?




Toevoeging op 13/06/2015 20:34:46:

De invoeging van de code op regel drie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<pre>' . print_r($_POST, true) . '</pre>';
?>


Geeft helaas op website pagina de volgende extra melding boven de vier notices undefined index: ..
array
(
)

De foutmelding wordt gegeven op regel 37, 44, 51 en 58

Toevoeging op 13/06/2015 20:40:48:

Pipo Clown op 12/06/2015 23:28:30:
De eerste maal dat je een pagina oproept is deze nog niet gesubmit en zijn er dus ook nog geen $_POST variabelen beschikbaar.

Het beste is om bovenaan de code te testen of de $_POST variabelen beschikbaar zijn en zo niet, dan een default waarde meegeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
isset($_POST['naam']) ? $naam = $_POST['naam'] : $naam = '';


Vervolgens gebruik je verder in je code de variabele $naam i.p.v. $_POST['naam'].




Toevoeging op 13/06/2015 20:41:13:

Pipo Clown op 12/06/2015 23:28:30:
De eerste maal dat je een pagina oproept is deze nog niet gesubmit en zijn er dus ook nog geen $_POST variabelen beschikbaar.

Het beste is om bovenaan de code te testen of de $_POST variabelen beschikbaar zijn en zo niet, dan een default waarde meegeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
isset($_POST['naam']) ? $naam = $_POST['naam'] : $naam = '';


Vervolgens gebruik je verder in je code de variabele $naam i.p.v. $_POST['naam'].




Toevoeging op 13/06/2015 20:45:18:

="Pipo Clown op 12/06/2015 23:28:30"]
De eerste maal dat je een pagina oproept is deze nog niet gesubmit en zijn er dus ook nog geen $_POST variabelen beschikbaar.

Het beste is om bovenaan de code te testen of de $_POST variabelen beschikbaar zijn en zo niet, dan een default waarde meegeven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
isset($_POST['naam']) ? $naam = $_POST['naam'] : $naam = '';

Quote:



Vervolgens gebruik je verder in je code de variabele $naam i.p.v. $_POST['naam'].

Hoi Pipo de Clown, dank je voor het antwoord nu begreep ik de isset opmerking direct.
Dit heeft de oplossing gegeven, had hier al veel over gelezen en geprobeerd maar kwam er niet uit hoe dit toe te passen. Notices zijn nu weg, nog ff testen of de mail aankomt. Maar dat zal denk ik wel.



Toevoeging op 13/06/2015 20:54:03:

Pipo de Clow test is uitgevoerd het formulier is zonder problemen verzonden hopen dat het is aangekomen, maar ik denk het wel.

Gelukkig heb hier al een week meerdere tutorials op nageslagen. Begrijp wel als je nog niet gesubmit hebt de variabelen beschikbaar bleven.

Nogmaals reuze bedankt. (:
 



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.