[php] form variabelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
Ik heb het volgende probleem: als ik in mijn html pagina (hieronder de code) de velden invul en op submit klik, zouden ze in een database moeten komen. Maar nu blijkt dat de variabelen leeg zijn in de php-pagina ($submit bijv heeft dus geen waarde.

Nu dacht ik de oplossing gevonden te hebben op de volgende pagina (jaja, ik heb eerst gezocht):
[rml][ apache?] POST commando[/rml]"]

Ik heb de waarde van register_globals in php.ini op ON gezet, zoals in dat topic, maar dit werkt niet.....
Waar kan het nog verder aan liggen, dat de variabelen "leeg" zijn. (als ik de GET-methode gebruik staan ze wel in de adresbalk -> blabla.php?v=a&b=s enz enz)

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php include("dbconnect.php"); ?>

<h2>Sign my Guest Book!!!</h2>

<form method=get action="create_entry.php">

<b>Name:</b>
<input type=text size=40 name=name>
<br>
<b>Location:</b>
<input type=text size=40 name=location>
<br>
<b>Email:</b>
<input type=text size=40 name=email>
<br>
<b>Home Page URL:</b>
<input type=text size=40 name=url>
<br>
<b>Comments:</b>
<textarea name=comments cols=40 rows=4 wrap=virtual></textarea>
<br>

<input type=submit name=submit value="Sign!">
<input type=reset name=reset value="Start Over">

</form>


create_entry.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php include("dbconnect.php"); ?>
<?php

if ($submit == "Sign!")
{
    $query = "insert into guestbook "
        ." (name,location,email,url,comments) values "
        ."('$name', '$location', '$email', '$url', '$comments')"
    ;
    mysql_query($query);
?>
<h2>Thanks!!</h2>
<h2><a href="view.php">View My Guest Book!!!</a></h2>
<?php
}
else
{
    echo("<h1><b><i>Flop</i></b></h1>");
    include("sign.php");
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

$_POST['name'] ipv $name

En doe eens zaken zoals print_r($_POST); maw: leer debuggen!

[ Voor 64% gewijzigd door Verwijderd op 04-01-2003 01:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

method=getpost :?

Acties:
  • 0 Henk 'm!

  • KillR-B
  • Registratie: Mei 2002
  • Laatst online: 09-09 09:55
Volgens mij post hij de value van de button niet...mja dat weet ik dus niet zeker. Probeer anders eens:

HTML:
1
2
<input type=submit value="Sign!">
<input type=hidden name=submit value="Sign!">

Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
Oeps, probeerde het even met GET, vergeten terug te zetten voor deze post....
Hoort dus POST te zijn..

Maar het heeft het probleem nog niet helemaal opgelost...

Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
Ok ik heb het opgelost......

Ik heb er het volgende van gemaakt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

if ( $_POST['submit'] == "Sign")
{
    $naam = $_POST['name'];
    $location = $_POST['location'];
    $email = $_POST['email'];
    $url = $_POST['url'];
    $comments = $_POST['comments'];
    $query = "insert into guestbook "
        ." (name,location,email,url,comments) values "
        ."('$naam', '$location','$email','$url','$comments')"
    ;
    mysql_query($query);
    echo $query;
?>
<h2>Thanks!!</h2>
<h2><a href="view.php">View My Guest Book!!!</a></h2>
<?php
}
else
{
    echo("<h1><b><i>Flop</i></b></h1>");
    include("sign.php");
}
?>


(kreeg het niet voor elkaar om $_POST['name'] en de anderen direct in de query te krijgen dus dan maar via deze omweg...

Bedankt allemaal

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
$query = "blabla".$_POST["var"]."blabla";


Probeer het eens in deze vorm.

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

En als je het ook nog 'hackers-proof' wil maken, zorg je dat eventuele quotes escaped en dat je html-tags eruit stript: htmlspecialchars() of striptags()

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt het ook dmv. addslashes() in de database zetten, en weer met stripslashes() uitlezen.
Je kunt deze natuurlijk ook combineren met de post hierboven...

[ Voor 17% gewijzigd door Verwijderd op 04-01-2003 17:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Pagina: 1