it-source

HTML 또는 Javascript에서 PHP 파일을 호출하는 방법

criticalcode 2023. 8. 24. 22:12
반응형

HTML 또는 Javascript에서 PHP 파일을 호출하는 방법

저는 지금 오랫동안 주위를 둘러보았지만, 겉보기에 기본적인 질문에 답할 만한 곳을 찾을 수 없었습니다.페이지가 다시 로드되거나 결과가 즉시 표시되는 것은 상관 없습니다. 웹 사이트의 버튼을 사용하여 PHP 파일을 실행하고 싶습니다.바로 그겁니다.그리고 저는 모든 웹사이트들이 당신의 HTML에서 직접 PHP 코드를 실행하는 방법을 알려주거나 아약스를 사용하라고 말하는 것을 발견했습니다.필요하다면 아약스를 사용하겠지만, 아약스가 존재하기 전에 PHP를 사용한 적이 있어서 더 간단한 방법이 있을 것 같습니다.HTML 안에 코드를 쓸 수 있다면, 왜 거기에 있는 파일을 참조하거나 Javascript로 간단한 전화를 걸 수 없습니까?

만약 아약스가 앞으로 나아가는 유일한 방법이라는 것이 밝혀진다면, 버튼을 누르면 텍스트 파일을 만들 PHP 파일을 호출하기 위해 내가 그것에 대해 알아야 할 것은 무엇입니까?저 사이트를 , 와 제가 쓸 수 있습니다.textarea즉시 표시합니다.페이지를 다시 로드해도 게시물이 그대로 유지되도록 서버에 영구 블로그 게시물을 생성하는 PHP 파일에 연결하고 싶습니다.

시간을 내어 읽고 답변해 주셔서 감사합니다.


어떻게 PHP를 호출하는 버튼을 만들 수 있습니까?

페이지를 다시 로드하든 결과를 즉시 표시하든 상관 없습니다.

좋아!

참고: 페이지를 새로 고치지 않으려면 아래의 "확인... 하지만 Ajax를 어떻게 사용합니까?"를 참조하십시오.

저는 단지 제 웹사이트의 버튼으로 PHP 파일을 실행하고 싶습니다.

이 작업은 버튼 하나로 양식을 작성하여 수행할 수 있습니다.

<form action="">
  <input type="submit" value="my button"/>
</form>

바로 그겁니다.

어느 정도는.또한 아약스가 정말로 최선의 방법인 경우도 있다는 것을 유의하십시오.

그것은 당신이 무엇을 원하느냐에 달려 있습니다.일반적으로 페이지를 다시 로드하지 않으려면 Ajax만 필요합니다.당신은 여전히 그것에 대해 신경 쓰지 않는다고 말했습니다.


자바스크립트에서 직접 PHP를 호출할 수 없는 이유는 무엇입니까?

HTML 안에 코드를 쓸 수 있다면, 왜 거기에 있는 파일을 참조하거나 Javascript로 간단한 전화를 걸 수 없습니까?

가 왜하면 PHP 코드때없에 입니다.HTML just fine이는 대부분의 서버 측 스크립트 언어(PHP, JSP 및 ASP 포함)가 작동하는 방식에 의해 발생하는 착각입니다.이 코드는 서버에만 존재하며 원격 호출이 없으면 클라이언트(브라우저)에서 연결할 수 없습니다.

브라우저에 페이지의 소스 코드를 표시하도록 요청하면 이에 대한 증거를 볼 수 있습니다.거기서 PHP 코드를 볼 수 없습니다. 즉, PHP 코드가 클라이언트에서 PHP 코드를 볼 수 없습니다.클라이언트가 PHP 코드의 실행을 트리거할 수 있도록 원격 호출을 수행해야 하는 이유입니다.

양식을 사용하지 않는 경우(위 그림과 같이) Ajax라는 작은 것으로 JavaScript에서 원격 호출을 수행할 수 있습니다.당신은 또한 당신이 PHP에서 하고 싶은 것이 자바스크립트에서 직접 할 수 있는지 고려하고 싶을 것입니다.


다른 PHP 파일을 어떻게 호출합니까?

양식을 사용하여 통화를 수행합니다.사용자가 특정 파일로 이동할 수 있도록 할 수 있습니다.

<form action="myphpfile.php">
  <input type="submit" value="click on me!">
</form>

" 자가페이로다동니합사지이용▁page다니▁the▁up▁end" 페이지로 들어가게 .myphpfile.php현재 페이지에서 작동하려면 작업을 빈 문자열로 설정합니다(이전에 제공한 예제에서 수행한 작업).

