fastix®: Korrektur + Ergänzung

Beitrag lesen

Moin!

Mir fehlte ein Dollar...

  
$arKeys=array_keys($ar);  
foreach ($arKeys as $strKey) {  
  if ( true  
       && $_POST['name']==$ar[$strKey]['name']  
       && $_POST['passwort']==$ar[$strKey]['passwort']  
  ) {  
       myLogin();  
       break 1;  
  }  
}  
myGoAway();  
exit;  

Natürlich kannst Du auch den Array umformen:

  
$newArray=array();  
foreach ($oldArray as $Tupel) {  
       $newArray[$Tupel['name']]['passwort']=$Tupel['passwort'];  
       $newArray[$Tupel['name']]['email']=$Tupel['email'];  
}  
unset($oldArray);  
  
if (! $_POST['passwort']==$newArray[$_POST['name']]['passwort'] ) {  
      myGoAway();  
      exit;  
}  
myLogin();  
exit;  

Noch besser wäre es aber den Array gleich anders einzulesen. Ich benutze dafür eine Funktion, welche die erste Spalte der CSV-Datei als Schlüssel verwendet. Der muss dann allerdings eindeutig sein, sonst gehen jeweils die vorherigen Einträge verloren.

  
function fastixCsvToAssocArray($filename, $trenner=';', $remark='#', $maxCols=3) {  
  $dummy=fastixCheckFile($filename,'r');  
  $ar=array();  
  $lines = file($filename);  
  foreach ($lines as $line) {  
    $line=trim($line);  
    if ($remark != $line[0]) {  
      $arLineTemp=explode($trenner, $line, $maxCols);  
      $arLine=array();  
      for ($i=0;$i < $maxCols; $i++) {  
        $arLineTemp[$i]=trim($arLineTemp[$i]);  
        if ($i == 0) {  
           $assoc=$arLineTemp[$i];  
        } else {  
           if ($maxCols == 2) {  
             $ar[$assoc]=$arLineTemp[$i];  
           } else {  
              $ar[$assoc][$i]=$arLineTemp[$i];  
           }  
        }  
      }  
    }  
  }  
	return $ar;  
}  
  
function fastixCheckFile($filename, $right='r') {  
	if(!is_file($filename)) {  
		die ('Fatal: '.$filename.' ist keine Datei!!!'."\n");  
	}  
	  
	if(!is_readable($filename)) {  
		die ('Fatal: '.$filename.' ist nicht lesbar!'."\n");  
	}  
	  
	if ( true  
             && 'w'==strtolower($right[0])  
             && ! is_writable($filename)  
        ) {  
		die ('Fatal: '.$filename.' ist nicht schreibbar!'."\n");  
	}  
	return true;  
}  
  
  

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix