Текущая среда тестирования IP: http://18.234.230.152/
Я создал базовое приложение, которое извлекает данные из внешнего источника и сохраняет их в базе данных из PHP, и оно работает на том же сервере, что и мой следующий шаг.
Мой следующий шаг - получение этой информации и ее использование в выводе HTML для панели инструментов. Код, который я придумал, приведен ниже, и это самая простая система запросов и переменных, которую я могу придумать, но когда я помещаю ее в свою тестовую среду, она не работает. Я бы посчитал себя относительно новым для PHP в этом приложении, но из всех исследований, которые я провел, это, кажется, лучший путь. Любая помощь или предложения будут оценены.
Я пробовал несколько разных стилей для создания SQL-соединения и даже пытался хранить переменные глобально, но безуспешно. Кроме того, я пропустил этот код через несколько форматеров, чтобы убедиться, что все правильно, а также перебрал его вручную, чтобы убедиться, что он не добавил того, чего не должен был иметь.
<?php
$servername = "localhost";
$username = "root";
$password = "cfa03183";
$dbname = "wallboard";
// Retrieve Morning Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM morning";
if ($result = $conn->query($sql)) {
// output data into variables
$dateb = $result["date"];
$teamb = $result["team"];
$damountb = $result["dollar_ammount"];
$ccountb = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in morning table";
}
$conn->close();
// Retrieve Lunch Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM lunch";
if ($result = $conn->query($sql)) {
// output data into variables
$datel = $result["date"];
$teaml = $result["team"];
$damountl = $result["dollar_ammount"];
$ccountl = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in lunch table";
}
$conn->close();
// Retrieve Lunch Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM dinner";
if ($result = $conn->query($sql)) {
// output data into variables
$dated = $result["date"];
$teamd = $result["team"];
$damountd = $result["dollar_ammount"];
$ccountd = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in dinner table";
}
$conn->close();
?>
<!DOCTYPE html>
<html>
<head>
<div>
<div>
<h1>Drive Thru Records</h1>
</div>
<div>
<h2>Breakfast Record</h2>
<h3>Team</h3>
<p><?php
echo $teamb;
?></p>
<h3>Dollar Amount</h3>
<p><?php
echo $damountb;
?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountb;
?></p>
<h3>Date</h3>
<p><?php
echo $dateb;
?></p>
</div>
<div>
<h2>Lunch Record</h2>
<h3>Team</h3>
<p><?php
echo $teaml;
?></p>
<h3>Dollar Amount</h3>
<p><?php
echo $damountl;
?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountl;
?></p>
<h3>Date</h3>
<p><?php
echo $datel;
?></p>
</div>
<div>
<h2>Dinner Record</h2>
<h3>Team</h3>
<p><?php
echo $teamd;
?></p>
<h3>Dollar Amount</h3>
<p>?php echo $damountd; ?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountd;
?></p>
<h3>Date</h3>
<p><?php
echo $dated;
?></p>
</div>
</div>
</head></html>
Ожидаемым результатом будет то, что программа извлекает данные из базы данных, присваивает их переменным, а затем использует эхо для размещения в правильном месте в HTML.
В этот момент, когда я запускаю код в моей тестовой среде, все, что я получаю, это страница кода, и никаких журналов или чего-либо, что могло бы помочь на экране, я застрял, пожалуйста, помогите!
ОБНОВИТЬ
Я вернулся и посмотрел на все, что я скачал для php, и понял, что не загружал никаких дополнительных компонентов, необходимых. Как только я это сделал, я перезагрузил страницу и получил ошибку 500, скриншот ниже.
Кроме того, я запустил новую среду в AWS и заставил работать функцию php_info(), но не мою программу. Я все еще получаю 500 Ошибка. И когда я проверяю логи, я получаю это:
[Пт 01 февраля 19: 21: 20.163557 2019] [: ошибка] [pid 14423] [клиент 73.169.82.233:63540] Неустранимая ошибка PHP: необработанная ошибка: вызов неопределенной функции php_info() в /var/www/html/index.php: 1\nСтек трассировки:\n # 0 {main}\n, добавленный в /var/www/html/index.php в строку 1
Это код, который я использовал для вставки и рендеринга данных из/в базу данных, надеюсь, это даст вам представление. "abc.php" - это файл, содержащий пароли и т.д.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,shrink-to-fit=yes">
<link href="icon.png" rel="icon" type="image/png" />
<link href="/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="navbar fixed-top navbar-expand-lg navbar-dark" style="background-color:#000000">
<div class="container">
<!--Hipr button starts -->
<a class="navbar-brand" href="web.html"><button type="button" class="btn btn-success">Home</button></a>
<!-- Hipr button ends -->
<!-- target button starts(incomplete) -->
<!--profile -->
<a class="navbar-brand" href="third.html" style="color:#FFFAFA" title="Hipr wants to connect with you">Sign up</a>
<!--profile -->
<!-- Suggest div starts -->
<a title="Thinktank" class="navbar-brand" href="second.php" style="color:#FFFAFA">Suggest</a>
<!-- Suggest div ends -->
</div>
</div>
<br><br><br>
<marquee>The reward of deeds depends upon the intentions.</marquee>
<br>
<!--topic here-->
<h2 id="ve"></h2>
<br><br>
<form class="container" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
Unique heading<br> <input type="text "name="hea" placeholder="" required /><br><br>
Comments<br><textarea name="educ" placeholder="Write about the topic here" rows="5" cols="40" required></textarea>
<br><input type="submit" name="s" value="Share!!!"/> <br><hr>
</form>
<!--Footer-->
<div class="navbar fixed-bottom" style="background-color:#00FF00">
<div class="container">
<p class="navbar-brand" style="font-size:70%">footer</p>
<a class="navbar-brand" href="web.html#about"><button type="button" class="btn btn-dark btn-md">About</button></a>
</div>
</div>
<?php
error_reporting(0);
require('abc.php');
//ASSIGNING TO VARIABLES
$edu = $_REQUEST['educ'];
$head =$_REQUEST['hea'];
//insert values in table
if(isset($edu) && !empty($edu) && isset($_POST['s'])){
//reconnect first
// Create connection
$con = new mysqli($servername, $username, $password,$dbname);
//echo "connected";
$ins = "INSERT INTO self (head,comments)
VALUES ('$head','$edu')";
if ($con->query($ins)) {
echo "<div class='container'><i>".htmlspecialchars($head)."</i></div>";
echo "<div class='container'>".htmlspecialchars($edu)."</div><hr>";
} else {
//echo "<br>Error: " . $sql . "<br>" . $conn->error;
}
//closing connection
$con->close();
}
else
{
echo "";
}
// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully";
//Loading previous data
$sel = "SELECT * FROM self";
$res = $conn->query($sel);
if ($res->num_rows > 0) {
// output data of each row
while($row = $res->fetch_assoc()) {
echo "<div class='container'><i>".htmlspecialchars($row["head"])."</i></div>";
echo "<div class='container'> " . htmlspecialchars($row["comments"])."</div><hr>";
}
} else {
echo "No definitions yet";
}
$conn->close();
?>
<!--img-->
<center><img src="1.png" class="container"/><center>
<script>
function view(comment) {
this.comment = comment;
}
var a = new view("<hr><div class='container'>Self(Be precise)</div><hr>");
document.getElementById("ve").innerHTML = a.comment;
</script>
</body>
</html>
$_REQUEST
данным при вставке, вы должны предоставить их в качестве аргументов. Ошибки SQL-инъекций - не академическая проблема, а реальная проблема, которую нельзя игнорировать. Извините за отрицательное голосование, но этот код является очень плохим примером и представляет огромный риск для любого, кто его использует.
mysqli
значительно менее многословен, что облегчает чтение и аудит кода, и его нелегко спутать с устаревшим интерфейсомmysql_query
. Прежде, чем вы слишком инвестируете в процедурный стиль, стоит переключиться. Пример:$db = new mysqli(…)
и$db->prepare("…")
Процедурный интерфейс является артефактом эпохи PHP 4, когда был представленmysqli
API, и в идеале его не следует использовать в новом коде.