Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> update pliku
musiek86
post 26.07.2012, 23:51:02
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


Mam skrypt (wypelnianie_config.ph) który wypełnia mi plik pewnymi danymi, poniżej kod
  1. <?php
  2. $plik = fopen('/jakas_tam_sciezka/config.php', 'a');
  3. $dodawanie = "<?php
  4. $config['database']['type'] = 'mysql';
  5. $config['database']['database'] = 'jakas_baza';
  6. $config['database']['table_prefix'] = 'prefix__$nazwa__';
  7. $config['database']['hostname'] = 'jakishost';
  8. $config['database']['username'] = 'jakisuser';
  9. $config['database']['password'] = 'jakieshaslo';
  10. $config['admin_dir'] = 'admin';
  11. $config['hide_admin_links'] = 0;
  12. $config['cache_store'] = 'db';
  13. $config['memcache']['host'] = 'jakishost';
  14. $config['memcache']['port'] = 11211;
  15. $config['super_admins'] = '1';
  16. $config['database']['encoding'] = 'utf8';
  17. $config['log_pruning'] = array(
  18. 'admin_logs' => 365,
  19. 'mod_logs' => 365,
  20. 'task_logs' => 30,
  21. 'mail_logs' => 180,
  22. 'user_mail_logs' => 180,
  23. 'promotion_logs' => 180
  24. );
  25. ?>";
  26. fwrite($plik, $dodawanie);
  27. fclose($plik);
  28. echo "utworzono plik config.php<br>";
  29. ?>

do pliku przekazywana jest zmienna $nazwa aczkolwiek $config nie ma być zmienna tylko ma być wpisane w dokładnie takiej postaci.
Po wykonaniu skryptu otrzymuje błąd:
  1. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /jakas_sciezka/wypelnianie_config.php on line 4


WTF?

I jeszcze jedno pytanie troche odbiegające od tematu, ale skoro juz tu pisze to moze przy okazji ktos odpowie bo ja juz sie troche poplątałem.
Mam fr. kodu:
  1. $wynik = mysql_query($tworzenie_tabel);
  2. if (!$wynik_zapytania)
  3. {
  4. echo "<br />Nie moge utworzyc tabel w bazie!<br /><br />";
  5. }
  6. else
  7. {
  8. echo "<br />Tabele zostaly stworzone!<br /><br />";
  9. }

I pytanie czy czy echo treści są dobrze podpisane czy powinny być odwrotnie?
Go to the top of the page
+Quote Post
CuteOne
post 27.07.2012, 06:26:13
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Spróbuj zamiast cudzysłowie użyć apostrofów

  1. $str =
  2. '<?php
  3. $config[\'aaa\'] = \'aaa\';
  4. ?>';


ad2.
Po co kombinujesz z tym echo.. ?
  1. $wynik = mysql_query($tworzenie_tabel) or die('Nie mogę utworzyc tabeli w bazie '.mysql_error());


Ten post edytował CuteOne 27.07.2012, 06:31:14
Go to the top of the page
+Quote Post
musiek86
post 27.07.2012, 12:26:49
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


Zamieniłem i niby błędu nie pokazuje ale nie dodaje do pliku nic. Można jakies kod który by pokazywał błąd? Mam juz w skrypcie
  1. ini_set( 'display_errors', 'On' );
  2. error_reporting( E_ALL );
Go to the top of the page
+Quote Post
CuteOne
post 27.07.2012, 12:33:27
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  1. $str =
  2. '<?php
  3. $config[\'aaa\'] = \'aaa\';
  4. ?>';
  5. file_put_contents('plik.php', $str);
Go to the top of the page
+Quote Post
musiek86
post 27.07.2012, 12:47:08
Post #5





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


Obecnie mam tak:
  1. <?php
  2. $plik = fopen('/jakas_tam_sciezka/config.php', 'a');
  3. $dodawanie = '<?php
  4. $config['database']['type'] = 'mysql';
  5. $config['database']['database'] = 'jakas_baza';
  6. $config['database']['table_prefix'] = 'prefix__$nazwa__';
  7. $config['database']['hostname'] = 'jakishost';
  8. $config['database']['username'] = 'jakisuser';
  9. $config['database']['password'] = 'jakieshaslo';
  10. $config['admin_dir'] = 'admin';
  11. $config['hide_admin_links'] = 0;
  12. $config['cache_store'] = 'db';
  13. $config['memcache']['host'] = 'jakishost';
  14. $config['memcache']['port'] = 11211;
  15. $config['super_admins'] = '1';
  16. $config['database']['encoding'] = 'utf8';
  17. $config['log_pruning'] = array(
  18. 'admin_logs' => 365,
  19. 'mod_logs' => 365,
  20. 'task_logs' => 30,
  21. 'mail_logs' => 180,
  22. 'user_mail_logs' => 180,
  23. 'promotion_logs' => 180
  24. );
  25. ?>';
  26. fwrite($plik, $dodawanie);
  27. fclose($plik);
  28. echo "utworzono plik config.php<br>";
  29. ?>

Teraz wyswietla mi błąd:
  1. Parse error: syntax error, unexpected T_STRING in /opt/lampp/htdocs/e-fora/pliki/formularz/wypelnianie_config.php on line 5


Ten post edytował musiek86 27.07.2012, 12:47:37
Go to the top of the page
+Quote Post
erix
post 27.07.2012, 13:02:17
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Rozbij sobie blok otwierający php tak, aby nie występowały <? obok siebie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
musiek86
post 27.07.2012, 13:37:24
Post #7





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


A niby jak to zrobic kiedy w pliku wypełnianie_config.php musze miec to na poczatku i koncu a zawartosc jaka dodaje do config.php tez musi sie zaczynac i konczyc tym ;>
Go to the top of the page
+Quote Post
erix
post 27.07.2012, 13:40:11
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Czytaj uważnie:

Cytat
Rozbij sobie blok otwierający php tak, aby nie występowały <? obok siebie.


W ten sposób, którego Ty używasz (sposób zapisu) otwierasz kolejny blok kodu, który parser interpretuje jako kod, a nie jako string. Poczytaj sobie o łączeniu ciągów i zastosuj do pogrubionej przeze mnie frazy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
musiek86
post 27.07.2012, 14:12:23
Post #9





Grupa: Zarejestrowani
Postów: 118
Pomógł: 0
Dołączył: 22.03.2008

Ostrzeżenie: (0%)
-----


Oki poradziłem sobie. Problemem jak sie okazało było to iż uzyłm tu ' zamiast " w linijce zawierającej
  1. $plik = fopen('/jakas_tam_sciezka/config.php', 'a');
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 22:08