我编写了一个PHP语言函数,从Mysql表中调用$translations,如何从upload.PHP中捕获echo变量?
我的upload.php如下所示我编写了一个PHP语言函数,从Mysql表中调用$translations,如何从upload.PHP中捕获echo变量?,php,Php,我的upload.php如下所示 <?php $language = "DE"; //TYPO3 $user = 0; //TYPO3 $target_dir = "php/documents/uploads/"; $target_file = $target_dir.basename($_FILES["rechnung"]["name"]); $uploadOk = 1 ; $documentFileType = strtolower(pathinfo($target_file,PAT
<?php
$language = "DE"; //TYPO3
$user = 0; //TYPO3
$target_dir = "php/documents/uploads/";
$target_file = $target_dir.basename($_FILES["rechnung"]["name"]);
$uploadOk = 1 ;
$documentFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
//überprufen ob die rechnung ist schon erfasst
if(isset($_POST["submit"])){
$check = file_exists($_FILES["rechnung"]["tmp_name"]);
if($check !== false){
echo lang("file was successfully uploaded"); //Der Beleg wurde erfolgreich erfasst
}else{
echo lang("sorry the file could not be uploaded"); //Entschuldigung, der Beleg wurde bereits erfasst
}
}
?>
<?php
//Übersetzung funktion
$query = 'SELECT vAbbreviation, vDE FROM rLanguage';
$translations = array();
while loop ($row = $query){
$translations['vAbbreviation'] = $row['vDE'];
}
echo $translations['error-download'];
?>
我得到以下错误:
致命错误:未捕获错误:调用C:\xampp\htdocs\php\documents\upload.php中未定义的函数lang():18堆栈跟踪:#0{main}在第18行的C:\xampp\htdocs\php\documents\upload.php中抛出
我该怎么办
<?php
require("central.php");
echo "<!DOCTYPE html>\n";
echo "<html lang = 'DE'>\n";
echo "<head>\n";
echo " <meta charset = 'UTF-8'>\n";
echo " <meta name='viewport' content='width=device-width, initial-scale=1.0'>\n";
echo " <title>document</title>\n";
echo "</head>\n";
echo "<body>\n";
echo " <form action='index.php' method='POST' enctype='multipart/form-data'>\n";
echo " <p>Bitte Mal Datei auswählen:</p>\n";
echo " <input type='file' name='document' id='document'>\n";
echo " <input type='submit' value='lang(upload)' name='submit'>\n";
echo " </form>\n";
echo "</body>\n";
echo "</html>\n";
// Deklarationen
$target_dir = "php/documents/uploads/";
$target_file = $target_dir.basename($_FILES["document"]["name"]);
$documentFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Überprufen, ob das Hochladen erfolgreich war
if (isset($_POST["submit"])) {
if (file_exists($_FILES["document"]["tmp_name"])) {
echo lang("success-download"); // Das Dokument wurde hochgeladen
}
else {
echo lang("error-download"); // Das Dokument konnte nicht hochgeladen werden
}
}
?>
function lang($langAbbreviation) {
// $varLanguage > TYPO3
// $varUsername > TYPO3
require ("db.php");
$db = mysqli_query($conn, "SELECT * FROM nr_language WHERE cAbbreviation LIKE '$langAbbreviation'");
if (mysqli_num_rows($db) == 1) {
while ($row = mysqli_fetch_object($db)) {
if ($varLanguage == "EN") {
$info = $row->cEN;
}
else {
$info = $row->cDE;
}
}
return $info;
}
}
提交时,我现在可以从数据库中生成错误语句。从您显示的代码片段中,您没有。您正在调用函数
lang
,但从未声明过它。什么是lang
?当循环($row=$query)时,它应该做什么?您没有执行查询注意:if($check!==false)
可以简化为if($check)
,如果(存在文件($\u FILES[“rechnung”][“tmp\u name”]),可以再次简化为
这里有很多错误。您永远不会执行查询,也不会在while
循环中获取结果行,在while
之后还有一个额外的单词loop
。
function lang($langAbbreviation) {
// $varLanguage > TYPO3
// $varUsername > TYPO3
require ("db.php");
$db = mysqli_query($conn, "SELECT * FROM nr_language WHERE cAbbreviation LIKE '$langAbbreviation'");
if (mysqli_num_rows($db) == 1) {
while ($row = mysqli_fetch_object($db)) {
if ($varLanguage == "EN") {
$info = $row->cEN;
}
else {
$info = $row->cDE;
}
}
return $info;
}
}