php probleem

Status
Niet open voor verdere reacties.

meyndert

Gebruiker
Lid geworden
29 okt 2009
Berichten
6
goedendag,

ik ben op een probleem gestuit met php waar ik niet uit kom. ik probeer een formuliertje te maken waar als je je naam invoert, een bericht terug krijgt. eigenlijk een heel klein login systeempje. nu als beginnende php'er kom ik hier niet uit. kan iemand mij helpen?

bijvoorbaat dank,
Meyndert
dit is de code:

<html>
<head>
<title></title>
</head>
<body>
<form method="post">
<input type="text" name="test1">
<input type="submit" value="Process">
</form>

<?php
$test1 = $_POST['test1'];

$namen = array('meyndert','giscard','mitch','hedayat');

if ($test1 == $namen("[0],[1],[2],[3]")){

echo "goed";

}

?>
</body>
</html>
 
De fout zit in de volgende PHP code:
PHP:
<?php
...
$namen = array('meyndert','giscard','mitch','hedayat');
if ($test1 == $namen("[0],[1],[2],[3]")){
...
?>
Als je data van een array wilt controleren kan je dat beter als volgt doen:
PHP:
for ($i=0; $i<(count($namen)); $i++) {
    if ($test1 == $namen[$i]) {
        $i == count($namen);
        echo "goed";
    }
}
Wat hier gebeurt is het volgende: Je kijkt hoe groot de array is en doorloopt deze met de for-loop. Daarna kijk je per item in het array of deze klopt met de ingevoerde waarde. Als deze goed is zorg je dat de for-loop klaar is en kan tonen dat het goed is wat ingevuld is.

hoop dat dit helpt

groeten vreugde
 
opmaak tipje vooraf: zet php code tussen [ php ] en [ /php ] (zonder de spaties), dat leest wat beter.

Ik ben geen php expert, dus als er betere oplossingen zijn, dan hoor ik dat graag, maar ik zou de volgende twee correcties aanbrengen:

1) controle of de _POST['test1'] bestaat, waardoor je de controle alleen dan uitvoert.
2) zoekfunctie gebruiken om te kijken of de ingevoerde naam in de array voorkomt (of bedoelde je dat niet?)


PHP:
<html>
<head>
<title></title>
</head>
<body>
<form method="post">
<input type="text" name="test1">
<input type="submit" value="Process">
</form>

<?php
if (isset($_POST['test1']))
{
$test1 = $_POST['test1'];

$namen = array('meyndert','giscard','mitch','hedayat');

if (array_search($test1,$namen)){

echo "goed";

}
}
?>
</body>
</html>
 
Je kunt het beste array_search of in_array gebruiken. De eerste geeft je de key terug, mocht je die nog nodig hebben. De tweede geeft alleen true of false maar is ietsje sneller.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan