[php] database script weigert invoer

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

  • Movinghead
  • Registratie: November 2001
  • Laatst online: 01-06-2025
Hi,

Ik ben al aardig op weg in php en een cms aan het bouwen.

nu krijg ik absoluut dit script niet aan de praat

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php

/*
***************************
MANAGEMENT MODULE
***************************
Gemaakt door:   
Datum               :   9-10-2005
Versie          :   1.1
*/

// laden van de login.php
include "login.php";
?>

<?

    if ($_GET["actie"] == "opslaan") {
        $sql = mysql_query("SELECT id FROM voorpagina_nieuws ORDER BY id LIMIT 1");
        if (mysql_num_rows($sql) > 0) {
            mysql_query("UPDATE voorpagina_nieuws SET inhoud = '"($_POST["inhoud"])."'");
        }
        else {
            mysql_query("INSERT INTO voorpagina_nieuws (inhoud) VALUES ('"($_POST["inhoud"])."')");
        }
        $inhoud = ($_POST["inhoud"]);
?>
        <SCRIPT type="text/javascript" language="javascript">
        <!--
            alert("De wijzigingen zijn opgeslagen!");
        -->
        </SCRIPT>
<?
    }
    else {
        $sql = mysql_query("SELECT inhoud FROM voorpagina_nieuws ORDER BY id LIMIT 1");
        while($nieuws = mysql_fetch_array($sql)) {
            $inhoud = ($nieuws["inhoud"]);
        }
    }
?>
    <CENTER>
        <FORM ACTION="opslaan" METHOD="post">
            <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0>
                <TR>
                    <TD ALIGN=left VALIGN=top><TEXTAREA STYLE="width: 100%; height: 30em;" ID="inhoud" NAME="inhoud"><? $inhoud ?></TEXTAREA></TD>
                </TR>
                <TR>
<?
        $knop_tekst   = "Wijziging opslaan";
?>
                    <TD ALIGN=left VALIGN=top><INPUT TYPE="submit" NAME="Opslaan" VALUE="Opslaan"></TD>
                </TR>
            </TABLE>
        </FORM>
    </CENTER>



De server is een IIS 6.0 met PHP 5.0.5 met MySQL 5

En als ik de php file open op die webserver krijg ik netjes een box, maar met deze foutmeldingen

code:
1
0) { mysql_query("UPDATE voorpagina_nieuws SET inhoud = '"($_POST["inhoud"])."'"); } else { mysql_query("INSERT INTO voorpagina_nieuws (inhoud) VALUES ('"($_POST["inhoud"])."')"); } $inhoud = ($_POST["inhoud"]); ?>


De scripts die de info uit de database moeten halen werken gelukkig super, en handmatig queries draaien op de MySQL server gaat ook goed.

Maar ik krijg dit script niet aan de praat en ik denk dat ik iets over het hoofd zie, kan iemand even kijken. :)

  • Scott
  • Registratie: December 2004
  • Laatst online: 29-04 10:34

Scott

Ik ben, dus ik tweak

Je hebt twee queries waar iets fout gaat:

PHP:
1
mysql_query("UPDATE voorpagina_nieuws SET inhoud = '"($_POST["inhoud"])."'");

moet worden
PHP:
1
mysql_query("UPDATE voorpagina_nieuws SET inhoud = '".($_POST["inhoud"])."'");

Hetzelfde geldt voor
PHP:
1
mysql_query("INSERT INTO voorpagina_nieuws (inhoud) VALUES ('"($_POST["inhoud"])."')");

Daar moet dus ook nog een . bij :)

edit:

Als je error_reporting(E_ALL) had aangezet, was je hier zelf ook achter gekomen ;)

[ Voor 61% gewijzigd door Scott op 09-10-2005 19:35 ]


  • ShadowLord
  • Registratie: Juli 2000
  • Laatst online: 29-04 14:23
Let ook ff op dat je nu zonder enige controle data die door een user wordt aangelevert in een query stopt. je bent hierdoor ERG kwetsbaar voor SQL injection. Als je nu even heel simple addslashes() om die POST variablen heen zet is dat ook gelijk niet meer mogelijk.

You see things; and you say, "Why?" But I dream things that never were; and I say, "Why not?"


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

ShadowLord schreef op zondag 09 oktober 2005 @ 20:29:
Let ook ff op dat je nu zonder enige controle data die door een user wordt aangelevert in een query stopt. je bent hierdoor ERG kwetsbaar voor SQL injection. Als je nu even heel simple addslashes() om die POST variablen heen zet is dat ook gelijk niet meer mogelijk.
Alhoewel je dan nog steeds de data niet valideert, doe dan tenminste mysql_real_escape_string(); :) .

DM!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
Movinghead schreef op zondag 09 oktober 2005 @ 19:29:

Maar ik krijg dit script niet aan de praat en ik denk dat ik iets over het hoofd zie, kan iemand even kijken. :)
Je kan de boel natuurlijk ook eerst eens zelf debuggen en nagaan wat er waar fout gaat.

Het is iig niet de bedoeling van P&W om hier zomaar een lap code te posten, met de melding wat je wil doen, en zeggen dat het fout gaat, en of er iemand het ff voor jou wil oplossen. We willen je best helpen, maar doe dan asjeblief zelf eerst eens even de moeite om het te debuggen.

https://fgheysels.github.io/


Dit topic is gesloten.