heh.pl
Kanał informacyjny Heh.pl


Piątek 3 maja 2024 r.

artykuły | abc komputera (archiwum) | forum dyskusyjne | redakcja


Temat

PHP - czy jest funkcja negująca?


195.205.63.* napisał:
czy istnieje jakaś funkcja języka PHP negująca. Ogólnie rzecz biorąc chcę uzyskać następujący efekt: link, którego wartość po kliknięciu zmieniałaby się (np. włącz, wyłącz). najłatwiej byłoby to zrobić niegując na zmianę zero i jedynkę. ale czy php daje taką możliwość. czy jest inny sposób (krótki)

80.53.147.* napisał:
Nie rozumiem co masz dokładnie na myśli. Negację w php uzyskuje się na przykład przez wstawienie '!' przed wyrażeniem.

195.205.63.* napisał:
juz wyjasniam

chce zeby po kazdorazowym kliknieciu w link, strona odswiezala sie (i wykonywala jakies zadanie query string). ale za kazdym kliknieciem (i odswiezeniem) zmienna x ma przybierac wartosc - raz 0, raz 1. troche lopatologii smile.gif : klikam - 1, klikam - 0, klikam -1, klikam - 0. i tak dalej. smile.gif

83.16.51.* napisał:
Moglbys zapisywac ta zmienna w pliku, ale ze strone uzytkuje zwykle wiecej niz jedna osoba, to trzeba stworzyc sesje z okreslonym czasem wygasniecia i zapisywac zmienna do pliku razem z idnetyfikatorem sesji dla danego uzytkownika.
Ewentualnie kazdemu uzytkownikowi do oddzielnego pliku (o nazwie zgodnej s SessionID) a po przerwaniu sesji kasowac plik, ale wtedy i tak mialbys na serwerze w zaleznosci od liczby odwiedzien od 10 do 100 plikow...
Uzycie sesji jest tutaj konieczne, aby nie skasowac wartosci uzytkownikowi, ktory nadal jest na stronie.

UPDATE:
Jest tez prostszy sposob - przesylasz zmienna w query string:
domena.pl/index.php?klik=1
a potem odczytujesz ostatni znak (wartosc 1 lub 0) i odpowiednio zmieniasz:
na poczatku masz:
[php:1:16cee9a6db]$klik = substr(getenv("QUERY_STRING"), 5);[/php:1:16cee9a6db]

a przy tworzeniu linku (wewnatrz strony) masz:
[php:1:16cee9a6db]if klik == '1' then echo "<a href=index.php?klik=0..";
if klik == '0' then echo "<a href=index.php?klik=1..";[/php:1:16cee9a6db]
Nie jestem pewien co do tego porownania, bo dopiero ucze sie PHP i pisalem z glowy..

80.53.147.* napisał:
Jest kilka sposobów. Nie ma co pchać się z tym do pliku.
Można to rozwiązać dynamicznie używając na przykład java script.
Ale jeśli chodzi o php to m/w tak jak podał ULLISSES - można przekazać ją do skryptu poprzez metodę post/get.

ULLISSES: ten przykład co podałeś jest dość poważnym błędem. A co gdy będzie url/index.php?klik=1&zmienna1=coś ?

[php:1:be48890ebd]
<?
if ( isset($HTTP_GET_VARS['klik'])) {
$klik = intval($HTTP_GET_VARS['klik']);
if ($klik == 1) echo "<a href="" . basename($_SERVER['PHP_SELF']) . "?klik=0">cośtam0</a>";
else echo "<a href="" . basename($_SERVER['PHP_SELF']) . "?klik=1">cośtam1</a>";

}
[/php:1:be48890ebd]

212.109.132.* napisał:
Mozna tez uzyc sesji jako mechanizmu przekazywania zmiennych miedzy kolejnymi odslonami.. po to zostaly stworzone smile.gif

80.53.147.* napisał:
Albo użyć ciacha ;]

83.16.51.* napisał:


Tzn ja to napisalem bardzo ogolnie, aby wytlumaczyc o co mi chodzi - nie bralem pod uwage pozostalych parametrow, bo w pytaniu nie bylo o tym slowa - chcial przelaczac zmienna to przelacza...
Oczywiscie, jak ktos chce wiecej zmiennych przekazywac, to juz trzeba uzyc twojego kodu.

212.109.132.* napisał:

Ale to jest zalezne od konfiguracji przegladarki klienta, a sesje nie tongue.gif

Podobne tematy


Działy









Copyright © 2002-2024 | Prywatność | Load: 3.11 | SQL: 1 | Uptime: 521 days, 3:05 h:m | Wszelkie uwagi prosimy zgłaszać pod adresem eddy@heh.pl