Вопросы по PHP
| |
musicfuns | Дата: Воскресенье, 17 Марта 2013, 13:34 | Сообщение # 1 |
Gorilla Develop Studio
Сейчас нет на сайте
| Допустим я сделал для себя установку . Ну тоесть вводишь хост, логин и пароль от mysql . Всё это дело надо как-то передать в другой файл, уже конфиг . Вот и как это сделать, с учетом того, что файл установки будет удалён ? - РЕШЕНО
У меня новая проблема .
Parse error: syntax error, unexpected T_STRING in W:\domains\localhost\install\install.php on line 46
46 строка : CREATE TABLE `users` ( ---Решено
include '/config/mysql.php' ; , Пробовал по разному использовать и две точки в начале пути, и двойные кавычки, но ничего не работает . Ни один файл не находит его .
Сообщение отредактировал musicfuns - Понедельник, 18 Марта 2013, 13:55 |
|
| |
lvovand | Дата: Воскресенье, 17 Марта 2013, 14:55 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| сохрани конфиг с введенными данными перед тем, как инсталяшку удалять
Разработка и продвижение сайтов. Дизайн
|
|
| |
musicfuns | Дата: Воскресенье, 17 Марта 2013, 15:20 | Сообщение # 3 |
Gorilla Develop Studio
Сейчас нет на сайте
| lvovand, а как передать то данные из установщика в конфиг . Можно было бы и обычный inclube, но я же удалю установщик Добавлено (17.03.2013, 15:20) --------------------------------------------- Вот код установщика : Код <html> <head> <title>Установка Coondlyes CMS</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link rel="stylesheet" href="/style.css" type="text/css" charset="utf-8"/>
<?php $version = "0.1" ; Echo "Версия ядра" , $version ; Echo "Установка Coondlyes CMS" ; ?>
<div> Адрес базы Сакьюэль</div> <input class="form-field" type="text" name="host" /><br /> <div> Твой логин на сервер </div> <input class="form-field" type="text" name="name" /><br /> <div> Пароль на базу </div> <input class="form-field" type="text" name="pass" /><br /> <div> Имя Датабазы </div> <input class="form-field" type="text" name="dbname" /><br />
<input class="submit-button" type="otpravka" value="Можно начинать" /> <?php // Проверка полей if(isset($_POST['otpravka'])) $adres = htmlspecialchars($_POST['host']); $login = htmlspecialchars($_POST['name']) ; $pass = htmlspecialchars($_POST['pass']); $dbname = htmlspecialchars($_POST['dbname']); //Заполненны или нет if ($_POST['host'] == "") Echo " Поле пустое - Адрес Хоста " ; if ($_POST['name'] == "") Echo " Поле пустое - Имя базы " ; if ($_POST['pass'] == "") Echo " Поле пустое - Пароль" ; if ($_POST['dbname'] == "") Echo "Поле пустое - Имя Базы" ; // Подключание к базе mysql_connect($adres , $login, $pass) or die ("Где-то очепятка, я так работать не собираюсь") ;
@mysql_select_db($dbname);
CREATE TABLE `users` ( `user_id` int(11) unsigned NOT NULL auto_increment, `user_login` varchar(30) NOT NULL, `user_password` varchar(32) NOT NULL, `user_hash` varchar(32) NOT NULL, `user_ip` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
$install = 1
Echo "Установка true" ; Echo "Удалите папку install" ; ?>
|
|
| |
because_ahaha | Дата: Воскресенье, 17 Марта 2013, 16:27 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Вероятно через fopen создать файл конфига? Ну либо открыть его и перезаписать данные
|
|
| |
lvovand | Дата: Воскресенье, 17 Марта 2013, 17:32 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| а как собираются данные обрабатываться? вижу поля формы, но не вижу тега <form> в нем и вызывается тот скрипт, который будет данные формы обрабатывать
Разработка и продвижение сайтов. Дизайн
|
|
| |
musicfuns | Дата: Воскресенье, 17 Марта 2013, 17:40 | Сообщение # 6 |
Gorilla Develop Studio
Сейчас нет на сайте
| lvovand, Ну о шибка все равно в 46 строке . Что ему там не понравилосб?
|
|
| |
lvovand | Дата: Воскресенье, 17 Марта 2013, 17:44 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| само собой ошибка
CREATE TABLE `users` (
если хотел запрос выполнить, так надо через mysql_query() запрос выполнить, а не просто так строку писать
Разработка и продвижение сайтов. Дизайн
|
|
| |
musicfuns | Дата: Воскресенье, 17 Марта 2013, 18:08 | Сообщение # 8 |
Gorilla Develop Studio
Сейчас нет на сайте
| Вроде бы все подправил, но теперь меня после клика на кнопку пересылает на главную
Вот новый код без ошибок : Код <html> <head> <title>Установка Coondlyes CMS</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link rel="stylesheet" href="/style.css" type="text/css" charset="utf-8"/>
<?php $version = "0.1" ; Echo "Версия ядра" , $version ; Echo "Установка Coondlyes CMS" ; ?>
<div align="center"> <form action="/" method="post"> <div> Адрес базы Сакьюэль</div> <input class="form-field" type="text" name="host" /><br /> <div> Твой логин на сервер </div> <input class="form-field" type="text" name="name" /><br /> <div> Пароль на базу </div> <input class="form-field" type="text" name="pass" /><br /> <div> Имя Датабазы </div> <input class="form-field" type="text" name="dbname" /><br />
<input class="submit-button" type="submit" name="otpravka" value="Можно начинать" /> </form> </div> <?php // Проверка полей if(isset($_POST['otpravka'])) { $adres = htmlspecialchars($_POST['host']); $login = htmlspecialchars($_POST['name']) ; $pass = htmlspecialchars($_POST['pass']); $dbname = htmlspecialchars($_POST['dbname']); //Заполненны или нет if ($_POST['host'] == "") Echo " Поле пустое - Адрес Хоста " ; if ($_POST['name'] == "") Echo " Поле пустое - Имя базы " ; if ($_POST['pass'] == "") Echo " Поле пустое - Пароль" ; if ($_POST['dbname'] == "") Echo "Поле пустое - Имя Базы" ; // Подключание к базе mysql_connect($adres , $login, $pass) or die ("Где-то очепятка, я так работать не собираюсь") ;
@mysql_select_db($dbname); Mysql_query ("CREATE TABLE `users` ( `user_id` int(11) unsigned NOT NULL auto_increment, `user_login` varchar(30) NOT NULL, `user_password` varchar(32) NOT NULL, `user_hash` varchar(32) NOT NULL, `user_ip` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; ") ;
$install = 1 ;
$filename ="/config/mysql.php" ; if (is_writable($filename)) {
// В нашем примере мы открываем $filename в режиме "дописать в конец". // Таким образом, смещение установлено в конец файла и // наш $somecontent допишется в конец при использовании fwrite(). if (!$handle = fopen($filename, 'a')) { echo "Нет конфига "; exit; }
// Записываем $somecontent в наш открытый файл. if (fwrite($handle, $adres) === FALSE) { echo "Не могу записать адрес"; exit; } if (fwrite($handle, $login) === FALSE) { echo "Не могу записать логин"; exit; } if (fwrite($handle, $pass) === FALSE) { echo "Не могу записать пароль"; exit; } if (fwrite($handle, $dbname) === FALSE) { echo "Не могу записать датабазу"; exit; } echo "Все данные записаны в конфигурцию"; fclose($handle);
} else { echo "Нет Конфига"; }
} ?>
?>
<div>Coondleys CMS by Musicfuns 2013</div>
</html>
Сообщение отредактировал musicfuns - Воскресенье, 17 Марта 2013, 18:10 |
|
| |
pelmenka | Дата: Воскресенье, 17 Марта 2013, 20:10 | Сообщение # 9 |
Драгоценный Тунеядец
Сейчас нет на сайте
| Цитата (musicfuns) <?php $version = "0.1" ; Echo "Версия ядра" , $version ; Echo "Установка Coondlyes CMS" ; ?> Так много ресурсов сервера? Лучше не выпендриваться и юзать Код Версия ядра: <b>0.1</b><br> Установка Coondlyes CMS Цитата (musicfuns) <form action="/" method="post"> Выкинь отсюда action="/" и все будет пучком.Добавлено (17.03.2013, 20:09) ---------------------------------------------
Цитата (musicfuns) // В нашем примере мы открываем $filename в режиме "дописать в конец". // Таким образом, смещение установлено в конец файла и // наш $somecontent допишется в конец при использовании fwrite(). Копипаст из примеров это плохо! Цитата (musicfuns) if ($_POST['host'] == "") Echo " Поле пустое - Адрес Хоста " ; Здесь вместо Echo "какая-то надпись"; лучше использовать exit("какая-то надпись");, дабы скрипт прекращал свое выполнение при ошибке, а то он проверяет все и пытается подключиться к базе даже с пустыми полями.Цитата (musicfuns) or die ("Где-то очепятка, я так работать не собираюсь") ; А теперь представь, что MySQL сервер просто лежит. Данный скрипт все равно будет выводить сообщение об опечатке, даже если ее там нет. Вместо текста лучше вставить mysql_error() Цитата (musicfuns) $install = 1 ; Эта переменная нигде не используется, выбрось ее.Добавлено (17.03.2013, 20:10) ---------------------------------------------
Цитата (musicfuns) echo "Не могу записать логин";exit; Это пример того, как писать НЕ надо, где ты откопал эти строчки?
Сталина в каждый дом!
|
|
| |
because_ahaha | Дата: Воскресенье, 17 Марта 2013, 21:03 | Сообщение # 10 |
был не раз
Сейчас нет на сайте
| Цитата (pelmenka) Так много ресурсов сервера? Лучше не выпендриваться и юзать Серверу фиолетово на ваши 3 эко, и даже на 300. Хотя если вы планируете 1кк юзеров в день - и то сомневаюсь.
|
|
| |
musicfuns | Дата: Понедельник, 18 Марта 2013, 12:21 | Сообщение # 11 |
Gorilla Develop Studio
Сейчас нет на сайте
| Цитата (pelmenka) Так много ресурсов сервера? Лучше не выпендриваться и юзать
Это важно?
Цитата (pelmenka) Копипаст из примеров это плохо!
Знаю, но чтоже такого то здесь . Цитата (pelmenka) Здесь вместо Echo "какая-то надпись"; лучше использовать exit("какая-то надпись");, дабы скрипт прекращал свое выполнение при ошибке, а то он проверяет все и пытается подключиться к базе даже с пустыми полями.
Да пока у меня на локальном сервер нет пароля на БД . Пока править не буду, но в будущем исправлю .
Цитата (pelmenka) А теперь представь, что MySQL сервер просто лежит. Данный скрипт все равно будет выводить сообщение об опечатке, даже если ее там нет. Вместо текста лучше вставить mysql_error()
Да мне без разницы . На локалке mysql не упадёт, а если у хостера упадёт, то совсем всё и разом .
Цитата (pelmenka) Эта переменная нигде не используется, выбрось ее.
Она использовалась раньше в другом файле . Пусть пока будет, оно ещё будет . Цитата (pelmenka) Это пример того, как писать НЕ надо, где ты откопал эти строчки?
PHP.SUДобавлено (18.03.2013, 12:21) --------------------------------------------- У меня новая проблема . В общем дело в том, что не хочет он у меня работать с конфигом и данные туда не записывает .
include '/config/mysql.php' ; , Пробовал по разному использовать и две точки в начале пути, и двойные кавычки, но ничего не работает . Ни один файл не находит его .
|
|
| |
pelmenka | Дата: Понедельник, 18 Марта 2013, 14:01 | Сообщение # 12 |
Драгоценный Тунеядец
Сейчас нет на сайте
| Цитата (musicfuns) Знаю, но чтоже такого то здесь Привыкнешь к копипасту и не сможешь без него вбивать код. И тебе никто не гарантирует, что код, который ты копируешь, правильный и будет правильно работать с остальным кодом.
Сталина в каждый дом!
|
|
| |
because_ahaha | Дата: Понедельник, 18 Марта 2013, 14:01 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| Цитата (musicfuns) include '/config/mysql.php' ; , Пробовал по разному использовать и две точки в начале пути, и двойные кавычки, но ничего не работает . Ни один файл не находит его . Код include dirname(__FILE__).'/config/mysql.php'; Думаю так должно работать. Да и вообще если не работает - надо искать причину в путях - что где лежит, что откуда инклудится
|
|
| |
musicfuns | Дата: Понедельник, 18 Марта 2013, 14:30 | Сообщение # 14 |
Gorilla Develop Studio
Сейчас нет на сайте
| Warning: include(/config/mysql.php) [function.include]: failed to open stream: No such file or directory in W:\domains\localhost\index.php on line 17
Warning: include() [function.include]: Failed opening '/config/mysql.php' for inclusion (include_path='.;W:/modules/php/PHP-5.2.17/;W:/modules/php/PHP-5.2.17/PEAR') in W:\domains\localhost\index.php on line 17
Хотя директория есть и доступна.Добавлено (18.03.2013, 14:30) --------------------------------------------- А все перепроверил . Это нотпад++ и мои кривые руки, я просто не туда сохранял файл .
|
|
| |
|