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 | 1893 (1816) | Yacked2 |
| » | PHP - Register formOddelek: Izdelava spletišč | 2131 (1759) | roli |
| » | vstaviti phpbb na statično straniOddelek: Izdelava spletišč | 1733 (1588) | Tody |
| » | Login scriptOddelek: Izdelava spletišč | 1715 (1586) | tec |
| » | sessionsOddelek: Izdelava spletišč | 1607 (1469) | multiplayer |