Jump to content

putting code in a function gives undefined notices


senca99

Recommended Posts

Hey all!

I've written code for checking form input and it works fine if its just a php script. But for OO reasons I wanted to put the code in a function. But when calling the function in a different script suddenly I get notices that my variables in the function are undefined. :s

Does anyone know why?

 

This is the function code:

 

function algemeen_registratie_formulier() {

echo'<p>Registreer</p>';

	$familienaam='';
   $voornaam='';
   $straat='';
   $huisnr='';
   $postcode='';
   $plaats='';
   $mail='';
   $telnr='';	
   $bijzonderh='';  
	$aantalkids='';
 // Speciale checks voor familienaam,voornaam,straat,plaats en e-mailadres wordt gedaan als we het form submitten
 if ($_SERVER['REQUEST_METHOD'] == 'POST')
	   {
   $familienaam=$_POST['naam'];
   $voornaam=$_POST['vnaam'];
   $straat=$_POST['straat'];
   $huisnr=$_POST['huisnr'];
   $postcode=$_POST['postcode'];
   $plaats=$_POST['plaats'];
   $mail=$_POST['mail'];
   $telnr=$_POST['telnr'];
   $bijzonderh= $_POST['bijzonderh'];
   
    	/*Hieronder de regexen om de input te verifiëren*/
   		 if (!ereg('^[ a-zA-Z-]+$', $_POST['naam'])){
       		 $familienaam_fout = 1;}

   		 if (!ereg('^[ a-zA-Z-]+$', $_POST['vnaam'])){
       		 $voornaam_fout = 1;}
    
   		 if (!ereg('^[ a-zA-Z-]+$', $_POST['straat'])){
       		 $straat_fout = 1;}

   		 if ((!ereg('[1-9][A-Za-z]',$_POST['huisnr'])) && (!ereg('[1-9][0-9]{3}', $_POST['huisnr']))){
   		     $huisnr_fout = 1;}
   		     
		 if (!ereg('^[1-9][0-9]{3}$', $_POST['postcode'])){
			 $postcode_fout = 1;}
       	    
   		 if (!ereg('^[ a-zA-Z-]+$', $_POST['plaats']))
       		 $plaats_fout = 1;
   
  			 if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
            $email_fout = 1;

		 if (!ereg('^0[1-9][0-9]{7}$', $_POST['telnr']))
            $telnr_fout = 1;
           
          /*  
          if (!empty($_POST['bijzonderh'])){
          	if(){
          		
          		}
          	}
            $bijzonderh_fout = 1;
            */
		}

// Kijk of alle velden zijn ingevuld - 
//voornaam en familienaam,straat en plaats mag alleen uit letters bestaan
//en het e-mailadres moet juist zijn...wordt gechecked bij submit	
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (empty($_POST['naam']) || !empty($familienaam_fout) || empty($_POST['vnaam']) || !empty($voornaam_fout)|| empty($_POST['straat']) || !empty($straat_fout) || empty($_POST['postcode']) || !empty($postcode_fout) || empty($_POST['telnr']) || !empty($telnr_fout) || empty($_POST['plaats']) || !empty($plaats_fout) || empty($_POST['mail']) || !empty($email_fout))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{		

    	  if (!empty($voornaam_fout))
    	  		echo '<p>U vulde geen of een foute voornaam in.</p>';
    	  if (!empty($familienaam_fout))
    	  		echo '<p>U vulde geen of een foute familienaam in.</p>';
	  if (!empty($straat_fout))
			echo '<p>U vulde geen of een foute straatnaam in.</p>';
	  if (!empty($huisnr_fout))	
    	  		echo '<p>U vulde een ongeldig huisnummer in.</p>';
	  if (!empty($postcode_fout))
	  		echo '<p>Uw postcode mag enkel uit 4 cijfers bestaan.</p>';
	  if (!empty($plaats_fout))
    	  		echo '<p>U vulde geen plaats in.</p>';
	  if (!empty($email_fout))	
    	  		echo '<p>U vulde geen e-mail adres in.</p>';
    	  if (!empty($telnr_fout))	
    	  		echo '<p>U vulde een ongeldig telefoonnummer in (enkel 9 cijfers toegestaan).</p>';
        if (!empty($bijzonderh_fout))	
    	  		echo '<p>U vulde een ongeldig telefoonnummer in (enkel 9 cijfers toegestaan).</p>';
echo'
<form method="post" action="' . $_SERVER['REQUEST_URI'] . '">
<p>Vul je voornaam in: <br />
<input type="text" value="' .$voornaam. '" name="vnaam" />
</p>
<p>Vul je naam in: <br />
<input type="text" value="' .$familienaam. '" name="naam" />
</p>
<p>Straat: <br />
<input type="text" value="' .$straat. '" name="straat" />
</p>
<p>Huisnummer: <br />
<input type="text" value="' .$huisnr. '" name="huisnr" />
</p>
<p>Postcode: <br />
<input type="text" value="' .$postcode. '" name="postcode" />
</p>
<p>Stad: <br />
<input type="text" value="' .$plaats. '" name="plaats" />
</p>
<p>E-mail: <br />
<input type="text" value="' .$mail. '" name="mail" />
</p>
<p>TELnr(enkel cijfers!): <br />
<input type="text" value="' .$telnr. '" name="telnr" />
</p>
<p>*Opmerkingen of bijzonderheden: <br />
<input type="text" value="' .$bijzonderh. '" name="bijzonderh" />
</p>
</p>
<input type="submit" value="Verzenden" /> <input type="reset" value="Wissen" />
</p>
</form>';
}

/*Deze else zal worden uitgevoerd bij een correcte input in het basis registratieformulier*/
else{
/*eerste check==> een gezin registreerd==>selecteer aantal kinderen*/
if($_POST['registratiekeuze'] == 'babysit'){
	print "U heeft zich geregistreerd als babysit. U registratie wordt afgehandelt.";	
}
else{
	echo'
	<form method="post" action="registreeraantalkids.php">
	<p>Ik ben: <br />
	<select name="registratiekeuze" id="registratiekeuze">
  		<option value=1 $een>1 kind</option>
  		<option value=2 $twee>2 kinderen</option>
  		<option value=3 $twee>3 kinderen</option>
	<option value=4 $twee>4 kinderen</option>
	<option value=5 $twee>5 kinderen</option>
	</select>
	<input type="submit" value="Ga verder..." />
	</form>
	';
	}

}
}

 

