Forum » Izdelava spletišč » [php] Problem z dinamično stranjo
[php] Problem z dinamično stranjo

Iskraman ::
Imam tole kodo:
Seveda potem link zgleda takole: index.php?stran=1
Sedaj pa me zanima, kaj narest, da bom lahko v te vključene fajle dal link in bo potem povezava zgledala npr. takole: index.php?stran=1&podstran=2?
<?PHP
$stran = $_GET['stran'];
if (!isset($_GET['stran'])) {
$file = ('domov.php');
}
if ($stran == '1') {
$file = ('1.php');
}
if ($stran == '2') {
$file = ('2.php');
}
if ($stran == '3') {
$file = ('3.php');
}
if ($stran == '4') {
$file = ('4.php');
}
include $file;
?>
Seveda potem link zgleda takole: index.php?stran=1
Sedaj pa me zanima, kaj narest, da bom lahko v te vključene fajle dal link in bo potem povezava zgledala npr. takole: index.php?stran=1&podstran=2?

mile ::
<?
if (isset($_GET['stran'])) {
switch ($_GET['stran'])
{
case '1':
$file = '1.php';
break;
case '2':
$file = '2.php';
break;
case '3':
$file = '3.php';
break;
default:
$file = 'domov.php';
break;
}
}
else
{
$file = 'domov.php';
}
if (isset($_GET['podstran']))
{
$_GLOBAL['podstran']=$_GET['podstran'];
}
else
{
$_GLOBAL['podstran']=0;
}
include $file;
?>
in potem domov.php recimo
<?
echo "Podstran: ".$_GLOBAL['podstran'];
?>

Iskraman ::
mile hvala lepa za tvoj trud, vendar sem stvar na koncu rešil takole:
<?php
if (!isset($_GET['stran'])) {
$file = ('domov.php');
}
if ($_GET['stran'] == '1') {
$file = ('1.php');
}
if ($_GET['stran'] == '2') {
$file = ('2.php');
}
if ($_GET['stran'] == '3') {
$file = ('3.php');
}
if ($_GET['stran'] == '4') {
$file = ('4.php');
}
if ($_GET['stran'] == '4') {
if ($_GET['podstran'] == '1') {
$file = ('podstran1.php');
}
if ($_GET['podstran'] == '2') {
$file = ('podstran2.php');
}
}
include $file;
?>


mile ::
v tvoji kodi nimas definiran, ce nekdo vnese url "index.php?stran=5"
/edit: typo
/edit: typo
Zgodovina sprememb…
- spremenil: mile ()

Iskraman ::
Pa res, če vnesem tak url, mi vrne napako. A je možno narediti tako, da bi mi vrnilo da stran ne obstaja(404 error)?

mile ::
poglej mojo kodo, ima več kontrole nad vhodnimi podatki ,mogoce dodas se kaksen
if (file_exists($page))
{
include($page);
}
else
{
include('404.php');
}

Iskraman ::
Da ne bom odpiral nove teme:
Imam probleme s session-ni. Če v stran vključim tole kodo za prijavo, mi vrne to napako:
vendar me prijavi!
Če pa session_start(); prestavim čisto na začetek strani, pa napake ni več, vendar se pojavi problem pri odjavi; vedno, ko se hočem odjavit, moram dvakrat kliknit na odjava, ker v prvo ostanem prijavljen, čeprav napiše da sem odjavljen? Ideje?
Imam probleme s session-ni. Če v stran vključim tole kodo za prijavo, mi vrne to napako:
Warning: session_start(): Cannot send session cache limiter - headers already
sent (output started at /home/r2gastar/public_html/cms/index.php:3) in
/home/r2gastar/public_html/cms/index.php on line 118
vendar me prijavi!
Če pa session_start(); prestavim čisto na začetek strani, pa napake ni več, vendar se pojavi problem pri odjavi; vedno, ko se hočem odjavit, moram dvakrat kliknit na odjava, ker v prvo ostanem prijavljen, čeprav napiše da sem odjavljen? Ideje?

Jester ::
poglej si: ob_start (); in ob_end_flush();
drugače pa je pomoje problem v datoteki kjer imaš skripto za odjavo
drugače pa je pomoje problem v datoteki kjer imaš skripto za odjavo
HP notebook, AMD Turion 64 1,6 GHz, 512 MB RAM, ATI Radeon X300 128 MB

Iskraman ::
Skripta za odjavo:
<?php
unset($_SESSION['prijava']);
unset($_SESSION['uporabnik']);
unset($_SESSION['id']);
$_SESSION = array();
session_destroy();
echo "Sedaj ste odjavljeni";
?>

Jester ::
hja...se mi zdi da vem v čem je problem...
najprej se ti izvede skripta login.php potem pa še skripta za odjavo.
se pravi.....session za prijavo obstaja....ti z skripto za login preveriš če obstaja....izpišeš kot da je uporabnik logiran...potem pa z skripto za odjavo destroyaš session
ti moraš zamenjat vrstni red....predlagam ti da na začetek login skripte dodaš tole:
if ($_GET['stran'] == "odjava") {
unset($_SESSION['prijava']);
unset($_SESSION['uporabnik']);
unset($_SESSION['id']);
$_SESSION = array();
session_destroy();
}
potem pa v skripto za odjavo napišeš samo to:
echo "Sedaj ste odjavljeni";
lp primož
najprej se ti izvede skripta login.php potem pa še skripta za odjavo.
se pravi.....session za prijavo obstaja....ti z skripto za login preveriš če obstaja....izpišeš kot da je uporabnik logiran...potem pa z skripto za odjavo destroyaš session
ti moraš zamenjat vrstni red....predlagam ti da na začetek login skripte dodaš tole:
if ($_GET['stran'] == "odjava") {
unset($_SESSION['prijava']);
unset($_SESSION['uporabnik']);
unset($_SESSION['id']);
$_SESSION = array();
session_destroy();
}
potem pa v skripto za odjavo napišeš samo to:
echo "Sedaj ste odjavljeni";
lp primož
HP notebook, AMD Turion 64 1,6 GHz, 512 MB RAM, ATI Radeon X300 128 MB
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [php] Cookie lost after headerOddelek: Programiranje | 1766 (1689) | Yacked2 |
» | PHP - Register formOddelek: Izdelava spletišč | 2031 (1659) | roli |
» | vstaviti phpbb na statično straniOddelek: Izdelava spletišč | 1622 (1477) | Tody |
» | Login scriptOddelek: Izdelava spletišč | 1630 (1501) | tec |
» | sessionsOddelek: Izdelava spletišč | 1533 (1395) | multiplayer |