Door
Onbekende gebruiker
op 25-07-2024 13:46
gewijzigd op 28-07-2024 10:33
4.064 views
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.
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');
}
?>
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.
?Onbekende gebruiker
26-07-2024 14:48
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?
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.
[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:
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. ;-)