mysql — PHP Link Shortener проблемы

Кажется, я не могу найти проблему с этим кодом .. Но я знаю, что есть один .. Для начала .. Он не добавляет записи в мою базу данных, во-вторых, я не могу получить доступ к старым записям ..

<?php
require_once '../config.php';
$conn = new mysqli($server, $username, $password, $database);
if ($conn->connect_error) {
die("<p style=color:white>Could not connect to database: " . $conn->connect_error . "</p>");
}
$title = $_GET['x'];
if (isset($title)) {
$result = $conn->prepare("SELECT (id, url, title) FROM links WHERE title=$title");
$result->execute;
$goto = $result->get_result()->fetch_array();
$g = $goto[1];
header("Location: $g");
}
function GenerateString($string_length = 3) {
$permissible_characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$char_length = strlen($permissible_characters);
$random = '';
for ($i = 0; $i < $string_length; $i++) {
$random .= $permissible_characters[rand(0, $char_length - 1)];
}
return $random;
}
$url = $_POST['url'];
$code = GenerateString();
if (isset($_POST['submit'])) {
if (substr($url, 0, 7) == "http://" ) {
$url = $url;
}
elseif (substr($url, 0, 8) == "https://") {
$url = $url;
} else {
$url = "http://".$url;
}
$result = $conn->prepare("INSERT INTO links VALUES('',$url,$code)");
}

?>

Пожалуйста, исправьте все, что вы видите неправильно .. Я новичок в PHP!
Заранее спасибо!
-Zack

1

Решение

Наиболее очевидные ошибки, которые я вижу: $result->execute; отсутствует скобки и, следовательно, никогда не вызывается (без скобок это просто оператор, а не вызов функции, которая ничего не делает в этом случае). Так что измени это $result->execute(); вместо.

В письменной части вы готовите оператор, но никогда не выполняете его. Подготовленный оператор должен быть выполнен, чтобы он имел какой-либо эффект. добавлять $result->execute(); после вашего $result = $conn->prepare(…); чтобы исправить это.

В качестве примечания: вы должны использовать подготовленные операторы по назначению, с переменной привязкой (bind_param и т. д.), чтобы предотвратить атаки SQL-инъекций!

См. Следующий SO вопрос / ответ для получения дополнительной информации об этом: Как я могу предотвратить внедрение SQL в PHP?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]