Я пытаюсь создать страницу входа для своего веб-сайта, и она работала на xampp, но когда я переключился на сервер, он не выбрал базу данных. Я также использую хостинг namecheaps. Вот мой код php: https://pastebin.com/tSBxJpy9 `
<?php
ob_start();
$host = "localhost";
$username = "username";
$password = "password";
$db_name = "suffix_login";
$tbl_name = "members";
$link = mysqli_connect("localhost", "username", "password", "suffix_login");
mysqli_connect("$host", "$username", "$password", "login")or die("cannot connect");
mysqli_select_db("$link" ,"$db_name")or die("cannot select DB");
$myusername=$_POST['myusernamea'];
$mypassword=$_POST['mypassworda'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysqli_real_escape_string($link ,$myusername);
$mypassword = mysqli_real_escape_string($link ,$mypassword);
$sql = "SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysqli_query($link ,$sql);
$count=mysqli_num_rows($result);
if ($count==1){
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>`
заранее спасибо
Какую фактическую ошибку вы получаете? Что вы сделали для устранения этой проблемы? Вы проверили правильность имени вашей базы данных и действительно ли она существует?
Перепишите mysqli_connect("localhost", "username", "password", "suffix_login"); как mysqli_connect("localhost", "username", "password", "suffix_login") or die(mysqli_error()) и проверьте вывод ..
Я предполагаю, что, поскольку информации об удаленной базе данных нет, ваш хост (localhost) может ошибаться. Вы проверяли свои удаленные учетные данные и настройки?
Извините за поздний ответ, но я попытался добавить 'or die (mysqli_error ())', и он показал мне пустой экран, и перед его добавлением он сказал бы 'не могу выбрать db'






Вы передаете строки, а не свои переменные, посмотрите:
$link = mysqli_connect("localhost", "username", "password", "suffix_login");
Также присутствует обычная уязвимость атаки SQL Injection. Попробуйте переключиться на использование подготовленных операторов и связанных параметров. Смотрите здесь https://phpdelusions.net/pdo#prepared
Выбрать базу данных можно четырьмя способами:
mysqli_query($link, "use $dbname");SELECT * FROM my_db.a_tableТаким образом, в приведенном выше коде mysqli_select_db несколько избыточен. Но причина неудачи в том, что вы указали $link в своем вызове mysqli_select_db (), который преобразует объект $ link в виде строки и разбивает ее в процессе. Измените свой код на:
mysqli_select_db($link,"$db_name")or die("cannot select DB");
и удалите второй вызов mysqli_connect ()
И, пожалуйста, НЕ ИСПОЛЬЗУЙТЕ здесь косые черты ().
И научитесь, пожалуйста, солить и хешировать пароли.
Извините, я не выспался, поэтому я пропустил некоторые вещи, и прямо сейчас он пытается сделать его работоспособным, а затем сделать его максимально безопасным.
Вот исправление:
<?php
ob_start();
$host = "localhost";
$username = "username";
$password = "password";
$db_name = "suffix_login";
$tbl_name = "members";
$link = mysqli_connect($host, $username, $password, $db_name);
...