Как подключить файл «install.php» к базе данных MySQL

129
15 декабря 2016, 15:54

Ребята, помогите пожалуйста разобраться. Я в програмировании разбираюсь очень плохо, и потому обращаюсь к вам. У меня не получается подключиться к MySQL. Когда в браузере набираю http://сайт.ru/install.php, открывается страница с окнами для ввода данных подключения к MYSQL. Но когда ввожу, dbhost: localhost, dbusername: имя пользователя, dbpass:пароль, dbname: имя базы данных и нажимаю кнопку дальше, страница просто обновляется и предлагает снова ввести данные. Кто знает, подскажите пожалуйста в чём дело? Возможно в «install.php» нужно что-то прописать, или изменить? Буду очень признателен за любую подсказку. Вот скрипт:

<?
error_reporting(0);
if ($state == "") {
echo "<center><b>Установка и настройка скриптов казино, ШАГ 1</b><br><br>";
echo "Перед началом установки, создайте на своем сервере пустую базу данных,<br> и впишите параметры для подключенния ниже</center>
<table border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"10\">
<FORM action=install.php method=post>
<TR><td>DB host</td><TD><INPUT size=20 name=host value=localhost></TD></TR>
<TR><td>DB username</td><TD><INPUT size=20 name=user></TD></TR>
<TR><td>DB password</td><TD><INPUT size=20 name=pass></TD></TR>
<TR><td>DB name</td><TD><INPUT size=20 name=name></TD></TR>
<TR><TD><INPUT type=hidden value=1 name=state> <INPUT type=submit value=\"Далее...\"></TD></TR>
</FORM>
</table>
<h2>ВНИМАНИЕ !!!</h2>
<b>Перед установкой, найдите файл setup.php и дайте ему права на запись (777)</b>
";
exit;
}
if ($state == "1") {
$fr=fopen("setup.php","w+");
fwrite($fr, '<'."?\n");
fwrite($fr, 'error_reporting(0);'."\n");
fwrite($fr, '$dbhost="'.$host.'";'."\n");
fwrite($fr, '$dbuname="'.$user.'";'."\n");
fwrite($fr, '$dbpass="'.$pass.'";'."\n");
fwrite($fr, '$dbname="'.$name.'";'."\n");
fwrite($fr, 'mysql_connect($dbhost, $dbuname, $dbpass) or die("<br><br><center><br><br><b>Извините, но в данный момент существует проблема с подключением к MySQL серверу.<br><br>Приносим свои извинения, просим Вас зайти немного позже.</center></b>");'."\n");
fwrite($fr, 'mysql_select_db($dbname);'."\n");
fwrite($fr, '?'.'>');
fclose($fr);
echo"Создание файла настроек.....ОК <br>";

Дальше идут таблицы.

Answer 1

Как уже сказал gart67 переменная $state у Вас берется "с потолка". Сделайте проверку существования state в массиве $_POST. Если она существует, то выпольните код последнего вашего условия(обращаясь к переменным конфигурации тоже через POST), иначе выводите форму для заполнения. P.S. error_reporting лучше включить, у Вас ведь это дело не на продакшене?

Answer 2

А откуда получает значение переменная $state?

Попробуйте после error_reporting(0); добавить $state=$_POST["state"].

READ ALSO
Какой MySQL запрос быстрее?

Какой MySQL запрос быстрее?

из двух таблиц, имеющих одинаковое количество записей, с общим полем необходимо выбрать данные (по строчке из таблицы)как быстрее это сделать:...

139
Цикл вывода стетей/новостей - в теле HTML или отдельно?

Цикл вывода стетей/новостей - в теле HTML или отдельно?

Как лучше выводить статьи/новости на сайте - писать запрос к БД и цикл прямо в теле HTML-документа или создавать отдельный PHP-файл, а потом просто...

147