Vooraf; als je bezig bent om een shop te bouwen die ook echt binnenkort in productie moet, installeer dan liever osCommerce of Magento. Met alle respect, je hebt absoluut niet genoeg kennis van PHP om een winkel te gaan bouwen, professionals doen er al maanden over om dat goed te doen en als jij nog in het stadium zit waarin je niet weet wat je moet doen bij een undefined index, dan.... afijn, met alle respect, zelfs de code van Ciske zit vol fouten die in een productieomgeving tot serieuze problemen zullen leiden, zie b.v. de sanitize functie die htmlentities gebruikt waardoor ampersands in email adressen worden omgezet naar '&'. Ampersands zijn toegestaan in emails, en zelfs als ze dat niet waren dan staat in '&' nog steeds een ampersand. En voor wat het escapen betreft... foei... gewoon: foei.
Terug naar je originele vraag:
Een undefined index error krijg je als je in een array naar een element wijst wat niet bestaat.
Voordat je $_POST["verzendbutton"] kunt gaan gebruiken moet je eerst kijken of hij uberhaupt bestaat, met isset(). En dat is meteen het volgende punt;
je moet fouten controleren en afvangen. Doe je dat niet, dan kun je nooit weten of je script doet wat het moet doen, en belangrijker; je merkt nooit dat het niet doet wat het moet doen.
Controleren of je button mee is gestuurd doe je dus zo:
if (isset($_POST["verzendbutton"]))
{
// Het element 'verzendbutton' bestaat in $_POST;
$verzendbutton = $_POST["verzendbutton"];
}
else
{
// Het element 'verzendbutton' ontbreekt, doe wat er gedaan moet worden wanneer dit het geval is.
}
Gewoonlijk zou je ook eerst kijken of er uberhaupt een POST is gedaan, door te kijken naar $_SERVER['REQUEST_METHOD'], daar staat 'POST' in als er een formulier is verstuurd via de POST methode.
Ik weet niet hoe groot je script is, als je het een beetje handig opdeelt in functies of classen dan kun je de relevante delen vast wel hier posten.