Professional CodeIgniter, Thomas Myer

Chapter 9: Security and Performance
281
Here ' s how you would run the check on the headers. Notice that the incoming
$dbheaders

listing is
checked using
in_array()

. The
$dbheaders

listing will be a zero - indexed array like the following:
(0 =
>
`id', 1 =
>
`name', 2 =
>
`something_else'. . . )

etc., And so on, depending on the names of the fields. A simple
in_array()

check will quickly detect if
the
$hdr

variable you are processing does exist in the table. If it does exist, set
$error[$k]

to FALSE;
otherwise, set
$error[$k]

to TRUE. If you have an error, then display an asterisk and " (error) " next to
the header in the display.
<
?php
$error = array();
if (count($csv)){
echo form_open(`admin/products/import');
echo form_submit(`cancel','
<
<
start over');
echo form_submit(`submit','finalize import
>
>
');
?
>
<
table border='1' cellspacing='0' cellpadding='5'
>
<
tr valign='top'
>
<
?php
$headers = array_keys($csv[0]);
foreach ($headers as $k =
>
$v){
$hdr = trim(str_replace(`"','',$v));
if (in_array($hdr,$dbheaders)){
$error[$hdr] = false;
}else{
$error[$hdr] = true;
}
if ($hdr != `'
&
&
!eregi("thumbnail",$hdr)
&
&
!eregi("image",$hdr)){
echo "
<
th
>
".$hdr;
if ($error[$hdr]){
echo "* (error)\n";
}
echo "
<
/th
>
\n";
}
}
?
>

Now that you have a full list of which headers are in error, with the keys of the
$error

array matching
the header names in the CSV file, you can quickly add a proviso in the second loop that only prints out a
hidden field, if and only if, there are no errors for a given header.
<
/tr
>
<
?php
foreach ($csv as $key =
>
$line){
echo "
<
tr valign='top'
>
\n";
foreach ($line as $f =
>
$d){
$FIELD = trim(str_replace(`"','',$f));
$FDATA = trim(str_replace(`"','',$d));
if ($FIELD != `'
&
&
!eregi("thumbnail",$FDATA)
&
&
!eregi("image",$FDATA)){
echo "
<
td
>
";
c09.indd 281
c09.indd 281
6/10/08 5:38:03 PM
6/10/08 5:38:03 PM


Другие страницы

 
Cкачать книги бесплатно без регистрации в электронном виде (pdf, chm, txt).Вы можете читать книги онлайн на нашем сайте литературного портала книг.Большая подборка учебников, пособий, интересных книг.Электронные книги на английском языке скачать бесплатно без смс.