Avatar billede alpapa Nybegynder
29. januar 2003 - 15:59 Der er 11 kommentarer og
3 løsninger

PHP & form

Hejsa :-)
Er lige begyndt på lidt PHP - men forstår ikke hvorfor dette ikke virker?
Har WIN2000/Apache/PHP 4.3.0 på min comp.

navn.php

<html><body>
<?
if ($navn) {
echo "Hej $navn, hvordan går det?";
} else {
?>
<form method="post" action="navn.php">
Indtast dit navn
<input type="text" name="navn">
<input type="submit" value="SEND">
</form>
<?
}
?>
</body></html>

Håber på lidt hjælp, da jeg er kørt fast...
Avatar billede evilfish Nybegynder
29. januar 2003 - 16:02 #1
Du skal bruge noget der hedder sessions - eller databse for at det der skal lykkes
Avatar billede sukos Juniormester
29. januar 2003 - 16:06 #2
<?
if (isset($_POST['navn'])) {
echo "Hej $navn, hvordan går det?";
} else {
?>
Avatar billede evilfish Nybegynder
29. januar 2003 - 16:06 #3
<?
session_start();
if($submit)
{
$_SESSION['navn'] = $navn;
}
?>
<html><body>
<?
$navn = $_SESSION['navn'];
if($navn) {
echo "Hej $navn, hvordan går det?";
} else {
?>
<form method="post" action="navn.php">
Indtast dit navn
<input type="text" name="navn">
<input type="submit" value="SEND">
</form>
<?
}
?>
</body></html>

Tror nok man kan gøre sådan her
Avatar billede Slettet bruger
29. januar 2003 - 16:07 #4
Prøv med
if(isset($_POST["navn"]) && $_POST["navn"]!="")
Avatar billede jensendk Nybegynder
29. januar 2003 - 16:07 #5
Du skal hente navn ind via $_POST['navn']

Når du bruger en form til at smide en variabel videre til næste side, så defaulter php ikke længere til  automatisk at hente alle variabler ind. Du skal selv definerer hvilke du vil have med ind, derfor $_POST['navn']
Avatar billede evilfish Nybegynder
29. januar 2003 - 16:07 #6
Lyt til sukos - he knows! :)
Avatar billede avminarm Juniormester
29. januar 2003 - 16:10 #7
det skyldes at der i php 2.0 belv ændret i standard opsætningen af php - dit script er som sådan ikke forkert - hvis du retter i den fil du har der hedder php.ini hvor der står "sessions_register= Off" til On i stedet for Off vilt dit script virke, MEN det er ikke tilrådeligt, da den "nye" måde giver større sikkerhed ;-)
Avatar billede alpapa Nybegynder
29. januar 2003 - 16:18 #8
For dælen I er hurtige :-) GREAT

Har prøvet med sukos' løsning - men jeg mangler at få teksten med.
Den skriver: Hej , hvordan går det.

<html><body>
<?
if (isset($_POST['navn'])) {
echo "Hej $navn, hvordan går det?";
} else {
?>
<form method="post" action="navn.php">
Indtast dit navn
<input type="text" name="navn">
<input type="submit" value="SEND">
</form>
<?
}
?>
</body></html>
Avatar billede sukos Juniormester
29. januar 2003 - 16:24 #9
hehe, sorry,

<?
if (isset($_POST['navn'])) {
echo "Hej ". $_POST['navn'] .", hvordan går det?";
} else {
?>
Avatar billede sukos Juniormester
29. januar 2003 - 16:26 #10
Men som avminarm skriver, er det opsætningen i din php.ini, "register_globals", men vil osse helt klart anbefale at du laver kode som ikke bare "er tilfældig"

Se evt. lidt her:

http://www.showsource.dk/artikler/vis_artikel.php?id=1043169805
Avatar billede alpapa Nybegynder
29. januar 2003 - 16:27 #11
Genialt - tusinde tak, sukos.
I min desperation her i formiddags søgte jeg rundt på Google, fandt også din side - godt arbejde der ;-))
Gælder $_POST også når jeg skal skrive i min MySQL db?
alpapa
Avatar billede sukos Juniormester
29. januar 2003 - 16:35 #12
mysql_query("INSERT INTO dbnavn (navn) VALUES ('$_POST[navn])") or die (mysql_error());

Uden ' i $_POST[navn] da det jo bruges i query'en

Men husk nu på at en bruger jo kan manipulere med en dårligt kodet side.
Så brug hellere f.eks.

$navn = addslashes($_POST['navn']);
mysql_query("INSERT INTO dbnavn (navn) VALUES ('$navn')") or die (mysql_error());
Avatar billede avminarm Juniormester
29. januar 2003 - 16:35 #13
yep
Avatar billede alpapa Nybegynder
29. januar 2003 - 16:39 #14
Okay - endnu engang tak, har på fornemmeren at det ikke er sidste gang vi mødes ;->
alpapa
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