페이지를 다시 로드해도 게시물이 그대로 유지되도록 서버에 영구 블로그 게시물을 생성하는 PHP 파일에 연결하고 싶습니다.

서버에서 작업을 수행하려면 양식에 필요한 필드를 지정해야 합니다.type="hidden" 및사를 합니다.POST):

<form action="" method="POST">
  <input type="text" value="default value, you can edit it" name="myfield">
  <input type="submit" value = "post">
</form>

버튼 누르기에서 텍스트 파일을 만드는 PHP 파일을 호출하려면 무엇을 알아야 합니까?

참고: PHP로 파일쓰는 방법.


서버의 POST에서 데이터를 어떻게 수신합니까?

물어봐 주셔서 감사합니다...당신이 a이기 때문에. newb 베기너, 당신이 따를 수 있는 작은 템플릿을 드리겠습니다.

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        //Ok we got a POST, probably from a FORM, read from $_POST.
        var_dump($_PSOT); //Use this to see what info we got!
    }
    else
    {
       //You could assume you got a GET
       var_dump($_GET); //Use this to see what info we got!
    }
 ?>
 <!DOCTYPE html>
 <html lang="en">
   <head>
     <meta char-set="utf-8">
     <title>Page title</title>
   </head>
   <body>
     <form action="" method="POST">
       <input type="text" value="default value, you can edit it" name="myfield">
       <input type="submit" value = "post">
     </form>
   </body>
 </html>

참고: 제거할 수 있습니다.var_dump디버깅 목적일 뿐입니다.


어떻게...

다음 단계에서는 다음과 같은 방법을 묻게 될 것입니다.

  1. PHP 파일에서 변수를 다른 파일로 전달하는 방법은 무엇입니까?
  2. 사용자를 기억하는 방법/로그인을 만드는 방법?
  3. 페이지를 다시 로드할 때 성가신 메시지가 나타나는 것을 방지하는 방법은 무엇입니까?

이에 대한 유일한 대답은 다음과 같습니다.세션.

Post-Redirect-Get을 위한 더 광범위한 템플릿을 제공하겠습니다.

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        var_dump($_PSOT);
        //Do stuff...
        //Write results to session
        session_start();
        $_SESSION['stuff'] = $something;
        //You can store stuff such as the user ID, so you can remeember him.
        //redirect:
        header('Location: ', true, 303);
        //The redirection will cause the browser to request with GET
        //The results of the operation are in the session variable
        //It has empty location because we are redirecting to the same page
        //Otherwise use `header('Location: anotherpage.php', true, 303);`
        exit();
    }
    else
    {
        //You could assume you got a GET
        var_dump($_GET); //Use this to see what info we got!
        //Get stuff from session
        session_start();
        if (array_key_exists('stuff', $_SESSION))
        {
           $something = $_SESSION['stuff'];
           //we got stuff
           //later use present the results of the operation to the user.
        }
        //clear stuff from session:
        unset($_SESSION['stuff']);
        //set headers
        header('Content-Type: text/html; charset=utf-8');
        //This header is telling the browser what are we sending.
        //And it says we are sending HTML in UTF-8 encoding
    }
 ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta char-set="utf-8">
    <title>Page title</title>
  </head>
  <body>
    <?php if (isset($something)){ echo '<span>'.$something.'</span>'}?>;
    <form action="" method="POST">
      <input type="text" value="default value, you can edit it" name="myfield">
      <input type="submit" value = "post">
    </form>
  </body>
</html>

php.net 에서 인식할 수 없는 함수 호출이 있는지 확인하십시오.또한 HTML5에 대한 좋은 튜토리얼을 얻으십시오.

또한, UTF-8을 사용하세요!


참고:

저는 제 자신을 위해 간단한 블로그 사이트를 만들고 있으며, 사이트 코드와 제가 글을 쓰는 글을 받아 바로 표시할 수 있는 자바스크립트를 가지고 있습니다.

CMS를 사용하는 경우(코드프레스, 줌라, 드루팔)등)? 그것은 당신이 어떻게 일을 해야 하는지에 약간의 제약을 가하게 만듭니다.

또한 프레임워크를 사용하는 경우에는 문서를 보거나 포럼/메일 목록/토론 페이지/연락처에 문의하거나 작성자에게 문의해야 합니다.


좋아요... 그런데 아약스는 어떻게 사용하나요?

자... 아약스는 몇몇 자바스크립트 라이브러리에 의해 쉽게 만들어졌습니다.당신이 초보자니까 제가 jQuery를 추천해 드릴게요.

