Пятница, 26 Апреля 2024, 19:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Скриптовые языки программирования » Вопросы по PHP
Вопросы по 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)
---------------------------------------------
А все перепроверил . Это нотпад++ и мои кривые руки, я просто не туда сохранял файл .

Форум игроделов » Программирование » Скриптовые языки программирования » Вопросы по PHP
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг