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 | 1660 (1583) | Yacked2 |
» | PHP - Register formOddelek: Izdelava spletišč | 1921 (1549) | roli |
» | vstaviti phpbb na statično straniOddelek: Izdelava spletišč | 1536 (1391) | Tody |
» | Login scriptOddelek: Izdelava spletišč | 1555 (1426) | tec |
» | sessionsOddelek: Izdelava spletišč | 1458 (1320) | multiplayer |