Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Prawdopodobny błąd składni
#1
Question 
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źć.
Odpowiedz
#2
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
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#3
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ł
Odpowiedz
#4
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
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#5
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.
Odpowiedz
#6
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
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#7
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?
Odpowiedz
#8
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ę.
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#9
(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ć.
Odpowiedz
#10
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.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Gdzie tu w zapytaniu jest błąd. Intelactive 7 5,166 23-10-2012, 16:04
Ostatni post: Intelactive
Question XAMPP i błąd UAC Moody 1 1,999 20-07-2012, 16:56
Ostatni post: Pedro84
Question [SQL, Razor, HTML] Błąd wczytania parametru z bazy danych Golus 2 3,157 29-03-2012, 18:46
Ostatni post: Golus
  Błąd serwera 500 tylko w Internet Explorer R_Rafalsky 3 3,100 24-10-2011, 18:02
Ostatni post: urlsite
MyBB Błąd na stronie. Lacov 4 3,555 31-03-2011, 05:39
Ostatni post: R_Rafalsky

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl