Avatar billede Slettet bruger
20. februar 2005 - 23:06 Der er 22 kommentarer og
2 løsninger

Begynder mangler hurtig hjælp

Kan nogen fortælle mig, hvad der er galt med de to filer herunder.
Efter at have indtastet id i den første fil, sendes man videre til check-nummer.php.
Id SKAL indeholde '12'.
Hvis det er tilfældet, sendes man til skema.php, ellers sendes man til nummer-fejl.htm.

Men der er en fejl i skidtet, for uanset hvad jeg skriver, så får jeg fejlmeldingen:
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/psa/home/vhosts/fdp.dk/httpdocs/sk/check-nummer.php:2) in /usr/local/psa/home/vhosts/fdp.dk/httpdocs/sk/check-nummer.php on line 6




-------------------------------------------------------------------------
Første fil indeholder bl.a.
--------------------------------------------------------------------------
<FORM METHOD=GET ACTION="check-nummer.php">

ID: <INPUT NAME="id" TYPE="TEXT"><BR>

<BR>
<INPUT TYPE=SUBMIT value="Klik her for at sende">



---------------------------------------------------------------------------
Check-nummer.php
--------------------------------------------------------------------------

<?php
if(strpos($id,"12")===0)
{header("location:skema.php?id=$id");}
else
{header("location:nummer-fejl.htm");}
?>
Avatar billede Slettet bruger
20. februar 2005 - 23:08 #1
Og i linie 6 står der:

{header("location:nummer-fejl.htm");}
Avatar billede cyberesben Nybegynder
20. februar 2005 - 23:11 #2
Det er fordi du ikke må udskrive noget HTML kode inden du sender headeren - altså skal det afsnit hvor du sender en header afsted, placeres FØR du udskriver noget...

Check evt. at der ikke er tomme linjer eller mellemrum i din PHP fil inden det første afsnit kode starter
Avatar billede sthen Nybegynder
20. februar 2005 - 23:11 #3
Slet den blanke linie du har øverst i dit script
Avatar billede cyberesben Nybegynder
20. februar 2005 - 23:14 #4
i øvrigt, hvis du bare vil undersøge om id indeholder "12" så gør følgende:

<?
if(strstr($id) header("Location: location:skema.php?id=$id");
else header("Location:nummer-fejl.htm");
?>
Avatar billede cyberesben Nybegynder
20. februar 2005 - 23:15 #5
<?
if(strstr($id)) header("Location: location:skema.php?id=$id");
else header("Location:nummer-fejl.htm");
?>

Der var den :-)
Avatar billede Slettet bruger
20. februar 2005 - 23:25 #6
cyberesben: det forstår jeg ikke, der står ikke 12 nogen steder i din kode?
Avatar billede Slettet bruger
20. februar 2005 - 23:26 #7
Kunne du ikke skrive hele koden til Check-nummer.php
Avatar billede Slettet bruger
20. februar 2005 - 23:27 #8
sthen --> men du havde iøvrigt ret  :-)
Avatar billede Slettet bruger
20. februar 2005 - 23:41 #9
Hallo?
Avatar billede cyberesben Nybegynder
20. februar 2005 - 23:48 #10
ok jeg er træt...
<?
if(strstr($id,"12")) header("Location: location:skema.php?id=$id");
else header("Location:nummer-fejl.htm");
?>

men det korte af det lange er, som vi siger, at du skal sørge for at header kommandoen bliver udført INDEN der sendes andet til brugeren
Avatar billede Slettet bruger
20. februar 2005 - 23:50 #11
Jeg bliver stadig sendt det gale sted hen
Avatar billede Slettet bruger
20. februar 2005 - 23:54 #12
Men noget helt andet:

Den første fil er en html fil. Er det et problem (jeg mener, den har fungeret korrekt som html fil, men nu kommer jeg i tvivl)
Avatar billede cyberesben Nybegynder
20. februar 2005 - 23:58 #13
er du sikker på at din server registrerer $id en variabel?

ellers prøv at indsætte $id=$_REQUEST["id"];

øverst i scriptet
Avatar billede Slettet bruger
21. februar 2005 - 00:02 #14
indsætte hvor?
Avatar billede Slettet bruger
21. februar 2005 - 00:02 #15
i checknummer?
Avatar billede cyberesben Nybegynder
21. februar 2005 - 00:03 #16
ja... inden if sætningen
Avatar billede Slettet bruger
21. februar 2005 - 00:05 #17
så kommer jeg bare ind på check-nummer med en hvid side
Avatar billede sukos Juniormester
21. februar 2005 - 00:08 #18
Det med din header, er som sagt fordi du har output før din header, mellem, linieskift.

Men prøv med denne:


<?php

$text = "Klik på submit for at sende";


if(isset($_GET["id"])) {

    if(strstr($_GET["id"], "12")) {
    $text = "Jow, 12 blev fundet!";
    }else{
    $text = "NIX, 12 blev IKKE fundet!";
    }

}

?>



<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">

ID: <input type="text" name="id"><br /><br />
<input type="submit" value="Send">
</form>
<p>
<?php
echo $text;
?>
Avatar billede Slettet bruger
21. februar 2005 - 00:10 #19
Det fatter jeg ikke en brik af.
Hvor skal det stå?
Avatar billede Slettet bruger
21. februar 2005 - 00:14 #20
OK, det virker.
Avatar billede Slettet bruger
21. februar 2005 - 01:24 #21
Men jeg kan ikke få den til at sende mig videre.......
Avatar billede Slettet bruger
21. februar 2005 - 16:47 #22
Er der ikke en, som kan fortælle mig, hvordan jeg får skidtet til at sende brugeren videre i stedet for at skrive de to tekster?
Avatar billede cyberesben Nybegynder
21. februar 2005 - 22:03 #23
jo... erstat $text.... linjerne med dine header() kommandoer
Avatar billede Slettet bruger
21. februar 2005 - 22:16 #24
Tak for hjælpen - og for jeres tålmodighed :-)
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