简体   繁体   中英

Securely communicate with mysql server (MariaDB) using javascript and php (NO jQuery)

I am trying to achieve two things: (1) Get text from a contenteditable div, use javascript to send that text to php, use php to send that data to a MySQL database and save it (2) retrieve the saved data/text and reinsert it into a contentedtiable div

All of this whilst NOT using jQuery

What I've got so far:

index.html

<body>
    <div contenteditable="true" id="editable"></div>
    <button onClick="send_data();">Save text</button>
    <button onClick="retrieve_data();">Get text</button>
</body>

javascript.js

function send_data() {
    var php_file = "connection.php";
    var http_connection = new XMLHttpRequest();

    http_connection.open("POST", php_file, true);

    http_connection.onreadystatechange = function() {
        if(http_connection.readyState == 4 && http_connection.status == 200) {
            alert(http_connection.responseText);
        }
    }

   http_connection.send(document.getElementById('editable').innerText);
}

function retrieve_data() {
    // I do not know what to put here
}

connection.php

<?php
$servername = "localhost";
$username = "mysql_user";
$password = "secure_password";
$dbname = "some_database";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

if(!conn) {
    echo 'No connection';
}

if(!mysqli_select_db($conn,'some_database')) {
    echo "No database";
}

$some_val = $_GET['text']

$sql = "SELECT text FROM some_database";
$result = $conn->query($sql);

echo $result;

$conn->close();

?>

Edit: what my code fails to do is to upload text as well as recieve text.

Some problems in the js:

  • http_c is not defined
  • readyState is spelled incorrectly
  • the send method needs to be outside the onreadystatechange callback

Once those things are corrected, program should give different, which is not to say expected, result.

Other things:

The js is sending a 'POST' request. The php is looking for $_GET["text"] which will give undefined error. I'm speculation this $sql = "SELECT text FROM some_database"; will fail (if it reaches that line) unless there is a table in the database named "some_database".

Suggest, for starters, get the ajax working by short-circuiting the code in connection.php to something like

echo "You are here";
exit;

Then gradually working forward between the js and the php until programs give you what you want.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM