Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Problem z sesją (undefined index)

Napisany przez: Kluczownik 25.01.2015, 02:30:20

Witam, mam problem. Otóż posiadam stronę internetową, jednak działa ona na zasadzie sesji i cały czas wywala błąd undefined index. Dotyczy on 'p' które jest wykorzystywane do przełączania się między zakładkami. Moje pytanie brzmi jak zdefiniować to 'p', żeby wszystko działało i nie wywalało błędów? Dodam, że po kliknięciu w logo, gdy przełącza wtedy na localhost/?p=start sesja się uruchamia i wszystko działą, problem w tym, że sesja nie uruchamia się bezpośrednio po otworzeniu strony, a jest to niezbędne. Proszę o pomoc smile.gif

Napisany przez: szajens 25.01.2015, 02:37:17

tam gdzie używasz $_GET['p']; użyj najpierw http://php.net/manual/pl/function.isset.php, jeżeli tego jest za dużo(plików do edycji) można zrobić w pliku głównym:

Kod
if (!isset($_GET['p']) {
$_GET['p']='';
}


choć moim zdaniem to nie estetyczne i nie zgodne z logika smile.gif

edit: jeżeli edytujesz post podawaj co edytujesz, edit2: nie null a '' (dwa apostrofy,czyli zmienna pusta ale zdefiniowana smile.gif za dużo piwa smile.gif)

Napisany przez: Kluczownik 25.01.2015, 03:02:11

Zrobiłem tak jak pisałeś po edicie, dodałem twój kod w głównym pliku (index.php) i wyświetla zamiast strony błąd: "Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\index.php on line 14". Co więc z tym zrobić?

Po ręcznym ustawianiu insertów są z kolei problemy z nie wyświetlaniem się podstron :/ Nie wiem więc czy to ja coś źle robię, czy ze stroną jest coś nie tak.

Napisany przez: szajens 25.01.2015, 03:19:23

przepraszam zjadłem jeden nawias:

  1. if (!http://www.php.net/isset($_GET['p'])) {
  2. $_GET['p']='';
  3. }


edit: jednak lepiej jakbyś wszędzie gdzie masz $_GET['p'] dał isset($_GET['p'])

po prostu wywala Tobie błąd notice, chodzi o to że isset sprawdza czy zmienna jest zdefiniowana, u Ciebie w pewnych wypadkach nie jest można poprawnie rozwiązać to tak:

Kod
<?php
if (isset( $_GET['p'])) {
$p = $_GET['p'];
} else {
$p = '';
}
?>


i w kodzie zamiast $_GET['p'] daj $p

Napisany przez: Kluczownik 25.01.2015, 03:24:57

Ok, działa smile.gif Dzięki wielkie wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)