2012-07-12 3 views
1

문서 제거 및 데이터베이스 업데이트에 도움이되는 두 개의 파일이 있습니다. 첫 번째 파일은 제거 버튼이있는 양식과 remove()라는 javascript 기능으로 구성됩니다. 두 번째 PHP 페이지는 결과를 반환하지 않는 파일을 제거합니다.문서 제거 및 데이터베이스 업데이트

코드 Remove.php에 대한 (() 함수 제거를 호출시) : 내가 경고 (문서를) 시도 않았다

$Doc=$_GET['Doc']; //Value get from remove() function 
$ID= intval($_POST['ID']); 
$FirstReport= $_POST['FirstReport']; 
$SecReport = $_POST['SecReport']; 

$FirstReportPath= $_POST['FirstReportPath']; 
$SecReportPath = $_POST['SecReportPath ']; 

$DB = new PDO('sqlite:/database/Student.db'); 
//If i click remove firstreport button, i'll check it to see if it's the same 
if(($Doc) == ($FirstReport)) 
{ 
    $result= $DB->query("Update Student set FirstReport='No' WHERE ID=".$ID);  
//This unlink should remove the document file from the path. 
    unlink($FirstReportPath); 
echo "success"; 
} 
else 
{ 
    //same code repeated as if statement 
} 

자바 스크립트 기능

function RemoveDoc(Doc) 
{ 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","functions/Resubmit.php?Doc="+Doc,true); 
xmlhttp.send(); 
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText; 
return false; 
} 

을하고 문서 이름은 쇼를 않습니다 그러나 두 번째 remove.php에서는 코딩을 실행하지 않습니다. 시도 "GET"/ "POST"도 같은 결과. 친절하게 조언하십시오.

+0

을 수정할 수 있습니다 당신의 PHP 코드를 누군가가 당신의 서버에 임의의 파일을 제거 할 수있는 그대로. 입력 내용을 확인하는 것을 잊지 마십시오. –

+0

나는 그 폴더로 파일을 옮길 수있다. 하지만 지금은 링크를 끊을 수 없습니다. – JLearner

+0

firstreport와 firstreportpath를 출력하고 공백을 포함하여 동일한 대소 문자, 동일한 길이, 동일한 문자를 사용했는지 확인 했습니까? var_dump를 사용하고 –

답변

2

$ _POST superglobal에서 액세스하려면 광고 게시 값을 보내야합니다. 그냥 자바 스크립트 코드

function RemoveDoc(Doc,FirstReport,SecReport,FirstReportPath,SecReportPath) 
{ 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("POST","functions/Resubmit.php",true); 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText; 
} 
xmlhttp.send("Doc="+Doc+"&FirstReport="+FirstReport+"&SecReport="+SecReport); 
//do for others also in the same way 
return false; 
} 
+0

이 경우, 어떻게 다른 버튼을 불러내 는가? 지금은 RemoveDoc (this.name) ..입니다. 이는 RemoveDoc (this.doc)입니다. 다른 버튼에 FirstReport를 어떻게 추가합니까? – JLearner

+0

각 단추에 대한 사용자 정의 태그를 사용하고 RemoveDoc (this.name, this.getAttribute ("FirstReport"), ..... 등) – leet

+0

HTML에서 php

3

게시물 요청을 보내는 것처럼 보이지만 URL에 문서 이름 ($ GET 변수)을 보내는 것처럼 보입니다.

GET 요청에 하나 스위치 : 사용자가 서버의 응답을 기다리지 않고, 또한

function RemoveDoc(Doc) 
{ 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("POST","functions/Resubmit.php",true); 
xmlhttp.send("Doc="+Doc); 
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText; 
return false; 
} 

:

function RemoveDoc(Doc) 
{ 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","functions/Resubmit.php?Doc="+Doc,true); 
xmlhttp.send(); 
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText; 
return false; 
} 

또는 게시물 매개 변수로 문서 이름을 보냅니다.

function RemoveDoc(Doc) 
{ 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("POST","functions/Resubmit.php",true); 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.send('Doc='+Doc); 
return false; 
} 
+0

을 확인하십시오. "GET"을 시도했지만 여전히 유효하지 않습니다. 그래서 나는 POST를 시도했습니다. – JLearner

+0

서버 응답을 사용하기 전에 서버 응답을 기다려야합니다. – Dpolehonski

+0

안녕하세요, 저는 모든 방법으로 내 javascript 기능을 호출하려고했습니다. 나는 경고하려고 노력했다 (Doc). 그것은 필요한 나의 정확한 Doc를 불러 냈다. 그러나 Resubmit.php에, 그것은 밖으로 부르지 않습니다 ... – JLearner