Ik heb het verwerk formulier gedowload en iets aangepast naar mijn eigen contact.html bestand. Ik zal het bestand hier onder weergeven. Misschien kan iemand mij helpen.

<?php
ini_set ('display_errors', 'On');
error_reporting(E_ALL);

include '../../inc/stats.php';
// Controle of een formulier gepost is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Arrays declareren voor opslag van fouten en data
$aErrors = array();
$aData = array();

// Velden die in het formulier aanwezig moeten zijn
$aFormulierVelden = array('NAAM_afzender', 'EMAIL_afzender', 'Bericht',);

// Alle formuliervelden doorlopen
foreach($aFormulierVelden as $sVeld)
{
// Controleren of er een waarde voor het formulierveld bestaat
if(isset($_POST[$sVeld]))
{
// Spaties aan begin en eind weghalen
$sValue = trim($_POST[$sVeld]);

// Controle of variabele gevuld is
if(empty($sValue))
{
// Foutmelding toevoegen
$aErrors[] = 'Je bent vergeten om '.$sVeld.' in te vullen';
}

// Ingevulde waarden aan data array toevoegen
$aData[$sVeld] = $sValue;
}
else
{
$aErrors[] = 'Het veld '.$sVeld.' is niet gepost!';
}
}

// Controleren of er geen fouten opgetreden zijn
if(empty($aErrors))
{
// Formulier succes!
echo '<p>Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:</p>';
echo '<p>Naam: '.$aData['NAAM_afzender'].'<br />';
echo 'Email: '.$aData['EMAIL_afzender'].'</br >';
echo 'Bericht: '.$aData('Bericht').'</p>';
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=verwerk.php');
foreach($aErrors as $sError)
{
echo '<p style="color:red">'.$sError.'</p>';
}
}
}
else
{
// Verwerk.php mag nog niet bezocht worden, terug naar het formulier
header('Location: verwerk.php');
}
?>
En wat is je probleem of vraag?
Ik heb formulierveld Bericht toegevoegd. Ik krijg foutmelding dat bericht niet is toegevoegd. Wat doe ik fout?

[size=xsmall]Toevoeging op 25/07/2024 15:09:20:[/size]

Aanvulling. Krijg 2 foutmeldingen over regel 5. Daarna foutmelding dat Bericht niet is gepost.
Welke foutmeldingen krijg je precies?

Blijkbaar heb je een veld in je HTML die niet genoemd is op lijn 14.
Kan het fout gaan, omdat Bericht een textarea betreft?
In de praktijk niet, het is een formulierelement. Maar we kunnen je beter helpen als je wat concreter bent en wat meer vertelt over je formulier zelf. Ik geef grote kans dat daar wat misgaat.
Ik heb textarea aangepast en krijg nu nog onderstaande fouten. Hoe los ik dit nu op.



Warning: include(../../inc/stats.php): Failed to open stream: No such file or directory in I:\xampp\htdocs\Php\Test\verwerk.php on line 5

Warning: include(): Failed opening '../../inc/stats.php' for inclusion (include_path='I:\xampp\php\PEAR') in I:\xampp\htdocs\Php\Test\verwerk.php on line 5

Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:

Naam: 1
Email: 2

Fatal error: Uncaught Error: Array callback must have exactly two elements in I:\xampp\htdocs\Php\Test\verwerk.php:48 Stack trace: #0 {main} thrown in I:\xampp\htdocs\Php\Test\verwerk.php on line 48
de eerste foutmelding is vrij duidelijk als je hem leest:

het lukt niet om de file ../../inc/stats.php te lezen om hem te includen.
Afhankelijk van wat daarin staat en of je dat voor de rest van je script nodig hebt, kan dat vervelend uitpakken.

Dus stap 1: zoek uit waar dat bestand wel staat, want kennelijk niet in I:\xampp\inc\

---

het vreemde van de "succes"melding is, dat daar niet Bericht genoemd wordt, terwijl die regel gewoon achter staat in je script.

Klopt het dat je voor naam en email "1" en "2" hebt ingevuld?

Mogelijk is het ook zinnig om het html-form erbij te vermelden. Klopt die name-property bijvoorbeeld?

        echo 'Bericht: '.$aData('Bericht').'</p>';

is fout. Je moet blokhaken gebruiken:


        echo 'Bericht: '.$aData['Bericht'].'</p>';


Vandaar die call-back error.
inc/stats.php komt niet voor in xampp. Kan ik regel verwijderen?
1 en 2 heb ik ingevuld om controle op juiste invulling te zien. Ik moet dus nog regels vinden voor controle letters en email en bericht.
Ik voeg nu contact.html toe.

