webForumDet fria alternativet

$månad

PHPur PHP

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 →
Medlem sedan apr. 200312 679 inlägg
#21

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

Medlem sedan aug. 20002 975 inlägg
#22

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/

Medlem sedan apr. 200312 679 inlägg
#23

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?

Medlem sedan aug. 20002 975 inlägg
#24

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>
   ';

}

?>
Medlem sedan apr. 200312 679 inlägg
#25

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! :)

Medlem sedan aug. 20002 975 inlägg
#26

Du får sätta chmod till 777 för hela katalogen 'databas'.

Medlem sedan apr. 200312 679 inlägg
#27

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.

Medlem sedan aug. 20002 975 inlägg
#28

Med 777 ska du kunna skapa filer. Fastnade ditt chmod när du ändrade ?

Medlem sedan apr. 200312 679 inlägg
#29

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?

Medlem sedan aug. 20002 975 inlägg
#30

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>
   ';

}

?>
Medlem sedan apr. 200312 679 inlägg
#31

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

Medlem sedan aug. 20002 975 inlägg
#32

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

Medlem sedan apr. 200312 679 inlägg
#33

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

Medlem sedan aug. 20002 975 inlägg
#34

Rätt länk: http://www.a-kok.com/test/admin.php

Börjar bli trött :)

Medlem sedan apr. 200312 679 inlägg
#35

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.

Medlem sedan aug. 20002 975 inlägg
#36

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;
}
Medlem sedan apr. 200312 679 inlägg
#37

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

151 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)