[php] Nieuws editen wil niet

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

  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 19-01 18:32

Brantje

De post is daar >>

Topicstarter
Hey,
Ik moet een nieuws systeem hebben
Bijna alles is klaar alleen bewerk nog.
Maar deze wil niet echt werken.
ik roep het aan met berwerk.php?id=$id
op $id op dan id van het nieuws bericht
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
include("../config.php");
?>
<?php
$id = $_GET['id'];
$edit2 = mysql_query("SELECT * FROM nieuws_posts WHERE id=$id");
$edit = mysql_fetch_object($edit2);
$bericht = $edit->bericht;
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
if(!empty($_POST)){
 $bericht = $_POST['bericht'];
 $titel = $_POST['titel'];
 $auteur = $_POST['auteur'];
 $id = $_POST['id'];
mysql_query("UPDATE nieuws SET  nieuws='".$auteur."', titel='".$titel."', bericht='".$bericht."', actief='".$actief."' WHERE id='".$id."'");
echo "done";
}

?>
</head>

<body>
<TABLE border="1" bordercolor="#0000" cellpadding="0" cellspacing="0">
  </center>
  <FORM action="bewerk.php?id=<?php echo $id; ?>">
  <br>
  <TR>
    <TD class="td">Naam:<br>
        <font size="1">Vul je naam in</font></TD>
    <TD><INPUT TYPE="text" NAME="auteur" SIZE=30 VALUE="<? echo "{$edit->nieuws}"; ?>"></TD>
  </TR>
  <TR>
    <TD class="td">Titel:<br>
       <font size="1">Vul een titel in</font></TD>
    <TD><INPUT TYPE="text" NAME="titel" SIZE=30 VALUE="<? echo "{$edit->titel}"; ?>">
        <br></TD>
  </TR>

    

  <TR>
    <TD class="td">Reactie:<br>
        <font size="1">Vul een reactie in</font></TD>
    <TD><TEXTAREA name="bericht" COLS=40 ROWS=6><? echo $bericht; ?></TEXTAREA></TD>
  </TR>
  <TR>
    <TD class="td">Actief:
      <input type="checkbox" name="actief" value="actief" checked>
    <TD class="td"><center>
      <INPUT name="submit" TYPE="submit" VALUE="Toevoegen">
<input type="text" value="<? echo $id;?>">
    </center></TD>
  </TR>
</TABLE>
</font>

<br />
</body>
</html>


voor dat ik op Toevoegen klik staat er geen error melding.
Maar waneer ik daar op druk krijg ik het volgende:
code:
1
2
3
4
5
Notice: Undefined index: id in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 6

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 8

Notice: Trying to get property of non-object in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 9


Komt het daardoor dat het niet wil updaten?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:52

gorgi_19

Kruimeltjes zijn weer op :9

Even tussendoor: je weet dat iedereen die nieuws kan editen tegelijk volledige toegang tot je database heeft, inclusief userbeheer + toegang?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 19-01 18:32

Brantje

De post is daar >>

Topicstarter
Ja weet, ik test dit gewoon @ localhost.
Het wordt hierna beveiligt
Ik beveilig hier na de pagina's

  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 16-02 15:05
Het komt denk ik omdat $_GET['id'] niet bestaat (vraag me niet waarom), waardoor de query een mysql syntax error geeft, en regel 9 ook fout is omdat het niks is. Natuurlijk wist je dit zelf ook wel, maar nu moet je alleen nog uitvinden waarom $_GET['id'] niet bestaat :)

edit:
probeer eens: print_r($_GET) nog voor regel 6 te plaatsen

[ Voor 16% gewijzigd door truegrit op 18-06-2006 12:21 ]

hallo


  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 19-01 18:32

Brantje

De post is daar >>

Topicstarter
mm ik zie dit als ik post:
bewerk.php?auteur=brantje&titel=Test&bericht=Test&actief=actief&submit=Toevoegen
Denk dat dit de fout is, maar hoe los ik dit op?

@
Truegotdit komt er uit:
Array ( [id] => 6 )

[ Voor 18% gewijzigd door Brantje op 18-06-2006 12:24 ]


  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 16-02 15:05
oh ik zie het nu. Je verstuurt die data als GET parameters, waardoor blijkbaar die hele id=$id weggehaald word. Geef in je form tag het volgende mee: method="post" (<form method="post" action="berwerk.php?id=$id">)

Even je berwerk.php aanpassen en dan zou het wel moeten werken

of toch niet :?

edit: en je sluit je form tag niet af, misschien dat dat ook een ongewenst effect heeft.

[ Voor 32% gewijzigd door truegrit op 18-06-2006 12:27 ]

hallo


  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 19-01 18:32

Brantje

De post is daar >>

Topicstarter
Helaas werkt dat niet, ik krijg dan de volgende errors
code:
1
2
3
4
5
Notice: Undefined index: id in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 21

Notice: Undefined variable: actief in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 22

Warning: Wrong parameter count for mysql_query() in E:\brantje.nl\Root\nieuws\admin\bewerk.php on line 22


edit:
ik heb nu $_Post['id']; aan gepast naar $id = $_GET['id'];
Dat werkt de id error is weg.

[ Voor 13% gewijzigd door Brantje op 18-06-2006 12:32 ]


Verwijderd

Verander op regel 21/22 (lijkt nogal door elkaar te lopen) dan $_POST['id'] even in $_GET['id']

//edit: dat zei ik :+

$actief wordt nergens aangemaakt ofzo. Ik vermoed dat dat aangeeft of je post zichtbaar is of niet, en dat die niet veranderd hoeft te worden. Gewoon het hele stukje dat actief in de database aan wil passen weglaten

[ Voor 60% gewijzigd door Verwijderd op 18-06-2006 12:35 ]


  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 19-01 18:32

Brantje

De post is daar >>

Topicstarter
Ok het werkt nu, ik heb gewoon wat met de query lopen spelen.
Beetje vaag maar ik weet niet wat het probleem was :P.

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Beetje netjes doen he, als iemand de pagina zonder id aanroept bestaat $_GET['id] ook niet.

PHP:
1
2
3
4
5
6
7
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
    $id = $_GET['id'];
    $edit2 = mysql_query("SELECT * FROM nieuws_posts WHERE id = '".$id."'");
    $edit = mysql_fetch_object($edit2);
    $bericht = $edit->bericht;
}


Verder is $_POST['id'] leeg, omdat:

HTML:
1
<input type="text" value="<? echo $id;?>">


Geen name heeft, maak er dus

HTML:
1
<input type="text" value="<? echo $id; ?>" name="id">


van :)

[ Voor 35% gewijzigd door XWB op 18-06-2006 12:43 ]

March of the Eagles


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Kom op zeg, we zijn hier geen persoonlijke debugservice. :X Er is je al vaker gezegd dat je zelf in staat moet zijn om je eigen code te debuggen als er fouten in zitten, Brantje. Simpelweg waarden checken, je uitgevoerde query afdrukken, enz: het standaard debugwerk dus. En dat kun je goed zelf; wij kunnen dat niet voor je doen aangezien jij de enige bent die de volledige code heeft in een werkende testomgeving.

Lees ook Programming FAQ - Debuggen: hoe doe ik dat? en Programming Beleid - De "quickstart" even door.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.