Avatar billede venchil Nybegynder
28. april 2005 - 15:54 Der er 16 kommentarer og
2 løsninger

Gæstebogs-administration

Jeg er igang med at lave en admin-sektion til min hjemmeside, og jeg er løbet ind i et lille problem med hensyn til gæstebogs-administrationen. Her er de fire sider, og de tilhørende errors, som jeg får.

ADMIN_GAESTEBOG.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
<table>
<tr valign="top"><td><b>Navn</b></td><td><b>Hjemmeside</b></td><td><b>Tid</b></td><td><b>Ip</b></td><td><b>Besked</b></td>
<?php
$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$hent = mysql_query("select * from gaestebog order by tid desc");

while ($vis = mysql_fetch_array($hent)) {
    echo "<tr valign='top'><td>$vis['navn']</td><td>$vis['hjemmeside']</td><td>$vis['tid']</td><td>$vis['ip']</td><td>$vis['besked']</td>";
    echo "<td style='width:15px'><a href='admin_gaestebog_slet.php?navn=$vis['navn']&tid=$vis['tid']'>Del</a></td>";
    echo "<td style='width:15px'><a href='admin_gaestebog_edit_skriv.php?navn=$vis['navn']&tid=$vis['tid']'>Edit</a></td></tr>";
}
?>
</table>


Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/darkcloud.dk/darkcloud.dk/httpd.www/animepark/madskjaer/admin/admin_gaestebog.php on line 11





ADMIN_GAESTEBOG_SLET.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
<?php

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$navn = $_GET['navn'];
$tid = $_GET['tid'];

$deleteSQL = "delete from gaestebog WHERE navn=$navn and tid=$tid limit 1";
mysql_query($deleteSQL);

echo "<br>Hvis ingen fejl meddeles, er beskeden slettet fra gæstebogen.";
?>
<br><a href="forside.php?id=content_gaestebog.php">Til gæstebogen</a>
<?php
mysql_close($conn);
?>

Scriptet sletter ikke beskeden.




ADMIN_GAESTEBOG_EDIT_SKRIV.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
Denne side giver dig mulighed for at ændre i den valgte besked.
<?php
$navn = $_GET['navn'];
$tid = $_GET['tid'];

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$hent = mysql_query("select * from gaestebog where navn=$navn and tid=$tid limit 1");

while ($vis = mysql_fetch_array($hent)) {

$hjemmeside = $vis['hjemmeside']
$besked = $vis['besked']

echo "<form action='forside.php?id=admin_gaestebog_edit.php' method='post'>";
echo "Navn:";
echo "<br><input type='text' name='nytnavn' value='$navn'>";
echo "<p>";
echo "Hjemmeside";
echo "<br><input type='text' name='hjemmeside' value='$hjemmeside'>";
echo "<p>";
echo "Tid:";
echo "<br><input type='text' name='nytid' value='$tid'>";
echo "<p>";
echo "Besked:";
echo "<br><textarea name='besked' cols='50' rows='10' value='$besked'></textarea>";
echo "<br>";
echo "<input type='submit' value='Rediger'>";
echo "</form>";
}
?>

Parse error: parse error, unexpected T_VARIABLE in /customers/darkcloud.dk/darkcloud.dk/httpd.www/animepark/madskjaer/admin/admin_gaestebog_edit_skriv.php on line 15




ADMIN_GAESTEBOG_EDIT.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
<?php

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$nytnavn = $REQUIRE['nytnavn'];
$hjemmeside = $REQUIRE['hjemmeside'];
$nytid = $REQUIRE['nytid'];
$besked = $REQUIRE['besked'];

$updateSQL = "update gaestebog set navn=$nytnavn, hjemmeside=$hjemmeside, tid=$nytid, besked=$besked WHERE navn=$navn and tid=$tid";
mysql_query($updateSQL);

echo "<br>Hvis ingen fejl meddeles, er beskeden rettet.";
?>
<br><a href="forside.php?id=content_gaestebog.php">Til gæstebogen</a>
<?php
mysql_close($conn);
?>

Scriptet redigerer ikke noget.
Måske er det en lidt stor opgave, men jeg håber i kan hjælpe.
Avatar billede busschou Praktikant
28. april 2005 - 16:06 #1
Noget af det kan vi vel se på
Din form bruger method="post" derfor skal du i ADMIN_GAESTEBOG_SLET.PHP ikke bruge
$navn = $_GET['navn'];
$tid = $_GET['tid'];
men
$navn = $_POST['navn'];
$tid = $_POST['tid'];
Avatar billede busschou Praktikant
28. april 2005 - 16:09 #2
men som du kører det skal du måske lave din for om til method="get" så....
Avatar billede busschou Praktikant
28. april 2005 - 16:13 #3
i denne her mangler du ; efter nogle linjer... sådan her
---
ADMIN_GAESTEBOG_EDIT_SKRIV.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
Denne side giver dig mulighed for at ændre i den valgte besked.
<?php
$navn = $_GET['navn'];
$tid = $_GET['tid'];

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$hent = mysql_query("select * from gaestebog where navn=$navn and tid=$tid limit 1");

