Dit is mijn eerste post, omdat ik pas net php leer.
ik heb een script "gemaakt", dan moet je eerst een tafel invullen, dan doet laat ie heel die tafel zien, dat gaad goed. maar hij moet het getal controleeren, en dat gaat fout.


<?php
function valid_name ($str) {
return (ereg ('^[0-9]', $str));
}
if ($_POST["begin"] != "beginnen" || !valid_name($_POST["tafel"]) {
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<?php
if ($_POST["begin"] && !valid_name($_POST["tafel"])) {
echo "<font color=\"#ff0000\">vul wel een getal in!</font><br />\n";
}
?> 
Type de tafel die je wil oefen en druk op beginnen: <input type="text" name="tafel" /> <input type="submit" value="beginnen" name="begin" />
<?php
} else { //dus als de tafel is ingevuld
for($nr=1; $nr<=10; $nr++) {
$resultaat = $nr*$_POST["tafel"];
echo $nr." x ".$_POST["tafel"]." = ".$resultaat."<br />\n";
}
?>
</form>


p.s.: omdat ik een begiineling ben, mogen jullie best comentaar geven op mijn scrpitwijze (leer ik allen maar van :-)!)
Zie [php]is_numeric()[/php].
maar wat ios nou mijn fout, want daar wordt ik niet wijzer van??
Het volgende is voor een $_GET.
Kan je dus gewoon zo veranderen naar jou eigen idee.

<?php
if((isset($_GET['nr'])) && is_numeric($_GET['nr']))
{
	for($i = 1; $i <= 10; $i++)
	{
		print $i . ' * ' . $_GET['nr'] . ' = ' . $i * $_GET['nr'] . "<br>\n";
	}
}
?>

<?php
//--- $_POST['tafelnummer']  is de tafel
for ($teller = 1; $teller <= $tafelnummer; $teller++)
  {
  echo "<BR>".$teller." * ".$tafelnummer." = ".($teller * $tafelnummer);
  }
?>


Goed, wat tips voor je scriptwijze:

Probeer per set van { en } een inspringing met tab te maken! dan wordt het overzichterlijker!

function iets() {
     if(iets) {
          for(bla) {
               loopje
          }
     }
}

Het is overzichtelijker/beter/makkelijker om in array's enkele quotes te gebruiken:
<?
// NIET
$array["iets"];

// MAAR:
$array['iets'];
?>

en als je een variabele wilt echo'en buiten de php tags, dan kun je het eenvoudig afkorten:
van dit:

action="<?php echo $_SERVER["PHP_SELF"]; ?>"
// naar dit:
action="<?=$_SERVER['PHP_SELF']?>"


Hoop dat je er wat aan hebt!

Groet,

Barry

Reageren