webForumDet fria alternativet

Redigeringsläge för hemsida

PHP

8 svar · 420 visningar · startad av Iceyes

Medlem sedan apr. 200592 inlägg
Frågan#1

Jag skulle vilja från en sida kunna redigera min hemsida
som skulle jag bara behöva lägga in text lägga in texten o trycka spara så läggs den in på angivet ställe utan att jag behöver göra det direkt från respektive sida. hur gör man en sån grej
Sedan måste man ju fixa säkerheten så att man endast kan göra det själv från t.e.x ett accout.

Medlem sedan juli 2002405 inlägg
#2

Typ adminsida där du väljer vilken del som ska uppdateras och texten som ska uppdateras kommer upp i en textarea och du redigerar i den och trycker på "uppdatera". Något sådant du vill ha kod till?

Medlem sedan apr. 200592 inlägg
#3

Ja precis exakt!!

Medlem sedan juli 2002405 inlägg
#4

Du får ju börja med att skapa en databas med de värden du vill spara information om.

Sen kan du göra på något liknande sätt:

$open = mysql_connect ("localhost", "user","pass");
$sql = "SELECT * FROM tabellens_namn ORDER BY namn";
$result = mysql_db_query("databas","$sql");

while($openallpages=mysql_fetch_array($result)){
echo "<a href=\"admin.php?sida=" . $openallpages['id'] . "\">" . $openallpages['namn'] . "</a><br>";
}

Så långt skrivs de olika delarna ut med länkar.

När du klickar på en länk kan du använda följande:

<?
if($_GET['sida']){
$open = mysql_connect ("localhost", "user","pass");
$sql = "SELECT * FROM tabellens_namn WHERE id=" . $_GET['sida'];
$result = mysql_db_query("databas","$sql");

while($openpage=mysql_fetch_array($result)){
?>
<form action="admin.php" method="post">
<textarea cols="60" rows="10" name="text"><? echo $openpage['text'];?></textarea>
<input type="hidden" name="id" value="<? echo $openpage['id'];?>">
<br>
<input type="submit" name="uppdatera" value="Uppdatera">
</form>
<?
 }
}
?>

Slutligen för att uppdatera...

if($_POST['uppdatera']){
    $link = mysql_connect("localhost","user","pass");
    $databas = mysql_select_db("databas");
    $sql = "UPDATE tabellens_namn SET text='$_POST[text]' WHERE id = '$_POST[id]'";

    mysql_query("$sql");
    mysql_close($link);
}

Du får ju självklart ändra alla uppgifter och variablar så att de passar din sida.

Medlem sedan apr. 200592 inlägg
#5

Aha, okej tack:) vad jag förstått det som så ska jag skapa en admin.php eller vad den nu ska heta om ja ändrar namnet, ska jag skapa flera sidor att lägga delar av koden på?
är väldigt dålig på MYSQL men om jag ska göra ett försök ska jag skapa en tabell där
hur ska den veta exakt vart den ska skriva in texten jag lägger in genom den där?

Medlem sedan mars 20034 471 inlägg
#6

Iceyes skrev:

Aha, okej tack:) vad jag förstått det som så ska jag skapa en admin.php eller vad den nu ska heta om ja ändrar namnet, ska jag skapa flera sidor att lägga delar av koden på?
är väldigt dålig på MYSQL men om jag ska göra ett försök ska jag skapa en tabell där
hur ska den veta exakt vart den ska skriva in texten jag lägger in genom den där?

Om jag var du skulle jag allra först sätta upp några dummy-adminsidor utan egentligt innehåll alls, och se till att inloggningen till adminsidorna verkligen funkar! Om du först bygger upp dina adminsidor och betraktar säkerheten sist, kommer den troligen för sent. Vem som helst kan ju manipulera din hemsida annars. :o

Medlem sedan juli 2002405 inlägg
#7

Iceyes skrev:

Aha, okej tack:) vad jag förstått det som så ska jag skapa en admin.php eller vad den nu ska heta om ja ändrar namnet, ska jag skapa flera sidor att lägga delar av koden på?
är väldigt dålig på MYSQL men om jag ska göra ett försök ska jag skapa en tabell där
hur ska den veta exakt vart den ska skriva in texten jag lägger in genom den där?

Det räcker att ha admin.php och ha dessa tre koder i den filen.
Gällande tabellen så skriver du namnet och typen på varje fält t.ex

CREATE TABLE `tabellens_namn` (
`id` MEDIUMINT NOT NULL AUTO_INCREMENT ,
`namn` CHAR( 10 ) NOT NULL ,
`text` LONGTEXT NOT NULL ,
PRIMARY KEY ( `id` ) 
);

När du trycker på "Uppdatera" så uppdaterars den raden i databasen där id = $_POST['id']. Och den variabeln kommer från det gömda fältet i formuläret som i sin tur fått sitt värde från $_GET['sida']. Alltså när du tröck på länken för vilken sida du skulle uppdatera.

Jag känner att detta inte är så pedagogiskt...

Medlem sedan apr. 200592 inlägg
#8

nu känner jag mej trög, men okej nya tag
nja det där lät ju inte så peagoiskt men på sidan där ja skrivit = $_POST['id'] kommer den hämta info från databasen och lägga på det ställe sen ska jag ha ett specellt id?
ska jag ha flera tabeller i databasen en till varje olika sida där jag ska redigera?
mitten koden du skrev först har jag förstått vara den sidan jag skriver i sakerna som kommer uppdateras i databasen den första koden vart ska jag placera den?
och den nedersta som är till för att uppdatera ska dessa vara på en och samma admin.php?
nu är det inte så att jag kör databasen lokalt så vad ska jag skriva istället för lokalhost?

1000 frågor :p det är inte lätt när det är svårt

Medlem sedan juli 2002405 inlägg
#9

Alltså i formuläret där du redigerar sidan så finns det ett "hidden" fält. Fältets namn är döpt till "id". Det fältet finns för att databasen ska kunna uppdatera rätt rad. Eftersom "method" i <form>-taggen är satt till "post" blir det $_POST['id']. Och det gömda fältet får sitt värde genom $_GET['sida'] som kommer upp när du trycker på sidans namn. T.ex admin.php?visa=3. Då hämtas rad tre som exempelvis innehåller presentationstexten.
Det är värdet i $_GET['sida'] som säger till databasen vilken rad som ska hämtas och visas och därmed vilken sida som ska redigeras. Och som svar på frågan om flera tabeller i databasen så ska du ha en tabell för alla dessa sidor och varje sida ligger på en egen rad och får då genom "auto increment" ett eget id.
Gällande uppdatera-delen kan du ha den överst på sidan. Du kan ju självklart göra om så att dessa delar ligger på olika sidor. Koden jag skrev var bara för att göra det enkelt.
Ska du ha mer saker på din adminsida än att bara kunna uppdatera sidorna kan det vara lämpligt att dela upp det på flera. Det kan lätt bli en massa kod i admin.php annars. Du gör som du själv vill.
Vet inte vad du ska skriva istället för "localhost" och hittar inget svar just nu heller. Men det kanske någon annan medlem vet... Kollar upp det imorrn om inte svaret redan är funnet...

Hoppas detta ger dig lite mer information

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)