This topic is locked
[SOLVED]

 Import from text error phprunner 8

12/10/2014 6:41:00 AM
PHPRunner General questions
S
srfrancesco author

Import data form copy and paste text only works on my local machine.

but on line only works when import from a file, this is the error:
Uncaught TypeError: Cannot read property 'prop' of undefinedRunnerAll.js:1559 Runner.pages.ImportPage.Runner.extend.isHeadersLineUsedRunnerAll.js:1561 Runner.pages.ImportPage.Runner.extend.importDataRunnerAll.js:1524 (anonymous function)loadfirst.js:1 n.event.dispatchloadfirst.js:1 r.handle
does anyone know why?

thanks

Sergey Kornilov admin 12/10/2014

Most likely you need to set write permissions on templates_c folder. This is where temporary import files are stored and since it works on local machine this should be the cause.

S
srfrancesco author 12/10/2014



Most likely you need to set write permissions on templates_c folder. This is where temporary import files are stored and since it works on local machine this should be the cause.


Tanks for reply.
The error is caused by the function str_getcsv() not available in php < 5.3.
So I solved by adding this code to the file "includes/import_functions.php" at line 94
if (!function_exists('str_getcsv')) {

function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = '\\', $eol = '\n') {

if (is_string($input) && !empty($input)) {

$output = array();

$tmp = preg_split("/".$eol."/",$input);

if (is_array($tmp) && !empty($tmp)) {

while (list($line_num, $line) = each($tmp)) {

if (preg_match("/".$escape.$enclosure."/",$line)) {

while ($strlen = strlen($line)) {

$pos_delimiter = strpos($line,$delimiter);

$pos_enclosure_start = strpos($line,$enclosure);

if (

is_int($pos_delimiter) && is_int($pos_enclosure_start)

&& ($pos_enclosure_start < $pos_delimiter)

) {

$enclosed_str = substr($line,1);

$pos_enclosure_end = strpos($enclosed_str,$enclosure);

$enclosed_str = substr($enclosed_str,0,$pos_enclosure_end);

$output[$line_num][] = $enclosed_str;

$offset = $pos_enclosure_end+3;

} else {

if (empty($pos_delimiter) && empty($pos_enclosure_start)) {

$output[$line_num][] = substr($line,0);

$offset = strlen($line);

} else {

$output[$line_num][] = substr($line,0,$pos_delimiter);

$offset = (

!empty($pos_enclosure_start)

&& ($pos_enclosure_start < $pos_delimiter)

)

?$pos_enclosure_start

:$pos_delimiter+1;

}

}

$line = substr($line,$offset);

}

} else {

$line = preg_split("/".$delimiter."/",$line);
/*

  • Validating against pesky extra line breaks creating false rows.

    */

    if (is_array($line) && !empty($line[0])) {

    $output[$line_num] = $line;

    }

    }

    }

    return $output;

    } else {

    return false;

    }

    } else {

    return false;

    }

    }

    }