Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Instalacja
Forum PHP.pl > Forum > Przedszkole
Arvedui
Witam

Mam problem z instalatorem (install.php)

plik ma za zadanie dodanie parametrów bazy do config.php, następnie wprowadzenie tabel do bazy i na końcu utworzenie kont adminitratora.

Po kilku dniach wypełnionych błedami udało mi się <tak się mi wydaje> ukończyć to dzieło, lecz tym razem, zamiast błedu wyświetla mi się biała strona.....
za 1szym włączeniem strona wyświetliła się poprawnie - niby wszystko działało, można było wprowadzić dane, instalacja wydawało by się przebiegła poprawnie, lecz nie utworzyło tabel w bazie ani nie zmienilo nic w config, po kolejnym uruchomieniu strony wyświetla białą strone

treść pliku:

  1. <?php
  2. if (isset($_POST['base_form']))
  3. {
  4. $dbHost = $_POST['dbHost'];
  5. $dbUser = $_POST['dbUser'];
  6. $dbPass = $_POST['dbPass'];
  7. $dbName = $_POST['dbName'];
  8.  
  9.  
  10. $connect = mysql_connect ($dbHost,$dbUser,$dbPass);
  11. if (!$connect) {
  12. die ('<p class="error">Nie mogę się połączyć z bazą danych.</p>');
  13. }
  14. $select = mysql_select_db ($dbName, $connect);
  15. if (!$select) {
  16. die ('<p class="error">Nie udało się wybrać bazy danych.</p>');
  17. }
  18. if ($connect -> connect_errno != 0)
  19. {
  20. throw new Exception(mysql_connect_errno);
  21. }
  22. else
  23. {
  24.  
  25. $file = fopen("config.php","w");
  26. fwrite($file,'<?php $dbHost = "'.$dbHost.'"; $dbUser = "'.$dbUser.'"; $dbPass = "'.$dbPass.'"; $dbName = "'.$dbName.'";
  27. $conn = mysql_connect ($cfg['.$dbHost.'], $cfg['.$dbUser.'], $cfg['.$dbPass.']);
  28. $select = mysql_select_db ($cfg['.$dbName.'], $conn);
  29. if (!$conn) {
  30. die (<p class="error">Nie udało się połączyć z bazą danych.</p>);
  31. }
  32. if (!$select) {
  33. die (<p class="error">Nie udało się wybrać bazy danych.</p>);} ?>');
  34. fclose($file);
  35. $connect = new mysql_connect($dbHost,$dbUser,$dbPass);
  36. if ($connect -> connect_errno != 0)
  37. {
  38. throw new Exception(mysql_connect_errno);
  39. }
  40.  
  41. else
  42. {
  43. mysql_query("CREATE TABLE `user` ( `id` int(10) UNSIGNED NOT NULL, `login` varchar(32) COLLATE utf8_polish_ci NOT NULL, `pass` varchar(32) COLLATE utf8_polish_ci NOT NULL, `email` varchar(255) COLLATE utf8_polish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
  44. mysql_query("ALTER TABLE `user` ADD PRIMARY KEY (`id`);");
  45. mysql_query("ALTER TABLE `user` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT;");
  46. mysql_query("CREATE TABLE `rese` ( `id` int(11) UNSIGNED NOT NULL, `sala` varchar(32) COLLATE utf8_polish_ci NOT NULL, `nazw` varchar(32) COLLATE utf8_polish_ci NOT NULL, `dat` varchar(225) COLLATE utf8_polish_ci NOT NULL, `godz` varchar(32) COLLATE utf8_polish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");
  47. mysql_query("ALTER TABLE `rese` ADD PRIMARY KEY (`id`);");
  48. mysql_query("ALTER TABLE `rese` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;");
  49. unset($_SESSION['base_form']);
  50. $_SESSION['admin_form'] = true;
  51. $connect -> close();
  52. }
  53. }
  54.  
  55.  
  56.  
  57. if (isset($_POST['admin_form']))
  58. {
  59. $verify = true;
  60. $login = $_POST['login'];
  61. $pass = $_POST['pass'];
  62. $email = $_POST['email'];
  63. if (!ctype_alnum($login))
  64. {
  65. $login_error = 'Login może składać się jedynie z liter oraz cyfr.';
  66. }
  67. if (strlen($login) > 24)
  68. {
  69. $login_error = 'Długośc loginu nie może być większa niż 24 znaki.';
  70. }
  71. $validated_email = filter_var($email,FILTER_SANITIZE_EMAIL);
  72. if (!filter_var($validated_email,FILTER_VALIDATE_EMAIL) || $validated_email != $email)
  73. {
  74. $email_error = 'Wprowadzony e-mail nie jest poprawny.';
  75. }
  76. if (strlen($pass) > 24)
  77. {
  78. $pass_error = 'Długość hasła nie może być większa niż 24 znaki.';
  79. }
  80. if (isset($login_error) || isset($pass_error) || isset($email_error))
  81. {
  82. $verify = false;
  83. }
  84. if ($verify)
  85. {
  86. mysql_report(MYSQL_REPORT_STRICT);
  87. require_once "config.php";
  88. try
  89. {
  90. $connect = new mysql($dbHost,$dbUser,$dbPass,$dbName);
  91. if ($connect -> connect_errno != 0)
  92. {
  93. throw new Exception(mysql_connect_errno);
  94. }
  95. else
  96. {
  97. $query = mysql_query("SELECT * FROM users WHERE login = '$login'");
  98. if (!$query)
  99. {
  100. throw new Exception($connect -> error);
  101. }
  102. else
  103. {
  104. $count = $query -> num_rows;
  105. if ($count > 0)
  106. {
  107. $verify = false;
  108. $connect -> close();
  109. }
  110. }
  111. if ($verify)
  112. {
  113. $pass = password_hash($pass,PASSWORD_DEFAULT);
  114. $query = mysql_query("INSERT INTO users VALUES(NULL,'$login','$pass','$email',now())");
  115. if (!$query)
  116. {
  117. throw new Exception($connect -> error);
  118. }
  119. else
  120. {
  121. unset($_SESSION['admin_form']);
  122. $_SESSION['done'] = true;
  123. }
  124. }
  125. $connect -> close();
  126. }
  127. }
  128. catch (Exception $error)
  129. {
  130. $admin_error = 'Nie udało się dodać administratora do bazy danych!';
  131. $form_login = $login;
  132. $form_email = $email;
  133. }
  134. }
  135. else
  136. {
  137. $admin_error = 'Nie udało się dodać administratora do bazy danych!';
  138. $form_login = $login;
  139. $form_email = $email;
  140. }
  141. }
  142. if (!isset($_SESSION['check_config']) && !isset($_SESSION['base_form']) && !isset($_SESSION['admin_form']) && !isset($_SESSION['done']));
  143. {
  144. $_SESSION['check_config'] = true;
  145. }
  146. if (isset($_SESSION['check_config']))
  147. {
  148. if (!file_exists('config.php'))
  149. {
  150. file_put_contents('config.php','');
  151. }
  152. $permission = substr(sprintf('%o',fileperms('config.php')),-4);
  153. switch ($permission)
  154. {
  155. case '0777':
  156.  
  157. $valid = true;
  158.  
  159. break;
  160. case '0666':
  161.  
  162. $valid = true;
  163.  
  164. break;
  165. default:
  166.  
  167. $valid = false;
  168.  
  169. break;
  170. }
  171. if (!$valid)
  172. {
  173. $config_error = 'Aby kontynuować instalację, zmień prawa dostępu do pliku <i>config.php</i> na "777"';
  174. }
  175. else
  176. {
  177. unset($_SESSION['check_config']);
  178. $_SESSION['base_form'] = true;
  179. }
  180. }
  181. }
  182.  
  183. ?>
  184. <! DOCTYPE HTML>
  185. <html>
  186.  
  187. <head>
  188. <meta charset="utf-8"/>
  189. <title>Strona instalacyjna</title>
  190. <link rel="stylesheet" href="install.css" type="text/css"/>
  191. </head>
  192.  
  193. <body>
  194. <div id="site">
  195. <div id="form">
  196. <?php
  197. if (!isset($_SESSION['done']))
  198. {
  199. if (!isset($_SESSION['admin_form']))
  200. {
  201. if (!isset($_SESSION['base_form']))
  202. {
  203. echo $config_error;
  204. }
  205. else
  206. {
  207. echo '<div id="title">Wprowadź dane niezbędne do połączenia z bazą danych:</div><br/><br/><br/>';
  208. echo '<form method="post">';
  209. echo '<b><i>Hostname:</i></b><br/><br/>';
  210. echo '<input type="text" name="dbHost"/><br/><br/>';
  211. echo '<b><i>Username:</i></b><br/><br/>';
  212. echo '<input type="text" name="dbUser"/><br/><br/>';
  213. echo '<b><i>Password:</i></b><br/><br/>';
  214. echo '<input type="password" name="dbPass"/><br/><br/>';
  215. echo '<b><i>Database:</i></b><br/><br/>';
  216. if (isset($connect_error))
  217. {
  218. echo $connect_error.'<br/><br/>';
  219. }
  220. echo '<input type="text" name="dbName"/><br/><br/><br/>';
  221. echo '<input type="submit" name="base_form" value="Połącz"/>';
  222. echo '</form>';
  223. }
  224. }
  225. else
  226. {
  227. echo '<div id="title">Wprowadź dane administratora:</div><br/><br/><br/>';
  228. if (isset($admin_error))
  229. {
  230. echo '<span class="error">'.$admin_error.'</span><br/><br/>';
  231. }
  232. echo '<form method="post">';
  233. echo '<b>Login:</b><br/><br/><input type="text" name="login"';
  234. if (isset($form_login))
  235. {
  236. echo ' value="'.$form_login.'"';
  237. }
  238. echo '/><br/><br/>';
  239. if (isset($login_error))
  240. {
  241. echo '<span class="error">'.$login_error.'</span><br/><br/>';
  242. }
  243. echo '<b>E-mail:</b><br/><br/><input type="text" name="email"';
  244. if (isset($form_email))
  245. {
  246. echo ' value="'.$form_email.'"';
  247. }
  248. echo '/><br/><br/>';
  249. if (isset($email_error))
  250. {
  251. echo '<span class="error">'.$email_error.'</span><br/><br/>';
  252. }
  253. echo '<b>Hasło:</b><br/><br/><input type="password" name="pass"/><br/><br/>';
  254. if (isset($pass_error))
  255. {
  256. echo '<span class="error">'.$pass_error.'</span><br/><br/>';
  257. }
  258. echo '<br/>';
  259. echo '<input type="submit" name="admin_form" value="Dodaj administratora"/>';
  260. echo '</form>';
  261. }
  262. }
  263. else
  264. {
  265. echo '<div id="title">Instalacja zakończona. Konfiguracja udana. Nastąpi teraz powrót do strony głównej i usunięcie pliku instalatora.</div><br/><br/><br/>';
  266. echo '<form method="post" action="index.php">';
  267. echo '<input type="submit" name="install_complete" value="Wróć do strony głównej"/>';
  268. echo '</form>';
  269. }
  270. ?>
  271. </div>
  272. </div>
  273. </body>
  274.  
  275. </html>
viking
A od kiedy to rozszerzenie mysql, którego dawno nie powinieneś używać, jest obiektowe? Coś ostro pomieszałeś. Raz jakieś new mysql, wcześniej nem mysql_connect ktore to jest funkcją. Jak byś włączył wyświetlanie błędów to pewnie ekran jest zasypany.
password_hash zwraca 60 znaków na ten moment, u ciebie jest w bazie 32 tylko.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.