Jump to content
php.lv forumi

Palīdziet mazliet... (par lapas navigāciju)


parrymason

Recommended Posts

Man ir šāds skripts lapā:

<?php
switch ($_REQUEST['lapa'])
  {
       case 'lapa1':
       include_once('lapas/lapa1.php');
       break;
       case 'lapa2':
       include_once('lapas/lapa2.php');
       break;
 case 'lapa3':
       include_once('lapas/lapa3.php');
       break;
       default:
       include_once('lapas/saturs.php');
       break;
   }
?>

 

Viss strādā, lapas mainās kā vajag, tikai ieejot index.php parādās tas saturs.php, bet vēl parādās arī šis:

Notice: Undefined index: sadala in e:\program files\easyphp1-7\www\index.php on line 21

Kas tur pietrūkst?

Edited by parrymason
Link to comment
Share on other sites

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
<title>Tests</title>
</head>

<body>

<div align="center">

<table border="1" width="800" height="800" cellspacing="0" cellpadding="0">
<tr>
 <td height="60" colspan="3"> </td>
</tr>
<tr>
 <td width="145" height="319" valign="top" background="wallbackground2.gif"><p><a href="http://localhost/tabula.php?sadala=lapa1">links 1</a></p>
    <p><a href="http://localhost/tabula.php?sadala=lapa2">links2</a></p>
    <p><a href="http://localhost/tabula.php?sadala=lapa3">links3</a> </p></td>
 <td width="504" height="319" valign="top">
 <?php switch ($_REQUEST['sadala'])
   {
       case 'lapa1':
       include_once('sadalas/lapa1.php');
       break;
       case 'lapa2':
       include_once('sadalas/lapa2.php');
       break;
 case 'lapa3':
       include_once('sadalas/lapa3.php');
       break;
       default:
       include_once('sadalas/saturs.php');
       break;
   }
?>
</td>
 <td width="143" height="319" valign="top" background="wallbackground2.gif"> </td>
</tr>
<tr>
 <td height="20" colspan="3"> </td>
</tr>
</table>

</div>

</body>

</html>

Link to comment
Share on other sites

pārveido

<?php switch ($_REQUEST['sadala'])

uz

<?php 
if (isset($_REQUEST['sadala']))
$sadala=parbaude($_REQUEST['sadala']);
else $sadala='';
switch ($sadala)

 

un switch vari pielikt default, kur apstrādāt visus izņēmuma gadījumus

Link to comment
Share on other sites

pārveido

<?php switch ($_REQUEST['sadala'])

uz

<?php 
if (isset($_REQUEST['sadala']))
$sadala=parbaude($_REQUEST['sadala']);
else $sadala='';
switch ($sadala)

 

un switch vari pielikt default, kur apstrādāt visus izņēmuma gadījumus

15689[/snapback]

 

Paldies! Vairāk problēmu nav, izņemot šo:

Fatal error: Call to undefined function: parbaude() in e:\program files\easyphp1-7\www\tabula.php on line 24

Kādai jābūt tai pārbaudei?

Edited by parrymason
Link to comment
Share on other sites

Paldies, viss strādā!

15694[/snapback]

 

Strādāt ta varbūt strādā, bet funkciju parbaude() nebiju ielicis velti. Bija domāts, ka tu aizdomāsies par lapas drošību, jo nepārbaudot mainīgo, kas tiek saņemts no linka, tu pieļauj lielu kļūdu drošības virzienā.

Link to comment
Share on other sites

Strādāt ta varbūt strādā, bet funkciju parbaude() nebiju ielicis velti. Bija domāts, ka tu aizdomāsies par lapas drošību, jo nepārbaudot mainīgo, kas tiek saņemts no linka, tu pieļauj lielu kļūdu drošības virzienā.

15695[/snapback]

 

Neesmu vēl tādu līmeni sasniedzis, lai pārzinātu drošības jautājumus. Manas pašreizējās lapas noteikti ir caurumainas un nedrošas, es pat nezinu, kā to pārbauda.

Link to comment
Share on other sites

liec realatīvos linkus

<a href="tabula.php?lapa=lapa2">links2</a>

<a href="../tabula.php?lapa=lapa2">links2</a>

utt.

 

Neesmu vēl tādu līmeni sasniedzis, lai pārzinātu drošības jautājumus

Ja jau reiz mācies, tad par to ar der painteresēties un padomāt.

Šajā gadījumā tiesa gan neko izdarīt nevar, bet, ja mainīgo $sadala izmantosi vēl kaut kur un nebūsi pārbaudījis, tad var rasties problēmas.

piem: select * from tabula where $id=$sadala;

include('aaa'.$sadala);

utt

Link to comment
Share on other sites

×
×
  • Create New...