Avatar billede lisa99 Nybegynder
24. april 2003 - 09:01 Der er 14 kommentarer og
1 løsning

hvad betyder det her?

Warning: Cannot add header information - headers already sent by (output started at /usr/home/whitehat_dk/users/username/bibliotek_med_gaestebogen_i/gbog-ting/indstillinger.php:34) in /usr/home/whitehat_dk/users/username/bibliotek_med_gaestebogen_i/gem.php on line 103

hvad har jeg gjort forkert?
jeg er ved at lave en gæste bog ud fra webcafens simpel gæstebog
Avatar billede jensendk Nybegynder
24. april 2003 - 09:06 #1
Du har rettet i
Avatar billede jensendk Nybegynder
24. april 2003 - 09:06 #2
Hov.. Du har rettet  indstillinger, der outputter et eller andet..

Kan vi se dine rettelser?
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:07 #3
hvad?
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:08 #4
<?php

#
# Maa der bruges HTML i dine indlæg?
# Hvis ja, skal denne variabel sættes til "t" - ellers til "f" (True eller False)
#

$html_p = "f";

#
# Hvor mange indlæg skal vises ad gangen?
#

$antal_ad_gangen = 5;

#
# Hvor bred skal tabellen i gBogen vaere? (pixels)
#

$tabel_bredde = 500;

#
# Skal der sendes en epost til dig når der er nye indlæg?
#

$epost_p = "t";

#
# Hvis ovenstående er "t", hvor skal eposten så sendes hen?
#

$admin_epost = "monstar99@msn.com";

?>
Avatar billede dmdisco Nybegynder
24. april 2003 - 09:09 #5
der er et eller andet der skriver noget til skærmen før du bruger header
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:12 #6
<?php

require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");

/*
* Foerst napper vi variablerne fra miljoet.
*/

if(is_array($HTTP_POST_VARS)) {
  $navn = $HTTP_POST_VARS['navn'];
  $epost = $HTTP_POST_VARS['epost'];
  $besked = $HTTP_POST_VARS['besked'];
} elseif (is_array($_POST)) {
  $navn = $_POST['navn'];
  $epost = $_POST['epost'];
  $besked = $_POST['epost'];
}


/*
* Her er en simpel funktion der spytter en fejlmelding ud.
* Den bruger vi senere, når vi checker, at folk har skrevet noget i formularen.
*/

function gbog_fejl($fejl) {

    $generel_tekst = "<p>V&aelig;r venlig at g&aring; tilbage og ret til.</p>";

    $fejlmelding = "<ul>";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= "<li>". $fejl[$i];
    }

    $fejlmelding .= "</ul>";

    echo top("Fejl") . "G&aelig;stebogen brokkede sig lidt over dit input:" . $fejlmelding . $generel_tekst . bund();
    exit;

}

/*
* Denne funktion skriver i gæstebogen - altså i databasen.
* Bemærk, at vi ikke bruger PHP til at indsætte tiden, men
* bruger MySQLs indbyggede funktion now().
*/

function skriv_i_gbog($navn, $epost, $besked) {
   
    $ip = getenv('REMOTE_ADDR');

    $sql = "insert into gaestebog(navn,epost,besked,ip,tid)
        values('$navn','$epost','$besked','$ip',now())";

    aabn_forbindelse_og_vaelgdb();
    sql_spoerg($sql);
    luk_forbindelse();

}

/*
* Vi laver lidt simpelt fejlcheckeri og ser, om der overhovedet
* er skrevet noget. Hvis ikke, bruger vi fejlfunktionen til at brokke os.
* Fejlfunktionen slutter med "exit", der sørger for, at PHP stopper.
*/

if(!ereg("[A-z0-9]+", $navn)) {

    $fejl[] = "Du har ikke skrevet dit navn";

}

if(!ereg("[A-z0-9]+", $besked)) {

    $fejl[] = "Du har ikke skrevet nogen besked";

}

if(count($fejl) > 0) {
    gbog_fejl($fejl);
}

/*
* Hvis vi er nået hertil, så står der i det mindste et eller andet i felterne og vi
* knalder det i databasen med funktionen skriv_i_gbog().
* Vi escaper alle fyfy-tegn med addslashes(). Når vi senere præsenterer indholdet
* af gBogen bruger vi stripslashes() til at "afkode".
*
* Alt dette besvær er til for at folk ikke skal snige ondsindede SQL-kommandoer
* ind i deres indlæg. Nyere versioner af PHP gør alt dette automatisk,
* men vi kan godt li' at være på den sikre side.
*/

skriv_i_gbog(addslashes($navn),addslashes($epost),addslashes($besked));

/*
* Så er skidtet banket i databasen og vi sender folk videre til selve gBogen
* hvor de kan se deres eget indlæg.
*/

header("Location: gbog.php");

/*
* Skal der sendes epost til administratoren?
*
* Bemærk, at vi godt kan gøre dette selv om folk er sendt videre til gBogen.
* Der er ingen grund til at gæsterne skal vente på, at der bliver sendt
* post - derfor kommer det først allersidst.
*/

if($epost_p == "t") {

  $ip = getenv('REMOTE_ADDR');
  $epostens_indhold = "$navn har skrevet denne besked fra IP-adressen $REMOTE_ADDR:\n-----------------------------------------------------\n\n$besked";

  mail($admin_epost, "Der er skrevet i din gBog!", $epostens_indhold);

}

?>
Avatar billede avminarm Juniormester
24. april 2003 - 09:31 #7
prøv og fjerne denne linie i den ovenstående fil:

require("./gbog-ting/design-funktioner.php");
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:33 #8
det gør ingen forskel
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:34 #9
men det gjore at slette require("./gbog-ting/indstillinger.php");
Avatar billede ztyxx Nybegynder
24. april 2003 - 09:37 #10
du kan omgå det ved at indsætte, som det ALLERFØRSTE i dit script

<?php
ob_start();
?>

og som det ALLERSIDSTE

<?php
ob_end_flush();
?>
Avatar billede ztyxx Nybegynder
24. april 2003 - 09:40 #11
iøvrigt kan du læse om headers i manualen:
http://www.php.net/manual/en/function.header.php
særligt dette afsnit
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Avatar billede lisa99 Nybegynder
24. april 2003 - 09:41 #12
det gjore det, jeg har aldrig arbejdet med php eller mysql før så jeg synes det er gået meget godt det virker jo det hele nu takker
Avatar billede avminarm Juniormester
24. april 2003 - 09:53 #13
ztyxx>> det vel ikke den optimale løsning ? - er det ikke bedst at kode sig uden om ob's
Avatar billede ztyxx Nybegynder
24. april 2003 - 11:50 #14
avminarm> jeg mener ikke at der er noget galt i at gøre det, man kan jo have brug for at skulle sende flere headers, der kan konflikte med hinanden, og når det står beskrevet i manualen, uden at der henvises til at det ikke er optimalt, så tror jeg at der måske er en mening med funktionen, således at det ikke bare er dårlig kodeskik :-)

takker iøvrigt for point
Avatar billede avminarm Juniormester
24. april 2003 - 12:42 #15
tjaaa - du har jo en meget gor pointe der ;o)
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