Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisywanie do pliku php
Forum PHP.pl > Forum > PHP
AZPR
Mam taki plik config.php ale chcialbym zrobic istalator a raczej formularz do tego aby po odpaleniu pliku install.php wyswietlala sie strona z formularzem a po jego wypelnieniu wszystko zapisywalo by sie do pliku w takiej postaci:


  1. <?php
  2.  
  3. $user = "TEST";
  4. $haslo = md5("TEST");
  5. $baza = mysql_connect("localhost", "login", "haslo") or die(mysql_error());
  6. mysql_select_db("prefix");
  7.  
  8. $tytul = "test";
  9.  
  10. $prefix = "test";
  11.  
  12. ?>


i nie wiem jak sie za to zabrac... ;/ moze dlatego ze pozno juz jest tongue.gif macie jakies pomysly?
.:dR@kE:.
Spróbuj przerobić to:

  1. <?php
  2.  $serwer = trim(stripslashes($_POST['dbserwer']));
  3.  $baza  = trim(stripslashes($_POST['dbnazwa']));
  4.  $user  = trim(stripslashes($_POST['dbuzytkownik']));
  5.  $haslo = trim(stripslashes($_POST['dbhaslo']));
  6.  $user_t = trim(stripslashes($_POST['tuzytkownicy']));
  7.  
  8. if (strlen($serwer)>&& strlen($baza)>&& strlen($user)>&&
  9. strlen($haslo)>0 && strlen($user_t)>0)
  10.  {
  11.  
  12.  $tresc_pliku = "<?phpn/*nPlik konfiguracyjnyn skrypt testowyn" .
  13. " Autor: Grzegorz Szefka ( http://www.szefka.com )n*/" .
  14. "nn$serwer = '$serwer';n$baza  = '$baza';n" .
  15. "$user  = '$user';n$haslo = '$haslo';n" .
  16. "$user_t = '$user_t';nn?>";
  17.  
  18.  $plik = @fopen('config.php', 'w'); // otwarcie pliku do zapisu
  19.  if (!$plik)  // jesli nie mozna otworzyc pliku...
  20.  {
  21. echo 'Nie można otworzyć pliku config.php.<br/>SprawdĽ czy plik nie jest chroniony przed zapisem!</p>';
  22.  }
  23. else // po otwarciu pliku do zapisu...
  24.  {
  25. fputs($plik, $tresc_pliku); // umieszczenie tresci w pliku
  26. fclose($plik);  // zamkniecie uchwytu pliku
  27.  
  28. if (file_exists('config.php')) // upewnienie sie, ze plik istnieje
  29. {
  30. echo 'Utworzono plik konfiguracyjny.';
  31. }
  32. else echo 'Nie można zapisać pliku konfiguracyjnego!<br/>SprwdĽ czy folder ma ustawione prawa do zapisu!';
  33.  }
  34.  }
  35. else // czyli jesli nie wszystkie wartosci przeslano postem
  36.  {
  37.  
  38. if (strlen($serwer)>|| strlen($baza)>|| strlen($user)>||
  39. strlen($haslo)>0 || strlen($user_t)>0)
  40. {
  41. echo 'Musisz wypełnić wszystkie pola!';
  42. }
  43.  
  44. ?>
  45. <form action="instalacja.php" method="post">
  46. <table cellspacing="2" class="setup">
  47.  <tr>
  48. <td>Serwer bazy danych</td>
  49. <td><input type="text" name="dbserwer" value="<?php echo $serwer; ?>" size="16" maxlength="32"/></td>
  50.  </tr>
  51.  <tr>
  52. <td>Nazwa bazy danych</td>
  53. <td><input type="text" name="dbnazwa" value="<?php echo $baza; ?>" size="16" maxlength="32"/></td>
  54.  </tr>
  55.  <tr>
  56. <td>Nazwa użytkownika</td>
  57. <td><input type="text" name="dbuzytkownik" value="<?php echo $user; ?>" size="16" maxlength="32"/></td>
  58.  </tr>
  59.  <tr>
  60. <td>Hasło</td>
  61. <td><input type="password" name="dbhaslo" size="16" maxlength="32"/></td>
  62.  </tr>
  63.  <tr>
  64. <td>Nazwa tabeli w bazie danych</td>
  65. <td><input type="text" name="tuzytkownicy" value="<?php echo $user_t; ?>" size="16" maxlength="32"/></td>
  66.  </tr>
  67.  <tr>
  68. <th align="right" colspan="2"><input type="submit" name="wyslijbtn" value="Zapisz konfigurację -&gt;"/></th>
  69.  </tr>
  70. </table>
  71. </form>
  72. <?php
  73.  }
  74.  ?>
