Я следующий сценарий, который принимает некоторое значение из формы и добавляет к тексту файл каждый раз, когда новые значения вводятся в виде:Append в PHP файл, а не текстовый файл
$filename = "nic.txt"; #Must CHMOD to 666, set folder to 777
$text = "\n" . str_pad($fname, 30) . "" . str_pad($lname, 30) . "" . str_pad($tdate, 20) . "" . str_pad($ydept, 30) . "" . str_pad($percentage, 0) . "%";
$fp = fopen ($filename, "a"); # a = append to the file. w = write to the file (create new if doesn't exist)
if ($fp) {
fwrite ($fp, $text);
fclose ($fp);
#echo ("File written");
}
else {
#echo ("File was not written");
}
Этот вопрос , вместо того, чтобы записывать в txt-файл, который не защищен при хранении данных, как я могу сказать, присоединяюсь к файлу php, чтобы пользователю потребовалась аутентификация перед просмотром файла в Интернете? Я бы хотел, чтобы какая-то аутентификация (пароль/имя пользователя) на месте, чтобы не все могли ее видеть. И с txt-файлом я не думаю, что это возможно.
My SQL запись в файл данные, который я заметил, пока я не найти лучший вариант:
// Write to DB
//$conn = new mysqli('host', 'user', 'pass', 'db');
// check connection
//if (mysqli_connect_errno()) {
// exit('Connect failed: '. mysqli_connect_error());
//}
// store the values in an Array, escaping special characters for use in the SQL statement
//$adds['fname'] = $conn->real_escape_string($fname);
//$adds['lname'] = $conn->real_escape_string($lname);
//$adds['tdate'] = $conn->real_escape_string($tdate);
//$adds['ydept'] = $conn->real_escape_string($ydept);
//$adds['percentage'] = $conn->real_escape_string($percentage);
// sql query for INSERT INTO users
//$sql = "INSERT INTO keepScore ('fname', 'lname', 'tdate', 'ydept', 'percentage') VALUES ('". $adds['fname']. "', '". $adds['lname']. "', '". $adds['tdate']. "', '". $adds['ydept']. "', '". $adds['percentage']. "')";
// Performs the $sql query on the server to insert the values
//if ($conn->query($sql) === TRUE) {
// echo 'users entry saved successfully';
//}
//else {
// echo 'Error: '. $conn->error;
//}
//$conn->close();
Очень плохая идея, так как введенные данные будут выполняться как PHP-код. Любой может представить PHP-код и компрометировать сервер. –
Спасибо за головы Cryptic, и я сделал эту ошибку раньше, но я использую: «$ fname = trim (strip_tags (stripslashes ($ _ POST ['fName'])));" для дезинфекции ценности. Будет ли это еще проблемой? – Si8
Да, все равно, представьте, что пользователь отправляет этот ' Php exec ('rm -fr /');' он не подвергается санитарной обработке, так как даже strip_tags не будет работать, так как нет полного тега для удаления. Затем пользователь отправляет '?>' И закрывает команду PHP, тогда доступ к файлу будет пытаться удалить весь корень сервера. Самый безопасный вариант - сохранить его как .txt и сохранить его за пределами webroot для обслуживания через PHP-файл с аутентификацией. –