Ik probeer een controle te maken voor domeinnamen of die reeds bestaat. Helaas krijg ik de myValidation function niet goed. Iemand een idee wat er niet goed gaat?
Het is niet duidelijk in de manual welke variabelen er gebruikt kunnen worden in de function myValidation. Ik ben ook maar een beginner met php (wel programmeer ervaring uit het verleden), dus ben afhankelijk van voorbeelden.
// include the class
include_once("validate/class.FormHandler.php");
global $form;
// create a new formhandler object
$form =& new FormHandler();
// textfield which we want to validate
// with our OWN function called myValidator
$form -> textField("Domeinnaam: ", "domeinNaam", FH_NOT_EMPTY);
$form -> selectField("Domein extensie(s): ", "extensie", $domeinExtensie, "myValidator", false, true);
// submitbutton
$form -> submitButton("Ga verder naar stap 2");
// set the handler
$form -> onCorrect("doRun");
// flush it
$form -> flush();
// the handler function
function doRun($data )
{
foreach ($data['extensie'] as $domeinExtensie)
{
echo $data['domeinNaam']."$domeinExtensie <br><br>";
}
}
// Our own validation function!!!!
function myValidator($value)
{
global $form;
// check the value
// create a new formhandler object
$form =& new FormHandler();
// textfield which we want to validate
// with our OWN function called myValidator
$form -> textField("Domeinnaam: ", "domeinNaam", FH_NOT_EMPTY);
$form -> selectField("Domein extensie(s): ", "extensie", $domeinExtensie, null, false, true);
// submitbutton
$form -> submitButton("Ga verder naar stap 2");
// set the handler
$form -> onCorrect("myValidator");
// flush it
$form -> flush();
// Our own validation function!!!!
function myValidator( $aData )
{
foreach( $aData['extensie'] AS $extensie )
{
$check = checkdnsrr( $aData['domeinNaam'].$extensie,"NS");
$dubbelcheck = checkdnsrr($aData['domeinNaam'].$extensie,"A");
if($check && $dubbelcheck == 1)
{
echo "Helaas, ".$aData['domeinNaam'].$extensie. " is niet beschikbaar voor registratie.<br />";
}
else
{
echo $aData['domeinNaam'].$extensie. " is beschikbaar voor registratie.<br />";
}
}
}
?>
Maar met nog 1 heel klein vraagje: Kan ik de melding ook naast de selectfield krijgen ipv een nieuw scherm! Ik wil in 4 stappen het form laten invullen en alleen wanneer er geen fouten zijn ze naar de volgende stap gaan.
// create a new formhandler object
$form =& new FormHandler();
// textfield which we want to validate
// with our OWN function called myValidator
$form->SetMask( '<tr><td valign="top">%title%</td><td valign="top">%seperator%</td><td valign="top">%field%</td><td>%error%</td></tr>' );
$form -> textField("Domeinnaam: ", "domeinNaam", FH_NOT_EMPTY);
$form -> selectField("Domein extensie(s): ", "extensie", $domeinExtensie, 'myValidator', false, true);
// submitbutton
$form -> submitButton("Ga verder naar stap 2");
// set the handler
$form -> onCorrect("doRun");
// flush it
$form -> flush();
// Our own validation function!!!!
function myValidator( $aData )
{
global $form;
$sDomein = $form->GetValue( 'domeinNaam' );
$sError = '';
foreach( $aData AS $id => $extensie )
{
$check = checkdnsrr( $sDomein.$extensie,"NS");
$dubbelcheck = checkdnsrr( $sDomein.$extensie,"A");
if($check && $dubbelcheck == 1)
{
$sError .= "Helaas, ".$sDomein.$extensie. " is niet beschikbaar voor registratie.<br />";
}
}
if( $sError == '' )
{
return true;
}
else
{
return $sError;
}
}