[ad_1]
ファイル (xlsx) を mysql にアップロードしようとしていますが、送信しようとすると同じエラーが発生し続けます。 「127.0.0.1 は現在、このリクエストを処理できません」。 何かアドバイスはありますか?
私が試したこと:
<?php require('Classes/PHPExcel/IOFactory.php'); $servername="localhost"; $username="omri"; $password="1234"; $dbname="omri"; if(isset($_POST['upload'])){ $inputfilename= $_FILES['file']['tmp_name'] ; $exceldata= array(); $conn= mysqli_connect($servername, $username, $password, $dbname); if(!$conn){ die("connection failed: ".mysqli_connect_error()); } try{ $inputfiletype= PHPExcel_IOFactory::identify($inputfilename); $objReader= PHPExcel_IOFactory::createReader($inputfiletype); $objPHPExcel= $objReader ->load($inputfilename); } catch(Exception $e) { die('error loading file "'.pathinfo($inputfilename, PATHINFO_BASENAME).'": '.$e->getMessage()); } $sheet= $objPHPExcel->getSheet(0); $highestrow= $sheet->getHighestRow(); $higestcolumn= $sheet->getHighestColumn(); for($row=1; $row<=$highestrow; $row++) { $rowData= $sheet->rangeToArray('A'. $row .':'. $higestcolumn . $row, NULL, TRUE, FALSE ); $sql= "INSERT INTO restricted (name, id, citizenship, expires) VALUES ('".$rowData[0][0]."','".$rowData[0][1]."','".$rowData[0][2]."','".$rowData[0][3]."')"; if(mysql_query($conn,$sql)){ $exceldata[]=$rowData[0]; } else{ echo "Error: " . $sql . "<br>" . mysql_error($conn); } } echo "<table border='1'>"; foreach($exceldata as $index => $excelraw) { echo "<tr>"; foreach($excelraw as $excelcolumn) { echo "<td>". $excelcolumn . "</td>"; } echo "</tr>"; } echo "</table>"; mysql_close($conn); } ?> <html> <head> <meta charset="UTF-8"> <title>Import Excel</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="upload" value="upload"> </form> </body> </html>
解決策 1
$sql= "INSERT INTO restricted (name, id, citizenship, expires) VALUES ('".$rowData[0][0]."','".$rowData[0][1]."','".$rowData[0][2]."','".$rowData[0][3]."')";
あなたの質問に対する解決策ではありませんが、別の問題があります。
文字列を連結して SQL クエリを作成しないでください。 遅かれ早かれ、ユーザー入力でそれを行うことになります。これにより、「SQL インジェクション」と呼ばれる脆弱性への扉が開かれます。これは、データベースにとって危険であり、エラーが発生しやすいものです。
名前に一重引用符があると、プログラムがクラッシュします。 ユーザーが「Brian O’Conner」のような名前を入力すると、アプリがクラッシュする可能性があります。これは SQL インジェクションの脆弱性であり、クラッシュは問題の中で最も少なく、悪意のあるユーザー入力であり、すべての資格情報を含む SQL コマンドに昇格されます。
SQL インジェクション – ウィキペディア[^]
SQL インジェクション[^]
例による SQL インジェクション攻撃[^]
PHP: SQL インジェクション – マニュアル[^]
SQL インジェクション防止チート シート – OWASP[^]
専門用語なしで SQL インジェクションを説明するにはどうすればよいですか? – 情報セキュリティ スタック交換[^]
—–
コードを適切にインデントする方法を学びましょう。これにより、その構造が示され、読みやすく、理解するのに役立ちます。 また、構造の間違いを見つけるのにも役立ちます。
<?php require('Classes/PHPExcel/IOFactory.php'); $servername="localhost"; $username="omri"; $password="1234"; $dbname="omri"; if(isset($_POST['upload'])){ $inputfilename= $_FILES['file']['tmp_name'] ; $exceldata= array(); $conn= mysqli_connect($servername, $username, $password, $dbname); if(!$conn){ die("connection failed: ".mysqli_connect_error()); } try{ $inputfiletype= PHPExcel_IOFactory::identify($inputfilename); $objReader= PHPExcel_IOFactory::createReader($inputfiletype); $objPHPExcel= $objReader ->load($inputfilename); } catch(Exception $e) { die('error loading file "'.pathinfo($inputfilename, PATHINFO_BASENAME).'": '.$e->getMessage()); } $sheet= $objPHPExcel->getSheet(0); $highestrow= $sheet->getHighestRow(); $higestcolumn= $sheet->getHighestColumn(); for($row=1; $row<=$highestrow; $row++) { $rowData= $sheet->rangeToArray('A'. $row .':'. $higestcolumn . $row, NULL, TRUE, FALSE ); $sql= "INSERT INTO restricted (name, id, citizenship, expires) VALUES ('".$rowData[0][0]."','".$rowData[0][1]."','".$rowData[0][2]."','".$rowData[0][3]."')"; if(mysql_query($conn,$sql)){ $exceldata[]=$rowData[0]; } else{ echo "Error: " . $sql . "<br>" . mysql_error($conn); } } echo "<table border='1'>"; foreach($exceldata as $index => $excelraw) { echo "<tr>"; foreach($excelraw as $excelcolumn) { echo "<td>". $excelcolumn . "</td>"; } echo "</tr>"; } echo "</table>"; mysql_close($conn); } ?> <html> <head> <meta charset="UTF-8"> <title>Import Excel</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="upload" value="upload"> </form> </body> </html>
プロのプログラマーのエディターには、この機能と、括弧の一致や構文の強調表示などの他の機能があります。
メモ帳++ホーム[^]
超編集[^]
解決策 2
2023-04-05 08:41:12 (CEST) 例外 ‘PHPExcel_Calculation_Exception’ とメッセージ ‘Sheet1!B2 -> internal error’ が phpExcel\PHPExcel\Cell.php:291 で発生 スタック トレース: #0 companyImport.php(113): PHPExcel_Worksheet->rangeToArray(‘A2:B2’, NULL, true, false) #2 {main}
同じコードでこのエラーが発生しています。 誰でも解決策を教えてもらえますか?
[ad_2]
コメント