Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Prawdopodobny błąd składni - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Prawdopodobny błąd składni (/thread-prawdopodobny-blad-skladni)

Strony: 1 2


Prawdopodobny błąd składni - MatixYo - 09-10-2011

Witajcie,
Otóż napisałem taki skrypt:
Kod PHP:
<?php
$reg 
= include 'reg.php';
if (isset(
$_SESSION['user_id']) and isset($_SESSION['login']))
{
    echo
'<li><a href="profile.php">Mój Profil</a></li>
    <li><a href="unlog.php">Wyloguj się</a></li>'
;
}
else
{
    echo
'<li><a href="rejestracja.php">Rejestracja</a><div id="register"> $reg </div></li><li><a href="login.php">Logowanie</a><div id="login"></div></li>';
}
?>
Ten skrypt powinien ustawić zmienną $reg na zawartość pliku reg.php.
Następnie powinien sprawdzić czy user jest zalogowany i jesli nie to wyświetla przycisk "Rejestracja" i "Logowanie". Pod "Rejestracją" powinna pokazać się zawartość pliku $reg (panel rejestracji) jednak tak się nie dzieje. Mam więc do Was pytanie. W którym miejscy popełniłem błąd? Wydaje mi się, że to błąd składni po echo ale nie moge go dokładnie znaleźć.


RE: Prawdopodobny błąd składni - R_Rafalsky - 10-10-2011

wywal ten $reg z drugiej linijki
a echo tak:
Kod:
echo'<li><a href="rejestracja.php">Rejestracja</a><div id="register">';
include('reg.php');
echo '</div></li><li><a href="login.php">Logowanie</a><div id="login"></div></li>';


EDIT:
oczywisice w reg.php musisz mieć jakieś polecenie wyświetlające (np. echo) by coś się pojawiło


RE: Prawdopodobny błąd składni - MatixYo - 10-10-2011

Dzięki za pomoc. Ale mam jeszcze jeden problem otóż chciałbym żeby plik "reg.php" który jest załączony w kilku plikach wysyłał do tego pliku w którym się znajduję zmienną.
Oto fragment kodu:
Kod PHP:
$domain $_SERVER['SCRIPT_NAME']; 
Tutaj powinno nadać zmiennej "$domain" wartość lokalizacji w której znajduję się plik.
Następnie powinno wysłać do samego siebie zmienną:
Kod PHP:
<form action="$domain.php" method="post"
Niestety tak się nie dzieje. Bardzo proszę o pomoc
PS @up Reput poleciał


RE: Prawdopodobny błąd składni - R_Rafalsky - 10-10-2011

polecenie include powoduje import i wykonanie skryptu. więc mając taką sytuację

1. Główny plik $zmienna=5;
2. includujemy reg.php a w nim $zmienna=4;
3. główny plik: echo $zmienna - wyświetli 4;

Teraz tak. Nie wyświetla Ci się ponieważ dodajesz $domain po stronie HTML a nie PHP. Musisz przejść na PHP czyli
Kod:
<form action="<?php echo $domain.php; ?>" method="post">
między znacznikami
Kod:
<?php

?>
ładujemy kod PHP do wykonania. W naszym przypadku będzie to:
Kod:
echo $domain;

czyli wyświetlenie zmiennej $domain


RE: Prawdopodobny błąd składni - MatixYo - 11-10-2011

To wszystko jest w jednym PHP-ku.
Nadal jednak nie wiem jak zrobić żeby w zależności od tego gdzie reg.php jest includowany (właściwie to jest on podwójnie includowany tzn. najpierw jest includowany do pliku "menu.php" a potem ten plik jest includowany do (np. index).php) ustawiana była zmienna $domain która określa gdzie mają być wysłane dane z formularza.


RE: Prawdopodobny błąd składni - R_Rafalsky - 11-10-2011

Zaraz, zaraz bo chyba problemu nie rozumiem Smile

Includujemy reg z dowolnego miejsca tak? I w tym reg ma się pojawić link do tego miejsca gdzie includowaliśmy reg?
Jeżeli tak to przed includowaniem musisz ustawić zmienną a dopiero później includować reg. Wtedy masz w pamięci zmienną, którą może operować reg


RE: Prawdopodobny błąd składni - MatixYo - 11-10-2011

Właśnie nie działa. Kiedy w np. pliku index.php ustawie zmienną $domain = index.php to w zaincludowanym pliku reg.php nie będzie się ona wyświetlała kiedy podam echo $domain; (Wiem bo testowałem). Jest to mi potrzebne do tego żeby skrypt wracał użytkownika do strony która była przed zalogowaniem. W js da się chyba ustawić takie coś, że cofa usera o określona ilość stron. Czy w PHP też jest coś takiego?


RE: Prawdopodobny błąd składni - R_Rafalsky - 12-10-2011

Po logowaniu ma wracać do strony gdzie użytkownik był przed logowaniem?

Wykorzystaj tą zmienną $_SERVER['HTTP_REFERER' ]. Dostaniesz adres z którego nastąpiło wejście na daną stronę.


RE: Prawdopodobny błąd składni - MatixYo - 12-10-2011

(12-10-2011, 21:25)MatixYo napisał(a): Już chyba wiem jak to zrobić. Zamiast z 'include' spróbuje z 'require'.
Chyba się pośpieszyłem. Działa to tylko w jedną stronę, tak że z zarequire'owanego pliku pobiera zmienną do pliku w którym ten plik jest zarequirowany. W drugą zaś nie działa tzn. jeśli mam plik index.php i w nim ustawie zmienną
$zmienna = ('tresc_zmiennej') to w pliku zairequire'owanym nie wyświetli tej zmiennej. Podobnie będzie chyba z $_SERVER['HTTP_REFERER' ]. Tą zmienną dostaje chyba tylko strona główna a plik zarequire'owany jej nie dostanie. Mógłbym to jeszcze zrobić tak, że po zalogowaniu przenosiło by do strony która cofałaby o dwa (najpierw do logowania a potem do strony z której user się logował) ale to wymagałoby js a tego staram się unikać.


RE: Prawdopodobny błąd składni - KowR - 13-10-2011

Zasięg zmiennych... Wink http://php.net/manual/pl/language.variables.scope.php

Poczytaj trochę w manualu. To biblia każdego programisty i nie ważne czy PHP czy Pythona, manual to podstawa.