Egentligen. Jag har ju en MySQL-server. Kan det vara så svårt att göra det där igenom i stället? Fast då måste man ju ordna så den skriver i en tabell och grejer. Saker jag inte kan. :e
$månad
36 svar · 689 visningar · startad av silfver · sida 2 av 2
Frågan, av silfver
Hejsan! På min sida så gör jag så här för att inkludera innehåll: <?php $titel = "sida"; include "/includes/top.php"; ?> //om man ändrar till: <?php $titel = "sida"; include "/includes/top.php"; $april2004 = "<h1>en massa kod</h1><p>massa text osv...</p>"; //Den här. ?> <html>... <?php include "/includes/bottom.php"; ?> Hur kan man nu göra för att från en länk få fram innehållet
Läs frågan i sin helhet →Det är inte svårare att hämta eller spara från/till än databas än vad det är att köra mot textfiler.
Det skulle inte vara några problem för dig att spara det i databas.
Men däremot blir jag inte klok på hur du burit dig åt för att inte få det att fungera med koden.
Exempel: http://www.a-kok.com/test/silver.php
Databas: http://www.a-kok.com/test/databas/
Matte skrev:
Det är inte svårare att hämta eller spara från/till än databas än vad det är att köra mot textfiler.
Det skulle inte vara några problem för dig att spara det i databas.
Men däremot blir jag inte klok på hur du burit dig åt för att inte få det att fungera med koden.
Exempel: http://www.a-kok.com/test/silver.php
Databas: http://www.a-kok.com/test/databas/
Fråga inte mig! :e Det funkar nu i alla fall. Koden som du hade i 'silver.php' var inte den samma som du hade gett mig tidigare. Men jag kopierade den och det funkar nu.
Men för att krångla till det lite då... Hur ska jag gå till väga för att göra samma sak i MySQL? Vad jag behöver veta är endast hur man öppnar och sparar filer. Och ett formulär där man skriver ett inlägg. Lösenordsskydda sidan kan jag. :) Finns det någon lätt guide till det här? Eller måste jag helt enkelt gå steg för steg med er här på wF?
Ett lite slarvigt hopkok:
Skapa en fil vid namn admin.php med följande innehåll:
<?php // Namnet på denna fil: admin.php
session_start();
// Loginuppgifter
$username = 'admin';
$userpass = 'secret';
if (isset($_POST['login'])) {
if ($_POST['user'] == $username && $_POST['passwd'] == $userpass) {
$_SESSION['admin'] = true;
header("Location: admin.php");
exit;
}
}
if (isset($_GET['logout'])) {
session_unset();
session_destroy();
header("Location: admin.php");
exit;
}
if (!isset($_SESSION['admin'])) {
echo '
<form action="admin.php" method="post">
<p>Användarnamn:<br>
<input type="text" name="user"><br>
Lösenord:<br>
<input type="password" name="passwd"></p>
<p><input type="submit" name="login" value="Logga in"></p>
</form>
';
exit;
}
if (isset($_POST['update'])) {
// Om du har magic_qoutes_gpc satt
$_POST['text'] = stripslashes($_POST['text']);
$fp = fopen('./databas/'.$_POST['filename'], 'w');
fwrite($fp, $_POST['text']);
fclose($fp);
header("Location: admin.php");
exit;
} elseif (isset($_GET['delete'])) {
unlink('./databas/'.$_GET['delete']);
header("Location: admin.php");
exit;
} elseif (isset($_POST['new'])) {
$_POST['new'] = trim($_POST['new']);
if (!empty($_POST['new'])) {
make_form($_POST['new']);
} else {
header("Location: admin.php");
exit;
}
} elseif (isset($_GET['edit']) && file_exists('./databas/'.basename($_GET['edit']))) {
$fp = fopen('./databas/'.$_GET['edit'], 'r');
$content = fread($fp, filesize('./databas/'.$_GET['edit']));
fclose($fp);
make_form($_GET['edit'], $content);
} else {
if ($handle = opendir('./databas')) {
echo '
<span style="font-weight:bold">Listar filer:</span>
<hr>
<table>
';
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo '
<tr>
<td>'.$file.'</td>
<td><a href="admin.php?edit='.$file.'">Ändra</a></td>
<td><a href="admin.php?delete='.$file.'"
onclick="return confirm(\'Radera '.$file.' ?\')">Radera</a></td>
</tr>
';
}
}
closedir($handle);
echo '
</table>
';
}
echo '
<script type="text/javascript">
<!--
function validate(obj) {
if (obj.newfile.value == "") {
alert("Du måste ange filnamn !");
return false;
}
return true;
}
// -->
</script>
<hr>
<form name="makenew" action="admin.php" method="post" onsubmit="return validate(this)">
<div style="font-weight:bold;">Ny fil</div>
Namn:
<input type="text" name="newfile">
<input type="submit" value="Skapa">
</form>
<a href="admin.php?logout">Logga ut</a>
';
}
function make_form ($name, $text='') {
echo '
<form action="admin.php" method="post">
<input type="hidden" name="filename" value="'.$name.'">
Ändrar: <span style="font-weight:bold">'.$name.'</span><br>
<textarea name="text" rows="12" style="width:500px;">'.htmlentities($text).'</textarea><br>
<input type="submit" name="update" value="Spara">
</form>
<a href="admin.php">Visa Lista</a>
';
}
?>
Efter lite fifflande med chmod så fick jag det mesta att fungera. Jag lyckas dock inte med att få den att skapa filer. När jag sätter chmod 666 på mappen 'databas' så hänger sig programmet. Det jobbiga är att jag måste sätta chmod på alla filer i mappen också för att det ska fungera. Finns det inget sätt att sätta chmod på 'databas' så att alla filer där i också får samma värden? Bra script annars. Tack! :)
Du får sätta chmod till 777 för hela katalogen 'databas'.
Matte skrev:
Du får sätta chmod till 777 för hela katalogen 'databas'.
Kan ändå inte skapa filer. Men radera och redigera funkar.
Med 777 ska du kunna skapa filer. Fastnade ditt chmod när du ändrade ?
Matte skrev:
Med 777 ska du kunna skapa filer. Fastnade ditt chmod när du ändrade ?
Det det hängde sig inte när jag ändrade till 777. Antar att det inte är scriptet det är fel på, eller?
Klart det är skriptet det är fel på :)
Jag gjorde en liten ändring i formuläret p.g.a. javascript, glömde göra motsvarande ändring i koden som sparade.
Testa det här:
<?php // Namnet på denna fil: admin.php
session_start();
// Loginuppgifter
$username = 'admin';
$userpass = 'secret';
if (isset($_POST['login'])) {
if ($_POST['user'] == $username && $_POST['passwd'] == $userpass) {
$_SESSION['admin'] = true;
header("Location: admin.php");
exit;
}
}
if (isset($_GET['logout'])) {
session_unset();
session_destroy();
header("Location: admin.php");
exit;
}
if (!isset($_SESSION['admin'])) {
echo '
<form action="admin.php" method="post">
<p>Användarnamn:<br>
<input type="text" name="user"><br>
Lösenord:<br>
<input type="password" name="passwd"></p>
<p><input type="submit" name="login" value="Logga in"></p>
</form>
';
exit;
}
if (isset($_POST['update'])) {
// Om du har magic_qoutes_gpc satt
$_POST['text'] = stripslashes($_POST['text']);
$fp = fopen('./databas/'.$_POST['filename'], 'w');
fwrite($fp, $_POST['text']);
fclose($fp);
header("Location: admin.php");
exit;
} elseif (isset($_GET['delete'])) {
unlink('./databas/'.$_GET['delete']);
header("Location: admin.php");
exit;
} elseif (isset($_POST['newfile'])) {
$_POST['new'] = trim($_POST['newfile']);
if (!empty($_POST['newfile'])) {
make_form(basename($_POST['newfile']));
} else {
header("Location: admin.php");
exit;
}
} elseif (isset($_GET['edit']) && file_exists('./databas/'.basename($_GET['edit']))) {
$fp = fopen('./databas/'.$_GET['edit'], 'r');
$content = fread($fp, filesize('./databas/'.$_GET['edit']));
fclose($fp);
make_form($_GET['edit'], $content);
} else {
if ($handle = opendir('./databas')) {
echo '
<span style="font-weight:bold">Listar filer:</span>
<hr>
<table>
';
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo '
<tr>
<td>'.$file.'</td>
<td><a href="admin.php?edit='.$file.'">Ändra</a></td>
<td><a href="admin.php?delete='.$file.'"
onclick="return confirm(\'Radera '.$file.' ?\')">Radera</a></td>
</tr>
';
}
}
closedir($handle);
echo '
</table>
';
}
echo '
<script type="text/javascript">
<!--
function validate(obj) {
if (obj.newfile.value == "") {
alert("Du måste ange filnamn !");
return false;
}
return true;
}
// -->
</script>
<hr>
<form name="makenew" action="admin.php" method="post" onsubmit="return validate(this)">
<div style="font-weight:bold;">Ny fil</div>
Namn:
<input type="text" name="newfile">
<input type="submit" value="Skapa">
</form>
<a href="admin.php?logout">Logga ut</a>
';
}
function make_form ($name, $text='') {
echo '
<form action="admin.php" method="post">
<input type="hidden" name="filename" value="'.$name.'">
Ändrar: <span style="font-weight:bold">'.$name.'</span><br>
<textarea name="text" rows="12" style="width:500px;">'.htmlentities($text).'</textarea><br>
<input type="submit" name="update" value="Spara">
</form>
<a href="admin.php">Visa Lista</a>
';
}
?>
Matte skrev:
Klart det är skriptet det är fel på :)
Jag gjorde en liten ändring i formuläret p.g.a. javascript, glömde göra motsvarande ändring i koden som sparade.
Nu kan man skapa eget. Men det går inte logga ut. :birp
silfver skrev:
Nu kan man skapa eget. Men det går inte logga ut. :birp
:e :e
Det fungerar för mig. La upp samma skript på webbhotellet: http://localhost/test/admin.php
Matte skrev:
silfver skrev:
Nu kan man skapa eget. Men det går inte logga ut. :birp
:e :e
Det fungerar för mig. La upp samma skript på webbhotellet: http://localhost/test/admin.php
Hehe, jag kommer ju inte direkt åt din lokalhost. ;) Men jag testade på min egna server och där funkade det att logga ut. I localhost alltså. Men inte på webben. Lustigt? :q
r/ Det funkade _inte_ i localhost men på webben. :e
Matte skrev:
Rätt länk: http://www.a-kok.com/test/admin.php
Börjar bli trött :)
Vem är inte det. :) Ja, men det funkade där för mig också. Men jag får inte till det på localhost, men då är det ju lite skit samma. Det ska ju bara funka på webben så. :) Tackar.
Jag testade både med register_globals satt till On och Off. Det gorde ingen skillnad.
Vad kör du för PHP-version och webbserver ?
Vilket Operativsystem ?
Kan du logga in så borde det också funka att logga ut.
Testa med detta för att se om det gör någon skillnad:
if (isset($_GET['logout'])) {
$_SESSION = array();
session_destroy();
header("Location: admin.php");
exit;
}
Matte skrev:
Jag testade både med register_globals satt till On och Off. Det gorde ingen skillnad.
Vad kör du för PHP-version och webbserver ?
Vilket Operativsystem ?Kan du logga in så borde det också funka att logga ut.
Testa med detta för att se om det gör någon skillnad:
if (isset($_GET['logout'])) { $_SESSION = array(); session_destroy(); header("Location: admin.php"); exit; }
Gjorde ingen skillnad tyvärr. Jag har installerat Foxserv på datorn. Väldigt nybörjaraktigt så ingenting är nog korrekt inställt. :) Men det funkar ju på min min internetserver så det spelar ingen roll. :) Nu är det dags att sova lite. Tack för att du snickrade ihop ett script åt mig! Tusen tack. :f