<!DOCTYPE html>
<html lang="nl">
<head> 
<title>Contactformulier</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" media="screen,print" href="styles/sjabloon.css"/>
<script type="text/javascript" src="scripts/general.js"></script>
<script type="text/javascript" src="scripts/namen_index.js"></script>
<script type="text/javascript">
<!--
function RadioClicked(EnableList) {
var SelectList = getObject("formfield_2");
var emptyOptionTwo = '                                                                                   ';
var tmpDN;

if (EnableList == "true") {
SelectList.disabled = false;

SelectList[0].text  = emptyOptionTwo;
SelectList[0].value = "-1";
for (i=0;i<personen.length;i++) {
tmpDN = personen[i].xAchternaam + ", " + personen[i].xDisplayName + " " + personen[i].xGeboorteDT + "  " + personen[i].xSterfDTjs;
tmpDN = tmpDN.replace( /<[^<>]+>/g,'');
SelectList[i+1]= new Option(tmpDN);
SelectList[i+1].value = tmpDN; 
}

} else {
SelectList.disabled = true;
}
}
//-->
</script>

</head>
<body> 

<div id="menu">
<p>Menu</p>
<a href="index.html">Home</a>
<a href="parenteel.html">Parenteel</a>
<a href="familie_cirkel.html">Familiecirkel</a>
<a href="kwartierstaat.html">Kwartierstaat</a>
<a href="kwartier_txt.html" class="submenu">Tekstueel</a>
<a href="kwartier_blad.html" class="submenu">Kwartierblad</a>
<a href="kwartier_cirkel.html" class="submenu">Kwartiercirkel</a> 
<a href="namen_index.html">Namen index</a> 
<a href="contact.html">Contact</a>
<a href="zoeken.html">Zoeken</a>
</div>
<div id="ald_banner"><img src="images/aldfaer.jpg" alt="alfaer logo" />&nbsp;<center><a href="http://www.aldfaer.org">Aldfaer</a></center></div>

<div id="content">
<h1>Contactformulier Familie</h1>
<form method="post" action="verwerk.php" name="Contactformulier Familie Kamphof">
<fieldset style="border:none;">
<input type="hidden" name="recipients" value="[email protected]"/>
<input type="hidden" name="subject" value="[STAMBOOM] Reactie vanaf website Kamphof"/> 
<input type="hidden" name="good_url" value="bedankt.html"/>
</fieldset>
<table>
<colgroup>
<col width="100"/>
<col width="275"/>
</colgroup>
<tr>
<td colspan="2"><input type="radio" name="TYPE_reactie" checked="checked" onclick="RadioClicked('false');" value="Algemeen Contact">Algemeen Contact<input type="radio" name="TYPE_reactie" onclick="RadioClicked('true');" value="Fout Rapporteren">Fout in Stamboom melden<input type="radio" name="TYPE_reactie" onclick="RadioClicked('false');" value="Sjabloon Vraag">Sjabloon vraag</td>
</tr>
<tr>
<td><strong><label for="formfield_2">Fout melden over</label></strong></td>
<td><select name="FOUT_over" disabled="disabled" id="formfield_2">
<option>Ja</option>
<option>Nee</option>
</select>
</td>
</tr>
<tr>
<td><strong><label for="formfield_3">Naam</label></strong></td>
<td><input class="inputmessage" type="text" name="NAAM_afzender" id="formfield_3" size="30" required></td>
</tr>
<tr>
<td><strong><label for="formfield_4">E-mail</label></strong></td>
<td><input class="inputmessage" type="text" name="EMAIL_afzender" id="formfield_4" size="30" required></td>
</tr>
<tr>
<td><strong><label for="formfield_5">Bericht</label></strong></td>
<td><textarea class="inputmessage" name="Bericht" id="formfield_5" rows="6" cols="45" required></textarea></td>
<tr>
<td>&nbsp;</td>
<td><input type="submit" class="btn" value="Verzenden" />&nbsp;<input type="reset" class="btn" value="Wissen" name="B1" /></td>
</tr>
</table>
</form>
</div>
<div id="footer">
<address>
Gegenereerd met <a href="http://www.aldfaer.org/" title="Aldfaer Website">Aldfaer</a> versie 10.1 op 16-07-2024 om 12:27:43<br />
</address>
</div>
</body>
</html>



[size=xsmall]Toevoeging op 27/07/2024 13:32:04:[/size]

Ik heb de laatste aanwijzingen in het script gezet met het volgende resultaat.
Warning: include(../../inc/stats.php): Failed to open stream: No such file or directory in I:\xampp\htdocs\Php\Test\verwerk.php on line 5

Warning: include(): Failed opening '../../inc/stats.php' for inclusion (include_path='I:\xampp\php\PEAR') in I:\xampp\htdocs\Php\Test\verwerk.php on line 5

Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:

Naam: Jaap
Email: [email protected]
Bericht: Test verwerk.php


Behalve inc/stats werkt het zo te zien goed.
Kan ik die regel verwijderen? Werkt het in deze vorm nu ook op internet of moet ik iets over verzenden toevoegen.
Ik zoek nog wel regels om de letters en email op juistheid te controleren. Staan die ook op de site?
Ja, die include-regel kan je dan verwijderen. Verwijder hier op het forum ook je e-mailadres uit je bericht, en gebruik a u b. [code] en [/code]-tags om je codeblok heen, door je bericht te wijzigen.

Niemand is gebaat bij je e-mailadres die je nu openbaar plaatst. ;-)

Reageren