Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中上载.csv文件时出现问题_Php_Email_File Upload_Csv - Fatal编程技术网

在PHP中上载.csv文件时出现问题

在PHP中上载.csv文件时出现问题,php,email,file-upload,csv,Php,Email,File Upload,Csv,嘿,伙计们,我有一个上传.csv文件的功能。现在的情况是,公司会来上传一个有数千名员工的csv文件。但是现在我对这个有一个问题。我不断得到: PCI内部错误、最大执行时间和上载的文件 我把这个拿给我们的提供商Winhost,他们把它提高到600秒-10分钟。现在埃文做了这件事之后,我仍然有麻烦。相同的超时消息和所有内容。所以我不知道这是不是踢出去了,或者发生了什么,但我真的需要一些帮助 代码: session_start(); 如果(!isset($\u会话['myusername'])){ 标

嘿,伙计们,我有一个上传.csv文件的功能。现在的情况是,公司会来上传一个有数千名员工的csv文件。但是现在我对这个有一个问题。我不断得到:

PCI内部错误、最大执行时间和上载的文件

我把这个拿给我们的提供商Winhost,他们把它提高到600秒-10分钟。现在埃文做了这件事之后,我仍然有麻烦。相同的超时消息和所有内容。所以我不知道这是不是踢出去了,或者发生了什么,但我真的需要一些帮助

代码:

session_start();
如果(!isset($\u会话['myusername'])){
标题(“位置:/PCG/mainlogin.php”);
}
需要一次“Mail.php”;
$hostname=“”;
$username=“”;
$password=“”;
$database=“”;
如果(!空($_POST['name'])){
$member=$_POST['name'];
$memval=1;
}
函数returnBack(){
标题(“位置:PCG/csvuploaderform.php?seterror=1”);
出口
}
函数returnbackfle(){
标题(“位置:PCG/csvuploaderform.php?seterror=2”);
出口
}
如果(isset($_POST['submit'])){
/*******************************检查以确保表单填写正确,并获取CSV文件中的列名称*********************************************************/
如果(!空($\u文件['file']['error']))
{
回显“文件”;
$seterror=1;
返回();
} 
if(空($_POST['firstname'])){
$seterror=1;
返回();
}
if(空($\u POST['lastname'])){
$seterrro=1;
返回();
}
如果(空($_POST['email'])){
$seterror=1;
返回();
}
如果(空($_POST['phone'])){
$seterror=1;
返回();
}
如果($seterror!=1){
$file=$\u FILES['file']['tmp\u name'];
$handle=fopen($file,“r”);
$fileop=fgetcsv($handle,1000,“,”);
$fileop=数组映射(“strtoupper”,数组映射(“trim”,$fileop));
$firstname\u index=array\u search(strtoupper($\u POST[“firstname”]),$fileop);
如果($firstname_index==false){
返回();
}
$lastname\u index=array\u search(strtoupper($\u POST['lastname']),$fileop);
如果($lastname_index==false){
返回();
}
$email\u index=array\u search(strtoupper($\u POST['email']),$fileop);
如果($email_index==false){
返回();
}
$phone\u index=array\u search(strtoupper($\u POST['phone']),$fileop);
如果($phone_index==false){
返回();
}
$date=日期(“Y-m-d”);
/***********************将列值分配给相应的变量,并将它们插入数据库中的CSV表中*************************************/
试试{
#使用PDO_-MySQL的MySQL
$DBH=newpdo(“mysql:host=$hostname;dbname=$database”,$username,$password);
$DBH->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
}  
渔获量{
埃科:“对不起,我恐怕不能这么做。”;
文件内容('pdorers.txt',$e->getMessage(),文件附加);
}
/*$fileop=fgetcsv($handle,1000,“,”)*/
如果($memval!=1){
$memberview=$\会话['myusername'];
}
否则{
$sql=“从companyname=:companyname的成员中选择用户名”;
$sth=$DBH->prepare($sql);
$sth->execute(数组(':companyname'=>$member));
而($row=$sth->fetch(PDO::fetch_ASSOC)){
$check=$row;
$memberview=$check['username'];
}
}
$j=0;
while(($fileop=fgetcsv($handle))!==false)
{
$fileop=数组映射(“trim”,$fileop);
$firstname[$j]=$fileop[$firstname_index];
if(空($firstname[$j]){
returnbackfle();
}
$lastname[$j]=$fileop[$lastname_index];
if(空($lastname[$j])){
returnbackfle();
}
$email[$j]=$fileop[$email_index];
如果(空($email[$j])){
returnbackfle();
}
$phone[$j]=$fileop[$phone_index];
如果(空($phone[$j])){
returnbackfle();
}
$csvusername[$j]=$firstname[$j]。$lastname[$j];
$csvpasswordname[$j]=$lastname[$j]。$firstname[$j];
$status=“打开”;
$sql=“从csvdata中选择用户名,其中用户名=:csvusername”;
$sth=$DBH->prepare($sql);
$sth->execute(数组(':csvusername'=>$csvusername[$j]);
而($row=$sth->fetch(PDO::fetch_ASSOC)){
$csvusername[$j]=$firstname[$j].$lastname[$j].rand(1,20);
}
$sql=“从csvdata中选择密码,其中密码=:csvpasswordname”;
$sth=$DBH->prepare($sql);
$sth->execute(数组(':csvpasswordname'=>$csvpasswordname[$j]);
而($row=$sth->fetch(PDO::fetch_ASSOC)){
$csvpasswordname[$j]=$lastname[$j].$firstname[$j].rand(1,20);
}
$j++;
}
对于($i=0;$iprepare(“插入csvdata(名字、姓氏、电子邮件、电话、用户名、密码、状态、成员视图、状态更改日期)值(?,,,,,,,,,?)”);
$sth->execute(数组($firstname[$i],$lastname[$i],$email[$i],$phone[$i],$csvusername[$i],$csvpasswordname[$i],$status,$memberview,$date));
$from=“email.com”;
$to=$email[$i];
$subject=“”;
$body=“消息…”;
$host=”“;
$username=“”;
$password=“”;
$headers=数组('From'=>$From,
'至'=>$至,
“主题”=>$Subject);
$smtp=Mail::工厂('smtp',
数组('host'=>$host,
“auth”=>正确,
“用户名”=>$username,
“密码”=>$password));
//$mail=$smtp->send($to、$headers、$body);
}
$email=“”;
$from=“”;
$to=$email;
$subject=“”;
$body=“,
";
$host=”“;
$username=“”;
$password=“”;
$headers=数组('From'=>$From,
'至'=>$至,
“主题”=>$Subject);
$smtp=Mail::工厂('smtp',
数组('host'=>$host,
“auth”=>正确,
“用户名”=>$username,
“密码”=>$password));
//$mail=$smtp->send($to,$header)
session_start();
if(!isset($_SESSION['myusername'])){
header("location:/PCG/mainlogin.php");
}
require_once "Mail.php";
$hostname="";
$username="";
$password="";
$database="";

if (!empty($_POST['name'])){
$member = $_POST['name'];
$memval = 1;
}
function returnBack(){

    header("Location:PCG/csvuploaderform.php?seterror=1");
    exit;

}
function returnBackfile(){

    header("Location:PCG/csvuploaderform.php?seterror=2");
    exit;

}

if (isset($_POST['submit'])){

    /*******************************CHECK TO MAKE SURE FORM IS PROPERLY FILLED AND GET NAME OF COLUMNS IN CSV FILE *********************************************************/

    if (!empty($_FILES['file']['error'] ) )
    {

        echo "file";
        $seterror =1;
        returnBack();

    } 
    if (empty($_POST['firstname'])){

        $seterror =1;
        returnBack();
    }
    if (empty($_POST['lastname'])){
        $seterrro =1;

        returnBack();
    }
    if (empty($_POST['email'])){
        $seterror =1;

        returnBack();
    }
    if (empty($_POST['phone'])){
        $seterror =1;
        returnBack();
    }
    if ($seterror != 1){

    $file = $_FILES['file']['tmp_name'];    

    $handle = fopen($file , "r");

    $fileop = fgetcsv($handle,1000,",");

    $fileop=array_map("strtoupper",array_map("trim",$fileop));

    $firstname_index = array_search(strtoupper($_POST["firstname"]),$fileop);
    if ($firstname_index===false){
        returnBack();
    }
    $lastname_index = array_search(strtoupper($_POST['lastname']),$fileop);
    if ($lastname_index===false){

        returnBack();
    }
    $email_index = array_search(strtoupper($_POST['email']),$fileop);
    if ($email_index===false){

        returnBack();
    }
    $phone_index = array_search(strtoupper($_POST['phone']),$fileop);
    if ($phone_index===false){

        returnBack();
    }
    $date = date("Y-m-d");  
    /***********************ASSIGN COLUMN VALUES TO ACCORDING VARIABLES AND INSERT THEM INTO CSV TABLE IN DB *************************************/
    try {  
  # MySQL with PDO_MYSQL  
  $DBH = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);  
  $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    }  
    catch(PDOException $e) { 
        echo "I'm sorry, I'm afraid I can't do that.";  
        file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);   
    }
    /*$fileop = fgetcsv($handle,1000,",")*/
    if ($memval != 1){
    $memberview = $_SESSION['myusername'];
    }
    else{
        $sql ="SELECT username FROM members WHERE companyname =:companyname";
    $sth=$DBH->prepare($sql);
    $sth->execute(array(':companyname' => $member));

    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $check = $row;
    $memberview = $check['username'];
    }
    }
    $j = 0;
    while (($fileop=fgetcsv($handle)) !== false)
    {

        $fileop=array_map("trim",$fileop);

        $firstname[$j] = $fileop[$firstname_index];
        if (empty($firstname[$j])){ 
        returnBackfile();

        }

        $lastname[$j] = $fileop[$lastname_index];
            if (empty($lastname[$j])){
        returnBackfile();

        }
        $email[$j] = $fileop[$email_index];
            if (empty($email[$j])){

        returnBackfile();


        }
        $phone[$j] = $fileop[$phone_index];
            if (empty($phone[$j])){

        returnBackfile();   


        }
        $csvusername[$j] = $firstname[$j] . $lastname[$j];

        $csvpasswordname[$j] = $lastname[$j] . $firstname[$j];

        $status = "Open";

        $sql ="SELECT username FROM csvdata WHERE username =:csvusername";
        $sth=$DBH->prepare($sql);
        $sth->execute(array(':csvusername' => $csvusername[$j]));

        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $csvusername[$j] = $firstname[$j] . $lastname[$j] . rand(1,20);


        }

        $sql ="SELECT password FROM csvdata WHERE password =:csvpasswordname";
        $sth=$DBH->prepare($sql);
        $sth->execute(array(':csvpasswordname' => $csvpasswordname[$j]));

        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        $csvpasswordname[$j] = $lastname[$j] . $firstname[$j] . rand(1,20);


        }

        $j++;
    }

        for($i =0; $i<$j; $i++){

        $sth = $DBH->prepare("INSERT INTO csvdata (firstname, lastname, email, phone, username, password, status, memberview, statuschangedate) VALUES (?,?,?,?,?,?,?,?,?)"); 
        $sth->execute(array($firstname[$i], $lastname[$i], $email[$i], $phone[$i], $csvusername[$i], $csvpasswordname[$i], $status, $memberview, $date));

        $from = "email.com";  
    $to = $email[$i]; 
    $subject = ""; 
    $body = "message.....";
$host = ""; 
$username = ""; 
$password = ""; 
$headers = array ('From' => $from, 
  'To' => $to, 
  'Subject' => $subject); 
    $smtp = Mail::factory('smtp', 
  array ('host' => $host, 
  'auth' => true, 
  'username' => $username, 
  'password' => $password)); 
    //$mail = $smtp->send($to, $headers, $body); 

    }

    $email = "";
    $from = "";  
    $to = $email; 
    $subject = ""; 
    $body = ",



";
    $host = ""; 
$username = ""; 
$password = ""; 
$headers = array ('From' => $from, 
  'To' => $to, 
  'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
  array ('host' => $host, 
  'auth' => true, 
  'username' => $username, 
  'password' => $password)); 
//$mail = $smtp->send($to, $headers, $body);
 header("Location:PCG/memberinterface.php?getmsg=11");
 exit;
    }
}
    $DBH = null;
max_execution_time = 300
upload_max_filesize = 1024M