Hi! I only know a few basic things about PHP and tried to get this to work for hours but it just does not work.
So I want to ask if someone here might be experienced with PHP. If you know it this should only take a minute or two for you to figure out. :)
I have a nested array. Its just a list like this
array[0]["Name"]="Alex";
array[0]["Serial"]="12345";
array[0]["NIC"]="1dA21n";
array[1]["Name"]="Roland";
array[1]["Serial"]="1337";
array[1]["NIC"]="uR0ck";
and so on...
and I want to compare the entered value submitted with HTTPPost to all array entries with a foreach loop. But I can't figure out how to write this loop properly. <img src="smileys/smiley18.gif" border="0" align="middle" />
The original code:
<?
// Check for post data
if ($_POST)
{
// Initialize user array in format "Username"=>"Serial"
$user_array = array(
"John Doe"=>"abc-def-ghi",
"Jane Smith"=>"123-456-789"
);
// Get info from post variables
$user = $_POST['user'];
$serial = $_POST['serial'];
$installed = $_POST['installed'];
// Step through the user array
foreach($user_array as $username=>$serialnumber)
{
// Compare current item to the posted information
if(($user==$username) AND ($serial==$serialnumber))
{
// The current user matched, return info and exit
echo md5($user).md5($serial).'::'.$installed;
exit;
}
}
// If this script makes it this far, nothing matched, return error code
echo -1;
}
else
{
// no post data was sent, return error code
echo -1;
}
?>
I changed the array and added another POST variable.
I tried several things from the php manual and php tutorial sites like:
foreach ($user_array as $type => $properties) {
// $properties = $GodArray[$type]
foreach ($properties as $property => $value) {
// $value = $GodArray[$type][$property]
//echo $property, "=", $value, "<br />";
if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)
{
//The current user matched, return info and exit
echo md5($user).md5($serial).md5($nic).'::'.$installed;
exit;
}
}
}
or:
/*
foreach ($user_array as $nr => $inhalt)
{
$username[$nr] = ( $inhalt['User'] );
$serialnumber[$nr] = ( $inhalt['Serial'] );
$nicid[$nr] = ( $inhalt['NIC'] );
echo $username.$serialnumber.$nicid;
}
*/
or:
// Step through the user array
//foreach($user_array as ($username, $serialnumber, $nicid))
//foreach ($user_array as $v1) {
//foreach ($v1 as $v2) {
// if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)
// {
// The current user matched, return info and exit
// echo md5($user).md5($serial).md5($nic).'::'.$installed;
// exit;
// }
//}
//}
//{
// Compare current item to the posted information
//if(($user==$username) AND ($serial==$serialnumber) AND ($nic==$nicid)
//{
// The current user matched, return info and exit
// echo md5($user).md5($serial).md5($nic).'::'.$installed;
// exit;
//}
//}
But it puts out everything in one line (all data from every array entry) or I get an syntax error with missing , ( or {.
Does anyone know how to do this? Any help would be very much appreciated.