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šč | 2134 (1762) | roli | 
| » | vstaviti phpbb na statično straniOddelek: Izdelava spletišč | 1734 (1589) | Tody | 
| » | Login scriptOddelek: Izdelava spletišč | 1715 (1586) | tec | 
| » | sessionsOddelek: Izdelava spletišč | 1609 (1471) | multiplayer |