jQuery를 사용하여 Ajax를 통해 서버에 무언가를 전송해 보겠습니다. 이 예에서는 $.ajax 대신 $.post를 사용하겠습니다.

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        var_dump($_PSOT);
        header('Location: ', true, 303);
        exit();
    }
    else
    {
        var_dump($_GET);
        header('Content-Type: text/html; charset=utf-8');
    }
 ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta char-set="utf-8">
    <title>Page title</title>
    <script>
        function ajaxmagic()
        {
            $.post(                             //call the server
                "test.php",                     //At this url
                {
                    field: "value",
                    name: "John"
                }                               //And send this data to it
            ).done(                             //And when it's done
                function(data)
                {
                    $('#fromAjax').html(data);  //Update here with the response
                }
            );
        }
    </script>
  </head>
  <body>
    <input type="button" value = "use ajax", onclick="ajaxmagic()">
    <span id="fromAjax"></span>
  </body>
</html>

을 위코드는로지 POST다니전합 합니다.test.php.

참고: 혼합 가능sessions와 함께ajax그리고 당신이 원한다면 그런 것들.


어떻게...

  1. 데이터베이스에 연결하려면 어떻게 해야 합니까?
  2. SQL 주입을 방지하려면 어떻게 해야 합니까?
  3. Mysql_* 함수를 사용하면 안 되는 이유는 무엇입니까?

이것들 또는 다른 것들을 위해, 다른 질문들을 만들어 주세요.이건 너무 과해요.

나는 단지 내 웹사이트의 버튼으로 PHP 파일을 실행하고 싶습니다.

<form action="my.php" method="post">
    <input type="submit">
</form>

그러나 일반적으로 새 데이터를 저장할 서버로 전송하지 않는 한 링크를 사용할 수 있습니다.

<a href="my.php">run php</a>

(서버가 아닌 사용자의 관점에서 발생하는 상황을 설명하는 연결 텍스트를 사용해야 합니다.)


저는 제 자신을 위해 간단한 블로그 사이트를 만들고 있으며, 사이트 코드와 제가 글을 쓰는 글을 받아 바로 표시할 수 있는 자바스크립트를 가지고 있습니다.페이지를 다시 로드해도 게시물이 그대로 유지되도록 서버에 영구 블로그 게시물을 생성하는 PHP 파일에 연결하고 싶습니다.

이건 속임수야.

먼저, 저장할 데이터를 보내므로 양식과 POST를 사용해야 합니다.

그러면 데이터를 어딘가에 저장해야 합니다.이 작업은 일반적으로 데이터베이스를 사용하여 수행됩니다.PHP에 대한 PDO 라이브러리를 읽어보십시오.데이터베이스와 상호 작용하는 표준 방법입니다.

그런 다음 데이터를 다시 꺼내야 합니다.여기서 가장 간단한 방법은 쿼리 문자열을 사용하여 표시할 항목으로 데이터베이스 행의 기본 키를 전달하는 것입니다.

<a href="showBlogEntry.php?entry_id=123">...</a>

SQL 주입 및 XSS에 대해서도 자세히 읽어 보십시오.

질문에 이미 언급했듯이 두 가지 이상의 옵션이 있습니다.매우 기본적인 접근 방식은 메소드 속성에서 PHP 파일을 참조하는 태그를 사용하는 것입니다.그러나 AJAX는 난해하게 들릴 수도 있지만 더 완벽한 접근 방식입니다.(jQuery와 결합된) AJAX 호출은 다음과 같이 간단할 수 있습니다.

$.post("yourfile.php", {data : "This can be as long as you want"});

서버 요청이 완료된 후 기능을 트리거하는 등 보다 유연한 솔루션을 얻을 수 있습니다.이게 도움이 되길 바랍니다.

폼 데이터를 php 파일 삽입 기능에 게시하기만 하면 됩니다, 아래 참조:)

class DbConnect
{
// Database login vars
private $dbHostname = '';
private $dbDatabase = '';
private $dbUsername = '';
private $dbPassword = '';
public $db = null;

public function connect()
{

    try
    {
        $this->db = new PDO("mysql:host=".$this->dbHostname.";dbname=".$this->dbDatabase, $this->dbUsername, $this->dbPassword);
        $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
        echo "It seems there was an error.  Please refresh your browser and try again. ".$e->getMessage();
    }
}

public function store($email)
{
    $stm = $this->db->prepare('INSERT INTO subscribers (email) VALUES ?');
    $stm->bindValue(1, $email);

    return $stm->execute();
}
}

언급URL : https://stackoverflow.com/questions/20637944/how-to-call-a-php-file-from-html-or-javascript

반응형