Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]eval();
nastu7
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.01.2013
Skąd: Łódź

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


Mam problem z funkcją eval(), ponieważ nie rozumiem dlaczego wyrzuca mi błędy... Jestem na BARDZO podstawowym poziomie z php i raczej uczę się z przykładów. Dlatego też używam tej funkcji do wyświetlenia template'a w .html.

przejdźmy do meritum:
  1. 26 $user_data = get_user_data();
  2. 27 $id = $user_data['user_id'];
  3. 28 $name = $user_data['user_name'];
  4. 29
  5. 30 eval ("\ $logged = \"".gettemplate("logged")."\";");
  6. 31 echo $logged;

tak wygląda kawałek kodu pliku logged.php

  1. Witaj <b>$name</b>
  2. <a href="index.php?site=profile&amp;id=$id">Profil</a> &bull; <a href="index.php?site=editprofile">Edytuj</a> &bull; <a href="index.php?site=userlist">Użytkownicy</a> &bull; <a href="logout.php">Wyloguj!</a>


to natomiast jest logged.html

Takie oto 2 komunikaty dostaje po kompilacji:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/.../logged.php(30) : eval()'d code on line 1

Parse error: syntax error, unexpected '=' in /home/.../logged.php(30) : eval()'d code on line 1



Może mi ktoś powiedzieć, czemu backslash oraz "=" są unexpected?
Ewentualnie, czy może mi ktoś wskazać, aby zrobić to inaczej?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Kolejny post i znów to samo eval
Cytat
Caution

The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to pass any user provided data into it without properly validating it beforehand.

do wyświetlenia szablonów użyj np http://nospor.pl/klasa-widoku.html

a jesli chodzi o to co napisałeś to jak już to tak:
  1. eval ("\ $logged = \"gettemplate("logged")\";");


Macie przykład w manualu a itak robicie swoje..

Ten post edytował com 8.11.2013, 15:07:00
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 06:45