The code calling the function:

 

include("functies_voor_registraties.php");

$keuze=globale_keuze();
if($keuze=='gezin'){
algemeen_registratie_formulier();
}
elseif($keuze=='babysit') {
echo'
<p>Registratie voor babysitter:</p>';
algemeen_registratie_formulier();
}

Link to comment
Share on other sites

variables created outside a function will not exist inside the function unless passed in to it (or referenced)

 

variables created inside a function will not exist outside of that function unless retuned (or were referenced, or are globals like $_SESSION)

 

you pass vars into a function like this:

 

functionName($var1,$var2);

 

you reference them like this:

 

functionName(&$var1,&$var2);

 

Link to comment
Share on other sites

Sorry for the late reply, I totally lost trach of this one!

I tried what you said but I still get the notices. I changed the functionheader like this:

 

function algemeen_registratie_formulier($familienaam,$voornaam,$straat,$huisnr,$postcode,$plaats,$mail,$telnr,$paswoord,$bijzonderh,$aantalkids)

 

and I referenced them:

 

algemeen_registratie_formulier(&$familienaam,&$voornaam,&$straat,&$huisnr,&$postcode,&$plaats,&$mail,&$telnr,&$paswoord,&$bijzonderh,&$aantalkids);

 

Does it have something to do with the fact that the page is reloaded before showing the form?

I first show a dropdown menu and when submitting the choice, the function is called and shows the form.

Link to comment
Share on other sites

You really should learn more about using/creating functions in general before implementing them into your code.  Stat with the PHP manual and searching the tutorials that can be found on the forum here.  Don't get me wrong - I'm not saying not to ask for help, just that you need to really look into how functions work properly if you intend to make your own.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.