[php] variabele doorgeven met form gaat fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 18-09 02:03
Ik ben een beetje aan het klooien geslagen met php. Je moet toch wat als je
thuis zit ;)

Anywayz, ik heb als eerste een klein beheersschermpje gemaakt, waar een tweetal forms in zitten. De eerste kan je data mee ophalen, die dan in het
tweede form wordt getoont. Deze data kan je daarna opslaan en een 2e php
scriptje slaat deze vervolgens op in de database, of geeft de query terug
waarmee je dat wilt doen (afhankelijk van de $debug variabele).

Nu gaat het doorgeven van 1 variabele naar het tweede form wel goed,
maar de 2e variabele komt niet aan om een of andere reden. Kan iemand mij
vertellen hoe dat komt?

Het eerste script (index.php) is:

code:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
    include ('include\functions.inc');
    show_html('header');
    global  $html_option;
?>
    <form method=post action=index.php>
        Titel van het HTML block: 
        <br>
        <select name="html_titel">
<?php
    $query="select titel from html";
    $result=query_and_return($query);
    $option_list=mysql_fetch_array($result);

    while ( $option_list ) {
        $option=$option_list["titel"];
        if ( $option == $_POST["html_titel"] ) {
            print "<option value=\"$option\" selected>$option</option>";
            $html_option = $option;
        } else {
            print "<option value=\"$option\">$option</option>";
        }

        $option_list=mysql_fetch_array($result);
    }

    if ( is_null ($html_option) ) {
        $html_option = $option;
    }
?>
        </select>
        <input type="Submit" name="submit" value="Haal html op">

    </form>
    <br>
    <form method=post action=adminform.php>
        <br>
        Je gaat de HTML van 
        <input type="text" name="titel" value="<?php print ($html_option); ?>">
        veranderen.
        <br>
        <textarea name="invoer" cols="80" rows="30"<?php show_html($html_option); ?></textarea>
        <br>
        <input type="Submit" value="Save">
    </form>
<?php   
    show_html('footer');
?>


het tweede script (adminform.php) is
code:
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
<?php 
    include ('include\functions.inc');
    $debug = 1;

    // Haal de invoervelden op en stop ze in een variabele
    $titel=$_POST['titel'];
    $text=$_POST['invoer'];

    $query="replace into html values ('$titel','$text')";

    if ( $debug == 1 ) {
        // toon de query zoals ie uitgevoerd zou worden.
        print "$query";
    } else {
        // verander de html
        print "De HTML is aangepast";
        query($query);
    }

    // ga terug naar de vorige pagina
    show_html ("header");
    print "<input type=button value='Back' onClick='history.go(-1)'>";

    show_html ("footer");
?>


de $titel variabele komt wel aan, maar de $text variabele dus niet. Het lijkt er dus
op dat $_POST['invoer'] niet goed is, maar ik kan niet ontdekken waarom niet.

Kan iemand mij helpen?

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
REPLACE INTO :?

daar heb ik nog nooit van gehoord...

en kijk eens hier naar:

<textarea name="invoer" cols="80" rows="30"<?php show_html($html_option); ?></textarea>

even onderelkaar zetten voor de overzichtelijkheid, dadelijk mag het weer aan elkaar:

<textarea name="invoer" cols="80" rows="30"
<?php show_html($html_option); ?>
</textarea>

je ziet nu dus dat de bovenste tag niet is afgesloten, dit zal zeer zeker met je probleem te maken hebben!!

[ Voor 165% gewijzigd door SWINX op 06-12-2002 11:15 ]

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 18-09 02:03
REPLACE INTO is een hele leuke mysql optie. Ik zat ermee dat het kon zijn dat ik moest
insert, of updaten. replace into update de regel als de primary key al bestaat, anders doet
ie een update. (erg grappig en nuttig dus).

code:
1
<textarea name="invoer" cols="80" rows="30"<?php show_html($html_option); ?></textarea>


mist inderdaad een een >

code:
1
<textarea name="invoer" cols="80" rows="30"><?php show_html($html_option); ?></textarea>


maar dan werkt t nogsteeds niet. :'(

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 18-09 02:03
Ik denk dat t probleem iets anders is.

Als ik dat script draai en naar de output kijk:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
snip...
    <form method=post action=adminform.php>

        <br>
        Je gaat de HTML van 
        <input type="text" name="titel" value="footer">
        veranderen.
        <br>
        <textarea cols="80" rows="30" name="invoer"></body> </html></textarea>
        <br>

        <input type="Submit" value="Save">

    </form>
snip...


dan lijkt mij dat de waarden die in die textarea staan misschien wel eens opgevat kunnen
worden als html tags. Die zal ik dus op een of andere wijze moeten escapen of zo?

Ik ben bang dat ik weer op php.net moet gaan graven naar een andere methode om dit
op te gaan slaan.

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23:26

Tjark

DON'T PANIC

*insert signature here


Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 18-09 02:03
Als ik in het adminform.php script
code:
1
$text=$_POST['invoer'];

verander in
code:
1
text=htmlspecialchars($_GET['invoer']);

dan werkt het inderdaad als een speer.

Okay dan.. thanx a million.

edit:


nu dan nog de htmlspecialchar escape tags eruit halen voordat ik ze insert, maar dat is vast wel gedocumenteerd bij htmlspecialchars

[ Voor 30% gewijzigd door JaQ op 06-12-2002 12:34 ]

Egoist: A person of low taste, more interested in themselves than in me

Pagina: 1