Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Skrypt php z bazy danych
Forum PHP.pl > Forum > Przedszkole
bartekvip
Mam problem. Zapisałem taki skrypt:
CODE
<?
session_start();

function login_test($sesja, $user){
if($sesja != 1){
echo "
<form action=\"login.php\" method=\"post\">
<table class=\"me\">
<tr><td colspan=\"2\" class=\"meh\">LOGIN</td></tr>
<tr>
<td class=\"mec\">Login:</td>
<td class=\"mec\"><input type=\"text\" name=\"login\" size=\"20\" class=\"site_login\" /></td>
</tr>
<tr>
<td class=\"mec\">Hasło:</td>
<td class=\"mec\"><input type=\"password\" name=\"pass\" size=\"20\" class=\"site_login\" /></td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"LOGUJ\" class=\"site_login\" /></td>
</tr>
</table>
</form><br />
";
} else {
echo "
<table class=\"me\">
<tr>
<td class=\"meh\">Użytkownik</td>
</tr>
<tr>
<td class=\"mec\">
Witaj <b>$user</b>!<br />
<a href=\"?akcja=wyloguj\">Wyloguj</a>
</td>
</tr>
</table><br />
";
}
}
login_test($_SESSION["auth"], $_SESSION["user"]);
?>


Ten kod jest wpisany w bazę danych. Na stronie mam normalne zapytanie mysql_query itp tak, że przywołuje skrypt z bazy. Jednak nie chce mi tego skryptu wykonać, a i próbowałem z <?php i <? dlatego to nie wina short tags. Dlaczeog?

Z głory dzięki za pomoc.
nospor
bo funkcje oprocz zadeklarowania nalezy jeszcze wywolac.
  1. <?php
  2. function jakas(){
  3. echo 'cos';
  4. }
  5.  
  6. //wywolanie
  7. jakas();
  8. ?>


edit down: ty moze tepy nie jestes, ale ja za to jestem slepy. sorki.
bartekvip
Łaaa. Tępy nie jestem. Pisze w tym dziale bo w dziale skrypty wyskoczyło mi, że nie mogę. Zobacz na koniec tego skryptu. Jest wywołanie z danymi.
nevt
a wywala ci jakieś błędy? sprawdź (tzn. włącz wyświetlanie błędów na serwerze php...)
podejrzewam, że nie powodzi się session_start() - skoro includujesz ten plik do innego, to prawdopodobnie już coś wysłałeś do przeglądarki... a session_start() musi być wywołane przed wysłaniem czegokolwiek...
bartekvip
Nie wywala błędów bo używam bufora ob_start(). Po za tym to minimalnie zmodyfikowałem ten skrypt i wstukałem ponownie do bazy danych. Oto ten skrypt:

CODE
function log_test($user, $auth){
if(!isset($user) || !isset($auth)){
echo "


LOGIN

Login:



Hasło:








";
} else {
echo "


Użytkownik



Witaj $user!

Wyloguj




";
}
}

log_test($_SESSION["auth"], $_SESSION["user"]);


Ciągle nie chce go wykonać.
nevt
tu masz tak:
Cytat
function log_test($user, $auth)

a wywołujesz tak:
Cytat
log_test($_SESSION["auth"], $_SESSION["user"]);

dodałem kolorki żeby lepiej było widać...
bartekvip
Ciągle tym manipuluje. Zrezygnowałem z funkcji na rzecz tego:
CODE
if(!isset($_SESSION["auth"]) || !isset($_SESSION["user"])){
echo "


LOGIN

Login:



Hasło:








";
} else {
echo "


Użytkownik



Witaj $user!

Wyloguj




";
}
?>


Jednak przeraża mnie to, że ta funkcja co była wcześniej nawet z błędem nie pokazywał, że coś nawala. A jak kogoś to naprowadzi to wrzucam powtórne wykonanie z bazy (takie)
CODE

