Avatar billede stricker Nybegynder
11. oktober 2002 - 10:26 Der er 13 kommentarer og
1 løsning

form i php

Hej!

jeg er ny i php. Jeg har installeret en apache webserver 2.0 og php 4.2.3. Når jeg laver en test-side som den her:

<? phpinfo(); ?>

Og gemmer den som test.php virker det helt fint.
Hvis jeg laver en simpel form side som denne:
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nyheder</title>
</head>

<body>
<P>Nyheder :
<br>
<form action="test.php" method=GET>
<BR><input type="text" name="news" size="20">
<BR>
<p><input type="submit" name="submit" value="send">

<input type="reset">
</body>

</html>

Gemmer den som nyheder.html.

Min test-side ser nu sådan her ud:

<html>
<head>
<title>test</title>
</head>
<body>

<?php
      print("<b>Nyheder: <p>$news</p>");
?> 
</body>
</html>

Når jeg trykker send i nyheder.html linker den fint til test.php siden, men siden er helt blank.

Hvad er galt?
Avatar billede -ulli- Nybegynder
11. oktober 2002 - 10:27 #1
brug post som method
Avatar billede -ulli- Nybegynder
11. oktober 2002 - 10:27 #2
<form action="test.php" method=POST>
Avatar billede -ulli- Nybegynder
11. oktober 2002 - 10:29 #3
<?php
      print("<b>Nyheder: <p>".$news."</p>");
?> 

i test.php
Avatar billede stricker Nybegynder
11. oktober 2002 - 10:40 #4
Jeg har gjort som du har skrevet, men det eneste der står på test.php er Nyheder. der er intet fra formen.
Avatar billede amerikaner Nybegynder
11. oktober 2002 - 10:42 #5
OK ulli teknisk rigtig men vi vil gerne har stricker læare noget.

Du send data som var defineret (oh to hell with it - English) You send the data you defined in the form "news" to the next form, this is done with POST.

The other problem with the PHP is when you what clear text to be printed on the screen, you use echo or print and always quotes on both sides of what you want printed.  Values are decoded so the $news is NOT in quotes. 

Another way to accomplish the same sentence is only have the $news compiled by php.

<b>Nyheder: <p><?php print $news; ?></p> or
<b>Nyheder: <p><?php echo $news; ?></p>

Remember the two most common errors at the begining are
  All lines end with ; and remember to close at parentheses } when you use them.
Avatar billede jakoba Nybegynder
11. oktober 2002 - 10:43 #6
i de seneste php versioner er der ændret lidt i hvordan formfelternes værdier læses af php: http://dk.php.net/manual/en/language.variables.external.php

prøv med:
<?php
      if ( isset( $_POST ) extract( $_POST );
      print("<b>Nyheder: <p>".$news."</p>");
?>

mvh JakobA
Avatar billede jakoba Nybegynder
11. oktober 2002 - 10:46 #7
PS:  welkomme to amarikaner :-)
Avatar billede stricker Nybegynder
11. oktober 2002 - 10:47 #8
<Jacob>
Hvis jeg prøver dit forslag for jeg følgende fejlmeddelse:
Parse error: parse error, unexpected T_STRING in c:\Apache2\htdocs\dacapo.php on line 8
Avatar billede jakoba Nybegynder
11. oktober 2002 - 10:50 #9
det er fordi jeg lavede en af der der almindeligste fejl. afsluttede ikke if-betingelsens parentes :(
det skal være:
      if ( isset( $_POST ) ) extract( $_POST );
Avatar billede stricker Nybegynder
11. oktober 2002 - 10:54 #10
<Jacoba>

Nu virker det. Det vil sige de andre metoder virker ikke  med denne version af php.

Tak for hjælpen til jer alle.
Avatar billede stricker Nybegynder
11. oktober 2002 - 10:54 #11
<Jacoba>
Du får pointene. Men jeg kan kun vælge -ulli-.
Avatar billede jakoba Nybegynder
11. oktober 2002 - 11:06 #12
ullis rettelse var også korrekt. hans point

ja og nej, der afhænger af hvilken phpversion du har og hvordan den er indstillet. Ved at indsætte den der linie
      if ( isset( $_POST ) ) extract( $_POST );
eller de tilsvarende:
      if ( isset( $_GET ) ) extract( $_GET );  // formdata sendt med GET
      if ( isset( $_SERVER ) ) extract( $_SERVER ); // server variable

vil du kunne bruge de fleste af de eksempler der står i din bog eller tutorial.

mvh JakobA
Avatar billede stricker Nybegynder
11. oktober 2002 - 11:11 #13
<Jacoba>
Tak for ekspertisen.

MvH Stricker
Avatar billede Noone Nybegynder
11. oktober 2002 - 11:12 #14
Hmmm.. Et andet alternativ er at lære den nye metode...

Med GET som method er det $_GET['news'] der gemmer datane, men POST er der $_POST['news']
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