Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Problem mit abfrage und include

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.04.2007, 15:42 Uhr
Heiko



Hallöchen,

ich will folgendes machen:
Ich habe eine indexdatei in der if und elseif abfragen drin sind.
beim aufruf der seite soll er nen übergebenen wert prüfen und je nach dem was drin steht eine andere datei includen.

nun ist das problem das diese funktion in 10 von 12 fällen funktioniert aber in 2 ebend nicht...
merkwürdig ist daran auch das es nur bei bestimmten übergabeparametern der fall ist
also:
index=00 -> ok
index=01 -> ok
index=02 -> ok
index=03 -> ok
index=04 -> ok
index=05 -> ok
index=06 -> ok
index=07 -> ok
index=08 -> fehler
index=09 -> fehler
index=10 -> ok
index=11 -> ok
index=12 -> ok

auszug aus meiner index.html:

PHP 4:
<div id="center_area">
        <? if(isset($_GET["index"])) {
             if(($_GET["index"]==00))    {include 'hp/i00.html';}
             elseif($_GET["index"]==01)  {include 'hp/i01.html';}
             elseif($_GET["index"]==02)  {include 'hp/i02.html';}
             elseif($_GET["index"]==03)  {include 'hp/i03.html';}
             elseif($_GET["index"]==04)  {include 'hp/i04.html';}
             elseif($_GET["index"]==05)  {include 'hp/i05.html';}
             elseif($_GET["index"]==06)  {
               if(isset($_GET["picid"])) {
                 if($_GET["picid"]==00) {
                   if(isset($_GET["picnr"])) {
                     if($_GET["picnr"]==00)      {include 'hp/pics/p001.html';}
                     elseif($_GET["picnr"]==01)  {include 'hp/pics/p002.html';}
                     elseif($_GET["picnr"]==02)  {include 'hp/pics/p003.html';}
                   }
                   else {
                     include 'hp/pics/p00t.html';
                   }
                 }
               }
               else {
                 include 'hp/i06.html';
               }
             }
             elseif($_GET["index"]==07)  {include 'hp/i07.html';}
             elseif($_GET["index"]==08)  {include 'hp/i08.html';} /*fehler*/
             elseif($_GET["index"]==09)  {include 'hp/i09.html';} /*fehler*/
             elseif($_GET["index"]==10)  {include 'hp/i10.html';}
             elseif($_GET["index"]==11)  {include 'hp/i11.html';}
             elseif($_GET["index"]==12)  {include 'hp/i12.html';}
           }
           else {
             include 'hp/i00.html';
           }
    ?>
    </div>



s01.html (menü ... von her erfolgt der aufruf der indexdatei mit dem entsprechenden parameter):


PHP 4:
<table border="0" width="160" cellspacing="0" cellpadding="1">
  <tr>
    <td width="100%"><span id="menutitle"><center><b>Navigation<b></center></span></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=00" class="menulink" class=&{ns4class};>&nbsp;Home</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=01" class="menulink" class=&{ns4class};>&nbsp;News</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=02" class="menulink" class=&{ns4class};>&nbsp;&Uuml;ber Mich</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=03" class="menulink" class=&{ns4class};>&nbsp;Berufliches</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=04" class="menulink" class==&{ns4class};>&nbsp;G&auml;stebuch</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=05" class="menulink" class=&{ns4class};>&nbsp;Forum</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=06" class="menulink" class=&{ns4class};>&nbsp;Bilder</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=07" class="menulink" class=&{ns4class};>&nbsp;Funstuff</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=08" class="menulink" class=&{ns4class};>&nbsp;Programmierung</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=09" class="menulink" class=&{ns4class};>&nbsp;Downloads</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=10" class="menulink" class=&{ns4class};>&nbsp;Links</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=11" class="menulink" class=&{ns4class};>&nbsp;Kontakt</a></td>
  </tr><tr>
    <td width="100%"><a href="index.html?index=12" class="menulink" class=&{ns4class};>&nbsp;Credits</a></td>
  </tr>
</table>



in den beiden datein die nicht gehen (index=08 und index=09) steht nur ein teststring drin

bin echt verzweifelt ...
--
Beuschen Sie
www.heiko-seifert.net
www.xn--wlfe-im-exil-4ib.de

Dieser Post wurde am 16.04.2007 um 15:47 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.04.2007, 17:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi,
mach mal "" um deine vergleiche:

== "00", == "01" usw

denn die integer-arithmetik ist bei php sehr interessant :P (da macht der z.b manchmal einfach aus 14.0 einfach mal 13.999 oder 14.01 )
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.04.2007, 05:49 Uhr
Heiko



okay ... danke jetzt funktioniert es ...
--
Beuschen Sie
www.heiko-seifert.net
www.xn--wlfe-im-exil-4ib.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.04.2007, 08:55 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Warum nimmst du eigentlich kein switch?
Und bei den IDs ist oft nicht schlecht zu prüfen mit if(is_numeric($_GET['id'])) - bringt ein bisschen Sicherheit

lg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.04.2007, 22:38 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Ich mache bei sowas eigentlich grundsätzlich am Anfang des Skripts sowas:

PHP 4:
$_POST['myID'] = (int)$_POST['myID'];


Das ist zwar keine Garantie dafür, dass die ID gültig ist, aber zumindest SQL-Injections kann man damit schonmal gut vorbeugen. Und man spart sich viele Sicherheitsabfragen im späteren Skript
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.04.2007, 21:18 Uhr
FunnyDingo



Was ich häufig in einem solchen Fall mache ist ein Array:

PHP 4:
$codes = array(
    '01' => 'file1',
    '02' => 'file2,
);

$file_to_include = null;
if(array_key_exists($_GET['
index'], $codes))
  $file_to_include = $codes[$_GET['
index']];
else
  $file_to_include = '
file1';
include($file_to_include);


Das kappt ganz gut. Da du den $_POST['code'] nur dann verwendest, wenn es den Key im Array auch gibt, kannst du sichersein, dass auch nur gültige Dateien (definiert in deinem Array) verwendet werden bzw. alternativ die "file1" (für den Fall das es den gewählten Code im Array nicht gibt - quasi Fallback). Außerdem lässt sich das Array schon fix erweitern und ist (so finde ich) übersichtlich.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de

Dieser Post wurde am 19.04.2007 um 21:20 Uhr von FunnyDingo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: