Gå til innhold

Header-problemer


Anbefalte innlegg

Jeg får opp denne feilen, når jeg legger til header-funksjonen:

 

Warning: Cannot modify header information - headers already sent by (output started at....

 

Her er PHP-koden:

 

if (isset($_POST['lastopp'])) {
$tilkobling = mysql_connect("localhost", "root", "");
mysql_select_db ("skatetube", $tilkobling);
$sql = "INSERT INTO video
(videotittel, videolink, bruker, videobeskrivelse)
VALUES 
('" . $_POST['videotittel'] . "', '" . $_POST['videolink'] . "', '$bruker', '" . $_POST['videobeskrivelse'] . "');";
$resultat = mysql_query($sql, $tilkobling);
header("Location: profil.php");
exit;
}

 

Hva er galt? Takk på forhånd:)

Endret av webby1
Lenke til kommentar
Videoannonse
Annonse

Først av alt, vis oss heile feilmeldinga, og linjane som nemnes i feilmeldinga.

 

Tipper på at du allereie har brukt ein funksjon som resulterer i html (echo, print, skrive ting utenfor <?php ?>), noko som gjer at du ikkje kan bruke header-funksjonen. header() må alltid komme før alle ting som outputtes i "vis kildekode".

Lenke til kommentar

Legger til hele feilmeldingen og php-koden:

 

Warning: Cannot modify header information - headers already sent by (output started at /var/www/arbeid/skatetube/avi.php:14) in /var/www/arbeid/skatetube/avi.php on line 147

 

if (isset($_SESSION['innlogget'])) {

$tilkobling = mysql_connect("localhost", "root", "");

mysql_select_db ("skatetube", $tilkobling);



$query = "SELECT * FROM kontoer WHERE bruker='" . $_SESSION['navn'] . "'";

$result = mysql_query($query, $tilkobling);

if ($r = mysql_fetch_array($result)) {
$bruker = $r['bruker'];
$passord = $r['passord'];
$kontoid = $r['kontoid'];
$navn = $r['navn'];
$hjemsted = $r['hjemsted'];
$fodt = $r['alder'];
$mail = $r['mail'];
$biografi = $r['biografi'];

echo '<div id="wrap">
    <div id="header">
         <div id="hleft">
              <a href="profil.php" id="logo"></a>
              <ul id="menu">
                  <li><a href="#"><span class="bla">Last opp</span></a></li>
                  <li><a href="#"><span class="gronn">Topp 20</span></a></li>
                  <li><a href="#"><span class="rosa">Om oss</span></a></li>
              </ul>
              <div class="hfooter"></div>
              <input type="text" size="50" id="sok" name="bruker">
              <input type="submit" name="knapp" class="knapp" value="Sk">
         </div>

         <div id="hright">
              <div id="hboks">
                   <div id="boksl">
                   <h2>'; 

                   if ($navn == true){
                   echo $navn;
                   }

                   else { 
                   echo $bruker;
                   }

                   echo '</h2>
                   <div id="bruker">
                        <ul>
                            <li><a href="#"><span>Meldinger</span></a></li>
                            <li><a href="#"><span>Favoritter</span></a></li>
                            <li><a href="#"><span>Venner</span></a></li>
                            <li><a href="innstillinger.php"><span>Innstillinger</span></a></li>
                        </ul>

                   </div>
              </div>
         </div>     
    </div>
    <div class="hfooter"></div>
    <div id="innhold">
         <div id="venstre">';

echo '<div id="lastopp">';
echo '<h3>Filtype: AVI</h3>';
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
 //Check if the file is JPEG image and it's size is less than 350Kb
 $filename = basename($_FILES['uploaded_file']['name']);
 $ext = substr($filename, strrpos($filename, '.') + 1);
 if (($ext == "avi")  && ($_FILES["uploaded_file"]["type"] == "video/x-msvideo") && 
   ($_FILES["uploaded_file"]["size"] < 104857643243)) {
   //Determine the path to which we want to save this file
     $newname = dirname(__FILE__).'/upload/'.$filename;
     //Check if the file with the same name is already exists on the server
     if (!file_exists($newname)) {
       //Attempt to move the uploaded file to it's new place
       if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
          echo "Opplasting var vellykket! Klikk p lagreknappen for  publisere videoen";
       } else {
          echo "En feil oppsto under opplasting. Pr¿v igjen";
       }
     } else {
        echo "".$_FILES["uploaded_file"]["name"]." eksisterer allerede i vr database";
     }
 } else {
    echo "Feil: Valg av feil filtype eller for stor video. Maks: 100 MB";
 }
} else {
echo "";
}

echo '<div class="lasten">';
echo '  <form enctype="multipart/form-data" action="" method="post">
   <input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
   <input name="uploaded_file" type="file" />
   <input type="submit" value="Upload" class="knappen" />
 </form> ';
echo '</div>';

        echo '
               <form action="" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();">
                <ul>                    
';    
                echo '<li><input type="text" name="videolink" class="last" value="'. $_FILES['uploaded_file']['name'] .'" /><label>Filnavn</label></li>
                   <li><input type="text" name="videotittel" class="last" /><label>Tittel</li>
                   <li><textarea name="videobeskrivelse" id="sqlquery"  cols="40"  rows="8.75"></textarea><label class="area">Beskrivelse</label></li>
                   <li><input type="submit" name="lastopp" value="Legg til video" class="last" />
                   </ul>';

                       echo' </label>
                    </p>
                  </li>
                </form>';


                if (isset($_POST['lastopp'])) {
$tilkobling = mysql_connect("localhost", "root", "");
mysql_select_db ("skatetube", $tilkobling);
$sql = "INSERT INTO video
(videotittel, videolink, bruker, videobeskrivelse)
VALUES 
('" . $_POST['videotittel'] . "', '" . $_POST['videolink'] . "', '$bruker', '" . $_POST['videobeskrivelse'] . "');";
$resultat = mysql_query($sql, $tilkobling);
header( "refresh:5;url=avi.php" );
exit;
                }

                else {

                }

   echo '</div>';
   echo '</div>';
         echo '</div>

         <div id="hoyre">
              <div id="siste">
                   <h3>Mine videoer</h3>
                   <ul>

                   </ul>
                   <div class="hfooter"></div>
                   <p><a href="video.php">Legg til video</a><br />
                   <a href="#">Flere videoer</a></p>
              </div>
              <div id="topp">

              </div>
         </div>
    </div>

</div></div>
<div class="hfooter"></div>
<div id="footer"></div>';
}


else {}
}

else {
echo "Du er ikke logget inn";
} 

Lenke til kommentar

Jeg siterer JarlG, som har fullstendig rett:

 

Tipper på at du allereie har brukt ein funksjon som resulterer i html (echo, print, skrive ting utenfor <?php ?>), noko som gjer at du ikkje kan bruke header-funksjonen. header() må alltid komme før alle ting som outputtes i "vis kildekode".

Lenke til kommentar

På linje 131:

header( "refresh:5;url=avi.php" );

Bytt til:

echo '<head><meta http-equiv="refresh" content="5; URL=avi.php"></head>';

Du bør ha en veldig god forklaring på hvorfor trådstarter skal gjøre dette. Har du lest koden han postet? Er du klar over at man ikke kan bruke meta-taggen midt inne i et dokument på den måten? Jeg skal ikke en gang begynne å snakke om

!
Lenke til kommentar

Jeg skulle ha presisert at det var en dårlig idé, sorry!

 

Når det er sagt så er jeg ganske sikker på at meta tag fungerer selv i body, nå ser jeg ingen som helst antydning til hverken head eller body i dette dokumentet, men mulig ikke hele koden vises. Beste hadde selvsagt vært å ikke gi noen output først. Finnes det et bra alternativ til meta refresh som er gyldig? I såfall vil jeg gjerne høre hva det er! vel, javascript skal vel alltids funke da men.

Lenke til kommentar

Når det er sagt så er jeg ganske sikker på at meta tag fungerer selv i body [...]

http://htmldog.com/r.../htmltags/meta/

 

Jeg mener fortsatt det beste løsningen er å bruke output buffering eller lignende. Javascript vil kun fungere hvis brukeren har aktivert det, så det er dumt å la en så viktig funksjon være avhengig av noe brukeren ikke nødvendigvis har.

Jeg er fullstendig klar over at taggen ikke skal plasseres utenfor header, men det betyr ikke at det IKKE funker.

 

Bare for å være sikker så testet jeg nå denne koden og det fungerte i Chrome, FireFox og Internet explorer:

<html><head><title>test</title></head><body>
<p>hei</p>
<meta http-equiv="refresh" content="5; URL=http://vg.no">

</body>
</html> 

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...