0
Update
버튼을 한 번 클릭하여 사용자가 체크 박스를 선택한 디렉토리의 이름을 바꾸고 싶습니다. 텍스트 상자 및 체크 상자 값은 배열로 수집되어 jQuery를 통해 서버로 보내집니다. Firebug는 전달되는 올바른 배열 값을 보여줍니다. 문제는 텍스트 상자에 입력 된 새 값이 아니라 다른 값이 변경되지 않은 채 첫 번째 검사 된 디렉터리의 이름이 Array
으로 변경된다는 것입니다.디렉토리 이름 바꾸기 문제
이 코드?
HTML에서 잘못하고 있어요 무엇 :
<input type="text" name="album_text[]" id="album_text" class="album_text" />
<input type="text" name="album_text[]" id="album_text" class="album_text" />
<input type="text" name="album_text[]" id="album_text" class="album_text" />
<input name="album_checkbox[]" type="checkbox" id="album_checkbox" value="' . $res. '">
<input name="album_checkbox[]" type="checkbox" id="album_checkbox" value="' . $res. '">
JQUERY :
$("#album_update").click(function() {
var album_name = new Array();
$("input[@name='album_checkbox[]']:checked").each(function() {
album_name.push($(this).val());
});
var album_text= new Array();
$("input[name='album_text[]']").each(function(){
if($(this).val()) {
album_text.push($(this).val());
}
});
var postData = {
"album_name" : album_name,
"album_text" : album_text,
"album_update" : $("#album_update").val()
};
//make the call
$.ajax({
type: "POST",
url: "updalbums.php",
data: postData,
dataType: "json",
success: function(data){
alert("updated");
}
});
});
PHP :
public function updateAlbum() {
if (isset($_POST['album_text']) && isset($_POST['album_name'])) {
$path = $_SERVER['DOCUMENT_ROOT'] . '/images/';
foreach ($_POST['album_name'] as $albums_name) {
$album_text = $_POST['album_text'];
rename($path.$albums_name, $path.$album_text);
}
}
}
감사합니다. 그랬어! 그러나 당신은 무엇을 의미하는지 설명해 주시겠습니까? 그러나 그것은 부서지기 쉬운 것처럼 보입니다. – input
@ fuz3d @josh 나는이 침입에 대해 걱정할 필요가 없다. 나는이 코드를 그대로 사용하면 아무나 * 아무 데나 * 이동할 수 있다고 걱정할 것이다. 'rename ('index.php', '/tmp/delete_me.txt')와 비슷합니다. 이것은 어리 석음을 넘어 ** ** – adlawson
@adlawson입니다.이 코드에는 보안 허점이 있지만, 아직 배우고 있으며, codereview 사이트에서 검토를 위해이 코드를 게시하면 보안 계층을 추가하는 데 도움이 될 것입니다. – input