Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja eval
Webmasterr
post 29.10.2010, 21:32:04
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


Co robię źle?

  1. <form action="?" method="post">
  2.  
  3. <input type="text" name="licz"/>
  4. <input type="submit"/>
  5.  
  6. </form>
  7.  
  8. <br />
  9. <br />

  1. <?php
  2. if (isset($_POST['licz']))
  3. {
  4. eval($_POST['licz']);
  5. }
  6. ?>


Wyświetla mi błąd: Parse error: syntax error, unexpected $end in /var/www/virtual/prezenty.c0.pl/l.php(14) : eval()'d code on line 1


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

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
Go to the top of the page
+Quote Post
markonix
post 29.10.2010, 21:52:59
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Błąd wynika z wpisywanej treści.
Poza tym eval przy formularz naraża Twoją aplikacje na spore niebezpieczeństwo.


--------------------
Go to the top of the page
+Quote Post
Mephistofeles
post 29.10.2010, 22:44:02
Post #3





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie używaj eval, jeśli chcesz zrobić kalkulator (tak podejrzewam?) zainteresuj się np. ONP.
Go to the top of the page
+Quote Post
Spirit86
post 30.10.2010, 08:18:53
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


  1. eval('<?= '.$_POST['licz']. ' ?>');


a jak ktoś w zmiennej licz wpisze np echo join(file('index.php'));

?


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
Webmasterr
post 15.11.2010, 15:36:10
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


Filtrowanie danych.

A jak zrobić żeby było np. 5+2+5|2, gdzie 5|2 to 5 do potęgi 2?

Bo resztę mam (oczyszczanie ze spacji, filtrowanie danych, wykonywanie mnożenia, dzielenia, dodawania, odejmowania, usuwanie znaku = z samego końca).


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

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
Go to the top of the page
+Quote Post
Wicepsik
post 15.11.2010, 15:47:04
Post #6





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. echo preg_replace('#(\d+)\|(\d+)#', 'pow(\\1,\\2)', '45|6');


--------------------
Go to the top of the page
+Quote Post
Webmasterr
post 15.11.2010, 17:21:35
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


Cytat(Wicepsik @ 15.11.2010, 15:47:04 ) *
  1. echo preg_replace('#(\d+)\|(\d+)#', 'pow(\\1,\\2)', '45|6');



A kolejność wykonywania działań? Będzie zachowana?


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

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
Go to the top of the page
+Quote Post
Mephistofeles
post 15.11.2010, 18:41:42
Post #8





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Potęgę się zapisuje raczej jako ^. 5|2 to bardziej, że 2 jest podzielne przez 5 winksmiley.jpg.
Go to the top of the page
+Quote Post
Webmasterr
post 25.11.2010, 14:06:29
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

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


No dobra. Ale w takim razie według parsera 2^2^2 == 6 .
Chyba preg_replace źle działa.

Odnawiam

Ten post edytował Webmasterr 21.11.2010, 22:47:28


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

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
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: 18.07.2025 - 14:35