if(!isset($_SESSION["auth"]) || !isset($_SESSION["user"])){
echo "
<form action=\\"login.php\\" method=\\"post\\">
<table class=\\"me\\">
<tr><td colspan=\\"2\\" class=\\"meh\\">LOGIN</td></tr>
<tr>
<td class=\\"mec\\">Login:</td>
<td class=\\"mec\\"><input type=\\"text\\" name=\\"login\\" size=\\"20\\" class=\\"site_login\\" /></td>
</tr>
<tr>
<td class=\\"mec\\">Has?o:</td>
<td class=\\"mec\\"><input type=\\"password\\" name=\\"pass\\" size=\\"20\\" class=\\"site_login\\" /></td>
</tr>
<tr[...]


Zmieniłem trochę jeszcze raz i teraz wygląda to tak
  1. <?
  2.  
  3.  if(!isset($_SESSION["auth"]) || !isset($_SESSION["user"])){
  4.  print('
  5.  <form action=login.php method=post>
  6.  <table class=me>
  7.  <tr><td colspan=2 class=meh>LOGIN</td></tr>
  8.  <tr>
  9.  <td class=mec>Login:</td>
  10.  <td class=mec><input type=text name=login size=20 class=site_login></td>
  11.  </tr>
  12.  <tr>
  13.  <td class=\"mec\">Hasło:</td>
  14.  <td class=mec><input type=password name=pass size=20 class=site_login></td>
  15.  </tr>
  16.  <tr>
  17.  <td colspan=2 align=center><input type=submit value=LOGUJ class=site_login></td>
  18.  </tr>
  19.  </table>
  20.  </form><br>
  21.  ');
  22.  } else {
  23.  print('
  24.  <table class=me>
  25.  <tr>
  26.  <td class=meh>Użytkownik</td>
  27.  </tr>
  28.  <tr>
  29.  <td class=mec>
  30.  Witaj <b>$user</b>!<br />
  31.  <a href=?akcja=wyloguj>Wyloguj</a>
  32.  </td>
  33.  </tr>
  34.  </table><br>
  35.  ');
  36.  }
  37.  ?>
Cienki1980
A czy w tym przypadku nie pomoże funkcja eval() questionmark.gif
Pytam się nieśmiało bo nie jestem przekonany w 100% ale mam takie niejasne wrażenie, że do tego to może się przydać.
bartekvip
W tym problem, że jak wpisałem w bazę danych nawet takie coś:
  1. <?
  2. $a = "cześć";
  3. echo $a;
  4. ?>


To nie może tego wykonać. Może to kwestia typu pola w tabeli. Pole to, w którym jest kod ma typ TEXT, bo jak wiem tylko takie mieszczą duże ciągi znaków.

Może pomoże to, że tak wygląda funkcja wyciągająca menu z bazy dancyh. Ona jest tylko w index.php umieszczona i przywoływana:
  1. <?php
  2. function menu_lewe($prefix){
  3. $zap = "SELECT `navi_name`, `navi_cont`, `navi_pos`, `navi_site` FROM `".$prefix."navi` WHERE `navi_site`='1' ORDER BY `navi_pos`";
  4. $wyk = mysql_query($zap);
  5. while($res = mysql_fetch_array($wyk)){
  6. echo "
  7. <table class=me>
  8. <tr><td class=meh>".$res[0]."<td></tr>
  9. <tr><td class=mec>".$res[1]."</td></tr>
  10. </table><br />
  11. ";
  12. }
  13. }
  14. ?>
Cienki1980
No to proponuje wykorzystać właśnie eval" title="Zobacz w manualu PHP" target="_manual
bartekvip
Spróbowałem. Teraz wyświetlanie wygląda tak:
  1. <?php
  2. function menu_lewe($prefix){
  3. $zap = "SELECT `navi_name`, `navi_cont`, `navi_pos`, `navi_site` FROM `".$prefix."navi` WHERE `navi_site`='1' ORDER BY `navi_pos`";
  4. $wyk = mysql_query($zap);
  5. while($res = mysql_fetch_array($wyk)){
  6. echo "
  7. <table class=me>
  8. <tr><td class=meh>".$res[0]."<td></tr>
  9. <tr><td class=mec>";
  10. $kod = eval($res[1]);
  11. echo $kod;
  12. echo "</td></tr>
  13. </table><br />
  14. ";
  15. }
  16. }
  17. ?>

I wybiło mi takie błędy:
Kod
[b]Parse error[/b]:  syntax error, unexpected '>' in [b]C:\xampp\htdocs\test\function.php(67) : eval()'d code[/b] on line [b]1[/b]


Dzięki. Pokombinowałem trochę i rozwiązałem problem funkcją eval(). Dzięki za pomoc.
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.