Avatar billede bellagio Nybegynder
03. februar 2006 - 12:17 Der er 13 kommentarer og
2 løsninger

Redirect i popup eller nyt vindue. "header(" problem.

Jeg har et indexscript, hvor jeg har sat noget html kode ind før og efter scriptet for at få det til at se ud som resten af min side!

Problemet er nu, at den giver følgende fejl:

----
Warning: Cannot modify header information - headers already sent by (output started at .../index.php:13) in .../index.php on line 638

Redirection header could not be sent.
Continue here: ./billede.JPG
----

Jeg har ikke copy/pastet scriptet, da det er på 2800linier, men de relevante linier må være 636-641:

---
function redirect($site)
{
    header("Location: $site");
    die('<p>Redirection header could not be sent.<br />'
        ."Continue here: <a href=\"$site\">$site</a></p>");
}
---

Mit spørgsmål er nu, hvordan man løser dette problem? Det er udelukkende filer (jpg, mpeg, swf osv.) der kan klikkes på, så det ville ikke gøre noget hvis de bare blev åbnet i et nyt vindue, da de alligevel ikke skal vises inden i "siden".
Altså ligesom når man klikker på linket ./billede.JPG efterfølgende.

Nogle der ved hvad jeg kan gøre?
Avatar billede whatever Nybegynder
03. februar 2006 - 12:23 #1
Hvis du har udskrevet html-koder på linierne før linie 638, er det derfor at dit script fejler. Der må ikke outputtes noget til browseren inden du redirecter.
Avatar billede udvikler Nybegynder
03. februar 2006 - 12:39 #2
Du kan da også bare udskifte headeren med et meta redirect ? det er da næsten det samme.

<meta http-equiv="Refresh" content="0; url=http://www.domain.com/">
Avatar billede bellagio Nybegynder
03. februar 2006 - 12:53 #3
Nu er jeg ikke helt med? Fik jeg sagt at jeg ikke kan noget php :o)

Problemet er at scripet er en side i sig selv, men jeg vil have den ind og stå midt på min side: Fx.

|  Top af side  |
-------
script
-------
| Bund af side |

Men vil det sige, at der slet ikke må stå noget html kode før "<?" ? Før så kan det vel slet ikke lade sig gøre, at sætte scriptet ind på en side med min egen top og bund :(
Avatar billede udvikler Nybegynder
03. februar 2006 - 12:55 #4
aha, det du vil er altså at inkludere en hel fil og dens indhold i et dokument.
Det kan sagtens lade sig gøre.

bare indsæt denne kode:

<?php
include "sidenavn.html";
?>

du skal bare ændre sidenavnet og evt. endelsen af filen
Avatar billede bellagio Nybegynder
03. februar 2006 - 13:02 #5
Hvis jeg laver en fil der hedder bla.php og så includerer php-scriptet, så giver den samme fejl når jeg klikker på et link i den includerede php-fil...
Avatar billede udvikler Nybegynder
03. februar 2006 - 13:04 #6
har du husket at fjerne headeren ?
Avatar billede bellagio Nybegynder
03. februar 2006 - 13:08 #7
headeren?

Hvilken del er det jeg skal fjerne?
------
<html>
<head>
<title>domain</title>
<link href="../temp/style.css" type="text/css" rel="stylesheet">
</head>

<body>
    <div align=center>
        <table cellspacing=0 cellpadding=0 width=755 border=0>
            <tbody>
                <tr>
                    <td class=headerbg valign=top>
                        <img src="../temp/dot.gif" width="1" height="28">
                        <p valign=middle align=middle><span class="header">PHP script</span>
                        </p>
                    </td>
                </tr>
                <tr>
                    <td class=mainbg valign=top>
                        <table cellspacing=0 cellpadding=0 width="100%" border=0>
                            <tbody>
                                <tr>
                                    <td class=main valign=top width=400>
                                        <center>
                                           
<?php
include "index.php";
?>

                                        </center>
                                        <br>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td class=footerbg valign=top>
                        <table cellspacing=0 cellpadding=0 width="100%" border=0>
                            <tbody>
                                <tr>
                                    <td class=footer valign=top>Copyright 2005
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</body>

</html>
----
Avatar billede udvikler Nybegynder
03. februar 2006 - 13:13 #8
hvis det er hele dit dokument, vil det med garanti ikke give problemer.
Avatar billede bellagio Nybegynder
03. februar 2006 - 13:20 #9
Det der det... Men det virker ikke! Dokumentet er gemt som st.php., og det includerer php-scriptet perfect, men ligeså snart jeg klikker på et link i php-scriptet skriver den:

Warning: Cannot modify header information - headers already sent by (output started at .../blah/st.php:14) in .../blah/index.php on line 614

Redirection header could not be sent.
Continue here: ./billede.JPG
-----
Linie 614 i index 614 er linien med header( :
612 function redirect($site)
613 {
614     header("Location: $site");
615     die('<p>Redirection header could not be sent.<br />'
616         ."Continue here: <a href=\"$site\">$site</a></p>");
617 }

Derud over loader den ikke mere af st.php end indtil includen! Alt derefter undlades.
Avatar billede udvikler Nybegynder
03. februar 2006 - 13:25 #10
jamen så slet headeren på linie 614 i index.php

altså:

612 function redirect($site)
613 {
614    echo "<meta http-equiv="Refresh" content="0; url='$site'">";
615    die('<p>Redirection header could not be sent.<br />'
616        ."Continue here: <a href=\"$site\">$site</a></p>");
617 }
Avatar billede bellagio Nybegynder
03. februar 2006 - 13:43 #11
Så loader den igen bare toppen, og så skriver den:

Redirection header could not be sent.
Continue here: ./7-kabale.JPG

mens den reloader...

Igen er det sådan, at man kommer frem til den ønskede side ved at klikke på linket!

Kan man ikke sætte den til at redirecte til et nyt vindue? Eller til bare at åbne liket, og så droppe alt andet?
Avatar billede bellagio Nybegynder
03. februar 2006 - 14:30 #12
Hmm... Jeg havde så lavet en lille taste fejl! Problemet er at det stadig ikke virker: Hvis jeg skriver:
    echo '<meta http-equiv="Refresh" content="0; url=$site">';
så skriver den bare: Not Found - The requested URL .../$site was not found on this server.

Og hvis jeg skriver
    echo '<meta http-equiv="Refresh" content="0; url='$site'">';
skriver den: Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home/sv_xrtdk/blah/index.php on line 614
Avatar billede whatever Nybegynder
03. februar 2006 - 14:50 #13
Prøv dette:

612 function redirect($site)
613 {
614    echo "<meta http-equiv=\"Refresh\" content=\"0; url=".$site."\">";
615    die('<p>Redirection header could not be sent.<br />'
616        ."Continue here: <a href=\"$site\">$site</a></p>");
617 }
Avatar billede bellagio Nybegynder
03. februar 2006 - 15:09 #14
Yes... Det virkede super!

Og skulle jeg bare fjerne linie 615-616 og så virker det perfect!

Jeg kunne desværre ikke give jeg begge fuld point! Er det fair nok?

Mange tak for hjælpen
Avatar billede whatever Nybegynder
03. februar 2006 - 19:51 #15
Det er helt i orden.
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