Avatar billede klitberg Nybegynder
04. november 2004 - 16:48 Der er 8 kommentarer

Underligt redirect

Jeg er ved at lave et site i PHP hvor det bl.a. skal være muligt at læse nyheder, ulopade filer afstemninger og billeder osv. Jeg er dog løbet ind i et "sjovt" problem: Siden er begyndt at redirecte til forsiden hele tiden og jeg kan virkelig ikke se hvad der er galt. Den eneste side som bruger header('location:') er en side der heder login.php som så sender folk til siden forside.php som indeholder navigationen til siden samt en iframe hvor alle siderne så bliver vist i. Forsiden indeholder også et script der sender folk til login.php (jeg ved jeg sagde at der kun var en, men denne er altså den eneste undtagelse ;). forside.php kan sagtens hentes, men alle andre sider bliver hentet ned, og lige så snart man har set dem i browseren skifter de over til index siden. Jeg har tidligere includeret en fil der tjekkede om folk var logget ind på siden, men siden problemet startede har jeg fjernet den for at tjekke om det virkede, men det gjorde det ikke. Jeg har herunder inkluderet koden til front.php som er den første side der bliver vist:

<?php
include("included/phptop.php");

sqlConn();

$username = $_SESSION['username'];            //henter brugernavn og kodeord fra den super globale session variabel
$password = $_SESSION['password'];

$info = sqlQuery("select Firstname, Lastname, Rank from Users where Username = '$username'");  //henter bruger information

$news = sqlQuery("select
                        NewsID,
                        Description,
                        Poster,
                        Headline,
                        Date
                    from News order by NewsID desc limit 3");  //henter nyheder fra server

$AdminAfstem = mysql_query("select * from AdminAfstemninger order by AdminAfstemID desc");    //henter evt. admin afstemninger
if(!$AdminAfstem){
  $AdminAfstemResult = 0;
}

if($Beskeder > 0){
  $BeskederUnread = sqlQuery("select Date from Beskeder where To = '$user' AND where Read = '0'");
}

sqlClose();

top();

?>
<center>   
<?php
echo "<H1>Velkommen ombord " . $info['Rank'] . " " . $info['Firstname'] . " " . $info['Lastname'] . "</H1>";      //laver en dynamisk velkomsthilsen
?>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="580">
  <tr>
    <td width="100%" colspan="2">
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
      <tr>
<?
        for($i = 0; $i < sizeof($news); $i++){
        extract($news[$i]);
        if($i == 3){
        echo "</tr><tr>";
        }
        echo "
        <td width=\"290\">
          <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
              <tr>
                <td width=\"100%\" bgcolor=\"#CC0000\">";
        echo        $Headline;
        echo "
                </td>
              </tr>
              <tr>
                <td width=\"100%\">";
                echo "<font size=\"1\">Skrevet af ";
                    echo $Poster;
                    echo ", ";
                    echo makeDate($Date);
                echo "</font><BR><BR><font size=\"2\">";
                echo $Description;
                echo "</font>";
                echo " <a href=\"shownews.php?NewsID=$NewsID\" target=\"_self\"><font size=\"2\">Læs mere her!</a></font>
                </td>
              </tr>
              </table>
        </td>";
        if(($i == 3) && (sizeof($news) == 3)){
        echo "
        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
          <tr>
          <td width=\"100%\">
          </td>
          </tr>
          <tr>
          <td width=\"100%\">
          </td>
          </tr>
          </table> ";
        }
        if(($i == 1) && (sizeof($news) == 1)){
        echo "
        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
          <tr>
          <td width=\"100%\">
          </td>
          </tr>
          <tr>
          <td width=\"100%\">
          </td>
          </tr>
          </table>
          </tr>";
        }
        }
        if($i == 4){
        echo "</tr>";
        }
?>
      </tr>
    </table>
    </td>
  </tr>
  <tr>
    <td width="440">
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
      <tr>
        <td width="50%">&nbsp;</td>
      </tr>
    </table>
    </td>
    <td width="150">
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
      <tr>
        <td width="100%">&nbsp;</td>
      </tr>
    </table>
    </td>
  </tr>
</table>

<?php

bottom();

?>
Avatar billede jaw Nybegynder
04. november 2004 - 17:27 #1
I din login.php, bruger du så: Location: $_SERVER['PHP_SELF'] ? Hvis du så benytter "undersider", som f.eks. forside.php?page=news, så vil den kun sende til forside.php. Du skal i stedet benytte $_SERVER['REQUEST_URI'] mener jeg...
Avatar billede klitberg Nybegynder
04. november 2004 - 17:30 #2
i login bruger jeg location: "fordide.php"...
Avatar billede jaw Nybegynder
04. november 2004 - 17:33 #3
Så er det jo klart, at den vil redirecte til forsiden, hver gang du includer login.php der vel checker om brugeren er logget ind.

Prøv i stedet de 2 globale variabler jeg skrev ovenover :)
Avatar billede klitberg Nybegynder
04. november 2004 - 17:35 #4
jamen jeg includerer netop ikke login.php. Den bruges udelukkende til at tjekke om folk er registrerede når de logger ind fro index.htm. Desuden er det index.htm der redirectes til ;) (undskyld hvis jeg ikke har skrevet det klart nok )
Avatar billede jaw Nybegynder
04. november 2004 - 17:38 #5
Hvad så med din phptop.php? Den includer du. Sikker på den ikke indeholder noget snusk? :) Ovenstående kode, kan jeg i hvert fald ikke se burde redirecte noget som helst. Men checker du ikke kontinuerligt om brugeren er logget korrekt ind???
Avatar billede klitberg Nybegynder
04. november 2004 - 17:41 #6
det var meningen, men problemet startede da jeg begyndte på det...phptop.php ser således ud:

<?php

session_start();

require("included/functions.php");
?>

functions.php indeholder kun functioner (sql kald og dato konverter samt funktioner til at spytte html ud)
Avatar billede jaw Nybegynder
04. november 2004 - 17:43 #7
Ja, så kan jeg ikke hjælpe rigtig hjælpe dig desværre... For et eller andet sted, må du have noget der redirecter... :/

Og det er på alle de sider du har lavet, eller kun denne?
Avatar billede klitberg Nybegynder
04. november 2004 - 18:05 #8
phptop.php er på alle sider bortset fra forside.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester