Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Funkcje i php
Forum PHP.pl > Forum > Przedszkole
Lee
Mam pytanie, jak zrobić żeby jak wpisze w polu textarea kod php np.
  1. <? echo 'blabla'; ?>

lub wywołaniu funkcji
  1. <? print Funckja(); ?>

i wysłaniu tego formularzem do bazy danych, po wyciągnięciu tego wyświetlało to poprawnie ?

Robiłem test, tzn niewysyłałem danych do MySQL tylko bezpośrendio dałem
  1. <?php
  2. echo $zawartosc;
  3. ?>

i po wysłaniu formularza nic nie wyświetlało :|
AcidBurnt
uzywaj $_GET['zawartosc'] badx $_POST['zawartosc'] a jak chesz aby sie jeszcze ten kod wykonał to chyba http://php.net/eval uzyc powinienes
Lee
tzn powinno wygląać nie:
$zawartosc = $_POST['zawartosc']
tylko
$_GET['zawartosc'] badx $_POST['zawartosc']

no dobra ale jak chcę do zapytania to walnąć to wtedy daje
  1. <?php
  2. $_GET['zawartosc'] badx $_POST['zawartosc'];
  3. $NazwaZmiennej = $_GET['zawartosc']
  4. $sql = mysql_query("INSERT INTO blabla VALUES ('$NazwaZmiennej')");
  5. ?>

?
[/php]
em1X
Kod
$_GET['zawartosc'] badx $_POST['zawartosc'];


zastanów się co napisałeś biggrin.gif:D:D:D:D:D te badx - kolega miał na myśli słowo bądź.

Jezeli chcesz pobrać dane wysłane formularzem - uzywasz POST, jezeli dane z paska adresu, uzywasz GET. Radze poczytac jakies kursy php na początek, bo z taką wiedzą daleko nie zajdziesz :roll2:

  1. <?php
  2. mysql_query("INSERT INTO blabla VALUES ('". $_POST['pole_z_formularza'] ."')");
  3. ?>
Lee
Wiem czym co pobierasz i że jak wpisze <form method="post"> to musze uzyć $_POST[''];

winksmiley.jpg
em1X
dokładnie tak Rkingsmiley.png
Lee
No dobra zrobiłem tak (mam już w bazie wpis, który wyglada następująco :
:: <a href="index.php>Test</a><br><? echo 'blabla'; ?>)
i jak zrobie tak
  1. <?php
  2. $wykonaj = mysql_query("SELECT * FROM $tbl_menu WHERE id = 1");
  3. while ($wynik = mysql_fetch_assoc($wykonaj)){
  4. $zawartosc = $wynik['zawartosc'];
  5. }
  6. echo eval($zawartosc);
  7. ?>

Gdzie
$tbl_menu - zdefiniowana nazwa tabeli
id = 1 - tylko dla testu (id tabeli z wpisem z góry)

to wywala mi
Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/gothic/www/cms/administracja/menu.php(140) : eval()'d code on line 1

Może problem leży w tym, że nie moge mieszać zwykłego kodu z kodem php czyli pisac albo
:: <a href="index.php">Test</a>
albo
<? echo 'blabla'; ?>

Pozdrawiam i licze na waszą pomoc winksmiley.jpg

//Update
Zauważyłem, że jak dam kod <? echo 'blabla'; ?> to wywala podobny błąd tylko pisze unexpected "<" in...
a jak dam samo echo 'blabla'; to normalnie działa

btw. ciekawe jak ot jest w JPortal, że trzeba wpisywać "<?" i "?>"
btw2. jak zrobić, żeby na początku string'a (wpisywany tekst) i na końcu dodawało wpisane w zmienna kawałki kodu ? chodzi mi oto żeby uzyskać efekt iż
wpisuje w polu "zawartosc" tekst, a on automatycznie dodaje echo '';
em1X
Cytat(Lee @ 10.06.2006, 20:48 ) *
  1. <?php
  2. echo eval($zawartosc);
  3. ?>


moglbym wiedziec co takiego trzymasz w tej bazie ze pierw musisz to parsować a potem wyswietlac ?
skoro uzywasz eval musisz liczyc sie z tym, ze zawartosc musi byc składniowo poprawna

eeeeeeeeeeeh wy to kombinujecie jak konie pod góre biggrin.gif tongue.gif biggrin.gif
Lee
zawartość tabeli ?

  1. INSERT INTO 'main' VALUES (NULL, 'Menu Główne', 'echo 'Zwykły tekst<br><a href="index.php">Link</a>';', 'lewa', 1, 1);

- null - auto_increment kolumny "id)
- Menu Główne - nazwa menu (naza kolumny: nazwa)
- echo 'Zwykły tekst(...)</a>'; - zawartośc menu (nazwa kolumny: zawartosc)
- lewa - pozycja menu lewa/prawa (nazwa kolumny: pozycja)
- 1 - kolejnosc menu od 1 < n (nazwa kolumny: kolejnosc)
- 1 - czy aktywne 1 - tak, 0 - nie (nazwa kolumny: aktywne)

btw. jak zrobiłem tak
  1. <?php
  2. $wykonaj = mysql_query("SELECT * FROM $tbl_menu WHERE pozycja = 'lewa' ORDER BY kolejnosc");
  3. while ($wynik = mysql_fetch_array($wykonaj)){
  4. $aLeweMenu[] = $wynik;
  5. }
  6.  
  7. foreach ($aLeweMenu as $LeweMenu){
  8. echo '<table width="100%" cellcpacing="0" cellpadding="0">
  9. <tr>
  10. <td class="text_02" style="background-color: #000066; height: 25px"><b>'.$LeweMenu['nazwa'].'</b></td>
  11. </tr>
  12. <tr>
  13. <td class="text_01" style="background-color: #0099CC">'. eval($LeweMenu['zawartosc']) .'</td>
  14. </tr>
  15. </table>';
  16. }
  17. ?>

to wyświetla mi najpierw zawartosć kolumny: zawartość, potem tytuł menu z wyglądem i na końcu paseczek (komórka) w której ma być zawartosc. Co robie źle ?

//Update
Okej zrobiłem miało być w linijce 13

  1. <?php
  2. <td class="text_01" style="background-color: #0099CC">'; eval($LeweMenu['zawartosc']); echo'</td>
  3. ?>


a nie

  1. <?php
  2. <td class="text_01" style="background-color: #0099CC">'. eval($LeweMenu['zawartosc']) .'</td>
  3. ?>


Pozdrawiam cool.gif
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.