while ($vis = mysql_fetch_array($hent)) {

$hjemmeside = $vis['hjemmeside'];
$besked = $vis['besked'];

echo "<form action='forside.php?id=admin_gaestebog_edit.php' method='post'>";
echo "Navn:";
echo "<br><input type='text' name='nytnavn' value='$navn'>";
echo "<p>";
echo "Hjemmeside";
echo "<br><input type='text' name='hjemmeside' value='$hjemmeside'>";
echo "<p>";
echo "Tid:";
echo "<br><input type='text' name='nytid' value='$tid'>";
echo "<p>";
echo "Besked:";
echo "<br><textarea name='besked' cols='50' rows='10' value='$besked'></textarea>";
echo "<br>";
echo "<input type='submit' value='Rediger'>";
echo "</form>";
}
?>
Avatar billede busschou Praktikant
28. april 2005 - 16:15 #4
prøv rette lidt af det og se hvad der så kommer af meddelelser
De steder hvor der ingen fejl kommer og der enten ikke indsættes, opdateres eller slettes
Prøv da at lave et echo på den sql sætning..så kan du måske se om variablene slet ikke kommer med eller lign
Avatar billede venchil Nybegynder
28. april 2005 - 16:16 #5
Det forstår jeg ikke? Hvorfor skal jeg bruge $_POST['navn']; når jeg henter navn og tid fra min URL?
Avatar billede busschou Praktikant
28. april 2005 - 16:18 #6
der hvor din form går hen
"<form action='forside.php?id=admin_gaestebog_edit.php' method='post'>";
der postes dine felter fordi du har valgt method='post'
Så på siden
'forside.php?id=admin_gaestebog_edit.php'
Kan du ikke hente noget som helst fra formens felter med GET...
Avatar billede busschou Praktikant
28. april 2005 - 16:19 #7
så jeg skrev forkert...troede den gik til slet...men den går til edit
Så i din edit skal alle get rettes til post
Men mindre du vil sende variable over url...
Så skal din form rettes til
"<form action='forside.php?id=admin_gaestebog_edit.php' method='get'>";
Avatar billede venchil Nybegynder
28. april 2005 - 16:22 #8
Kunne man så ikke lige så godt bruge $_REQUEST
Avatar billede busschou Praktikant
28. april 2005 - 16:25 #9
tjo.. men du bruger jo $REQUIRE
Hvis man specificerer det så er det bedst...det har jeg lært et og andet sted
Hvis du bare laver en $_REQUEST så ved den jo ikke hvor at lede
så at lave en $_POST vil hjælpe den på rette vej
Måske når man laver en $_REQUEST den så først går url igennem for at finde get variable... :o)
Så jeg vil da foreslå at bruge $_POSt når du poster
Avatar billede busschou Praktikant
28. april 2005 - 16:27 #10
jeg vil mene den nederste skal se sådan her ud:
----------
ADMIN_GAESTEBOG_EDIT.PHP
<table style="background-color:#41506D;width:100%;"><tr><td><b><span class="b">Administration</span></b></span></td></tr></table>
<?php

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$nytnavn = $_POST['nytnavn'];
$hjemmeside = $_POST['hjemmeside'];
$nytid = $_POST['nytid'];
$besked = $_POST['besked'];

$updateSQL = "update gaestebog set navn=$nytnavn, hjemmeside=$hjemmeside, tid=$nytid, besked=$besked WHERE navn=$_GET['navn'] and tid=$_GET['tid']";
mysql_query($updateSQL);

echo "<br>Hvis ingen fejl meddeles, er beskeden rettet.";
?>
<br><a href="forside.php?id=content_gaestebog.php">Til gæstebogen</a>
<?php
mysql_close($conn);
?>
Avatar billede busschou Praktikant
28. april 2005 - 16:30 #11
det er egentlig også noget hø det du har med en update at referere til tider og navne
Du har vel i din tabel et unikt id?
I din form laver du så et
<input type="hidden" value=$vis['id']>
I din update tjekker du så på id i stedet
$updateSQL = "update gaestebog set navn=$nytnavn, hjemmeside=$hjemmeside, tid=$nytid, besked=$besked WHERE id=$_POST['id']";
Avatar billede venchil Nybegynder
28. april 2005 - 18:26 #12
Glemte faktisk unikt id, ups. Nå, men hvorfor kan jeg ikke oprette

`id` INT( 10 ) DEFAULT '0' NOT NULL AUTO_INCREMENT?
Avatar billede venchil Nybegynder
28. april 2005 - 18:26 #13
(i phpmyadmin)
Avatar billede venchil Nybegynder
28. april 2005 - 18:34 #14
#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key
Avatar billede venchil Nybegynder
28. april 2005 - 18:37 #15
Ligemeget, har fået det til at virke nu...
Avatar billede busschou Praktikant
28. april 2005 - 18:38 #16
virker det hele så nu`?
Avatar billede venchil Nybegynder
28. april 2005 - 19:07 #17
Nå, men jeg tror jeg opgiver projektet for denne gang, tak for din hjælp du må gerne lægge et svar (er du tilfreds med 15 point?)
Avatar billede busschou Praktikant
28. april 2005 - 20:41 #18
Jeg er tilfreds med det du synes er fair.. troede blot på det sidste at det virkede...men ok :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester