Rediger i indlæg?

Tags:    php

Jeg har noget jeg gerne vil opdatere. Jeg har lavet links til artiklerne via en list fil (det kalder jeg den) og den smider mig til rediger.php med et id nr, som bruges til at vise den tekst man skal redigere i (dette virker) og som skal bruges til at updatere i den rigtige nyhed....

Kildekode af rediger.php
---------------------------------
<HTML>
<Head>
<Title>spido.dk -redigér artikel</Title>
<link rel="stylesheet" type="text/css" href="style.css">
</Head>
<BODY>
<?PHP
$ip = getenv('REMOTE_ADDR');
$db = mysql_connect("HOST", "BRUGERNAVN", "KODEORD");
mysql_select_db("DATABASE", $db);

$insert2 = mysql_query("UPDATE artikel_spido SET titel='$titel', type='$_POST[type]', beskrivelse='$beskrivelse', indhold='$indhold' WHERE id = $id");

if($titel && $beskrivelse && $indhold) {

$titel = htmlentities($titel);
$beskrivelse = htmlentities($beskrivelse);
$indhold = ereg_Replace("\\r<BR/>", "<br>", $indhold);
$indhold = ereg_Replace("#smil", "<img border=0 src=pics/1.gif>", $indhold);
$indhold = ereg_Replace("#grin", "<img border=0 src=pics/2.gif>", $indhold);
$indhold = ereg_Replace("#blink", "<img border=0 src=pics/3.gif>", $indhold);
$indhold = ereg_Replace("#tunge", "<img border=0 src=pics/4.gif>", $indhold);
$indhold = ereg_Replace("#sej", "<img border=0 src=pics/5.gif>", $indhold);
$indhold = ereg_Replace("#ked", "<img border=0 src=pics/6.gif>", $indhold);
$indhold = ereg_Replace("#sur", "<img border=0 src=pics/7.gif>", $indhold);
}
$foresp = mysql_query("SELECT titel, beskrivelse, indhold FROM artikler_spido WHERE id='$id' ");
while($data = mysql_fetch_row($foresp)){
echo "<center>";
echo "<table border=\\"0\\" width=\\"405\\" height=\\"1\\" cellspacing=\\"0\\" cellpadding=\\"0\\">";
echo "<tr>";
echo "<td width=\\"152\\" height=\\"1\\"><font size=\\"1\\" face=\\"Verdana\\">Artiklens Titel:</font></td>";
echo "<FORM METHOD=\\"POST\\" ACTION=\\"$PHP_SELF\\"";
echo "<INPUT TYPE=\\"hidden\\" NAME=\\"skriv\\" VALUE=\\"1\\">";
echo "<td width=\\"254\\" height=\\"1\\"><font face=\\"Verdana\\" size=\\"1\\"><input TYPE=\\"text\\" style=\\"border:1px dashed #000000; background-color:#EEEEEE\\" NAME=\\"$titel\\" size=\\"20\\" VALUE=\\"$data[0]\\"></font></td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\\"152\\" height=\\"10\\"><font size=\\"1\\" face=\\"Verdana\\">Beskrivelse:</font></td>";
echo "<td width=\\"254\\" height=\\"10\\"><font face=\\"Verdana\\" size=\\"1\\"><textarea style=\\"border:1px dashed #000000; background-color:#EEEEEE\\" NAME=\\"$beskrivelse\\" COLS=\\"30\\" ROWS=\\"5\\">$data[1]</textarea></font></td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\\"152\\" height=\\"93\\"><input TYPE=\\"Submit\\" VALUE=\\"Gem ændringer\\"></td>";
echo "<td width=\\"254\\" height=\\"93\\">";
echo "<p><font size=\\"1\\" face=\\"Verdana\\"><textarea style=\\"border:1px dashed #000000; background-color:#EEEEEE\\" NAME=\\"$indhold\\" COLS=\\"30\\" ROWS=\\"5\\">$data[2]</textarea></font></p>";
}
?>

<p align="center">
<font size="1" face="verdana"><A ALIGN="center" HREF="list.php">Gå til artikel listen</A>
<BR/></font>
</p>
</td>
</tr>
</table>
<br>
<div align="center">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="91" height="128" id="AutoNumber1">
<tr>
<td width="91" height="128" style="border-style: none; border-width: medium" valign="top">
<font face="Verdana" size="1">#smil <img border="0" src="pics/1.gif" width="15" height="15"><br>#grin
<img border="0" src="pics/2.gif" width="15" height="15"><br>#blink
<img border="0" src="pics/3.gif" width="15" height="15"><br>#tunge
<img border="0" src="pics/4.gif" width="15" height="15"><br>#sej
<img border="0" src="pics/5.gif" width="15" height="15"><br>#ked
<img border="0" src="pics/6.gif" width="15" height="15"><br>#sur
</font><img border="0" src="pics/7.gif" width="15" height="15"></td>
</tr>
</table>
</center></div>
</BODY>
</HTML>

Da jeg ikke får nogen fejl men at den blot opdaterer siden med den originale tekst, synes jeg er mærkelig. Men på den anden side har jeg prøvet alt for at aktivere variablen $insert2 som holder sql kommandoen til opdatering, lige nu har jeg sat koden tilbage til den originale kode jeg skrev til at tilføje nyheder /artikler. Men hvordan submitter jeg sådan at nyheden bliver ændret ???



1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Den er da helt gal...

1) Du må ikke bare lave en UPDATE i starten af scriptet uden først, at kontrollere om man rent faktisk skal opdatere informationerne...

Strukturen du leder efter er,

<?PHP

if( alle mine variable er sat og jeg skal opdatere så... ){

Kør et MySQL Update Query og redirect personen til en anden side (meget vigtigt)

} else {

Kør et MySQL Select Query og vis personen informationerne i en form så han/hun kan rette i dem...

}

?>

2) Du har vist nok misforstået noget mht. til forms, dets elementer og hvordan værdier sendes. Det navn du giver et element (name) skal være det præcise navn for den variabel du ønsker at kunne læse værdien fra (minus $ : MEGET VIGTIGT).

Ex.

<input type="text" name="minVariabel" value="denGamleVærdi">

Variablen, som den nye værdi bliver tilgængelig i når scriptet køres efter et submit, er så $minVariabel.


Følgende er altså FORKERT

<input TYPE=\\"text\\" style=\\"border:1px dashed #000000; background-color:#EEEEEE\\" NAME=\\"$titel\\" size=\\"20\\" VALUE=\\"$data[0]\\">

...og skal istedet skrives sådanne her,

<input TYPE=\\"text\\" style=\\"border:1px dashed #000000; background-color:#EEEEEE\\" NAME=\\"titel\\" size=\\"20\\" VALUE=\\"$data["titel"]\\">

...ellers vil du få en variabel som hedder hvad der nu engang var indholdet i den oprindelige variabel første gang scriptet køres.



t