AZPR
ok a jak mam cos takiego:

  1. <?php
  2. $baza = mysql_connect("localhost", "login", "haslo") or die(mysql_error());
  3. ?>


to jak to wpisac w:

  1. <?php
  2. $baza   = trim(stripslashes($_POST['dbnazwa']));
  3. ?>


aby to bylo w jednym linku czy jakos tak?
.:dR@kE:.
  1. <?php
  2. $baza  = trim(stripslashes($_POST['dbnazwa']));
  3. ?>


powoduje tylko przypisanie do zmiennej $baza wartosci przeslanej formularzem (z pola "dbnazwa")

Aby umiescic w pliku konfiguracyjnym
  1. <?php
  2. $baza = mysql_connect("localhost", "login", "haslo") or die(mysql_error());
  3. ?>
musisz po prostu "przekonwertowac" to na php.

czyli bedzie to wygladac tak:
  1. <?php
  2. $tresc_pliku = "<?phpn
  3. $baza = mysql_connect("localhost", "login", "haslo") or die(mysql_error());n
  4. ?>";
  5. ?>


---
jakbyś umieścił tag rozpoczynający i kończący php to by nie "przerobił"

tiraeth
dtb
nie lepiej używać plików ini - w koncu po to one sa?
zapisujesz do pliku config.ini.php cala konfigurcja w takiej formie:
  1. ;<? die('-)') ?>
  2. host = xxx
  3. user = xxx
  4. pass = xxx
  5. ...

a w pliku config.php:
  1. <?php
  2. $dane = parse_ini_file ('config.ini.php');
  3. #print_r ($dane);
  4. mysql_connect ($dane['host'], $dane['user'], $dane['pass']);
  5. ...
  6. ?>
.:dR@kE:.
Mysle, ze to juz jak kto woli.
Ja chcialem tylko pomoc zapisac dane przeslane z formularza do pliku.
AZPR
ok jakos sobie poradzilem dzieki!

natomiast

  1. <?php
  2. else // czyli jesli nie wszystkie wartosci przeslano postem {
  3. if (strlen($serwer)>|| strlen($baza)>|| strlen($user)>|| strlen($haslo)>0 || strlen($user_t)>0) { echo 'Musisz wypełnić wszystkie pola!'; }
  4. ?>


odpowiada za wyswietlenie komunikatu jesli jakies pole nie zostanie wypełnione

a jak mam uzyc tego polecenia
  1. <?php
  2. echo 'Musisz wypełnić wszystkie pola!';
  3. ?>
jesli chce wstawic je w inna czesc strony?
  1. <? echo 'Musisz wypełnić wszystkie pola!'; ?>
to powoduje wyswietlanie sie komunikatu caly czas, a ja chce aby wyswietlo sie tylko przy nacisnieciu przysisku dalej.
.:dR@kE:.
Jeśli chcesz żeby wyświetlał się komunikat po kliknięciu na przycisk (czyli sprawdznie danych przed wysłaniem) to powinieneś pobawić się JavaScript'em.
AZPR
nie, nie chodzi mi o allert tongue.gif czy cos w tym stylu

tylko o umieszczeie tego napisu w innej czesci strony... bo jak narazie to on sie wyswietla w lewym gornym rogu [poczatek dokumentu]

a jak go przeniose w <? ?> to wyswietla sie caly czas a nie jak klikne na dalej.
.:dR@kE:.
To przypisz ten tekst do zmiennej, czyli:
  1. <?php
  2. else // czyli jesli nie wszystkie wartosci przeslano postem
  3. {
  4. if (strlen($serwer)>|| strlen($baza)>|| strlen($user)>|| strlen($haslo)>0 || strlen($user_t)>0)
  5. {
  6.  $komunikacik = 'Musisz wypełnić wszystkie pola!';
  7. }
  8. else $komunikacik = ' ';
  9. ?>


a w miejscu, w którym chcesz ten tekst wyswietlic wpisz:
  1. <?php
  2.  echo $komunikacik;
  3. ?>
splatch
Zrobisz to w złym miejscu i dostaniesz notice o niezadeklarowanej zmiennej...
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.