webForumDet fria alternativet

style kod på admin sida?

5 svar · 483 visningar · startad av richardjoha

richardjohaMedlem sedan okt. 2005787 inlägg
#1

Varför fungerar inte denna koden:

<STYLE>

BODY {
	FONT-SIZE: 11px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
TD {
	FONT-SIZE: 11px; LINE-HEIGHT: 17px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.normal {
	FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
INPUT {
	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
SELECT {
	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
TEXTAREA {
	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
A {
	FONT-WEIGHT: normal; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A:link {
	FONT-WEIGHT: normal; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A:visited {
	FONT-WEIGHT: normal; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A:hover {
	FONT-WEIGHT: normal; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: underline
}
A:active {
	
}
A.fot {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif
}
A.fot:link {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif
}
A.fot:visited {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif
}
A.fot:hover {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, Verdana, sans-serif
}
.fotbig {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
INPUT.kontakt {
	FONT-WEIGHT: normal; FONT-SIZE: 10px; WIDTH: 110px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.headline {
	FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #485566; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; LETTER-SPACING: 1px
	}
.fot {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #485566; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; LETTER-SPACING: 1px	
	}
.rodpilar {
	FONT-WEIGHT: bold; FONT-SIZE: 17px; COLOR: #FF0000; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; LETTER-SPACING: 1px	
}
.newsheadline {
	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #485566; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; LETTER-SPACING: 1px
}
.maintext {
	FONT-SIZE: 11px; LINE-HEIGHT: 17px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
A.big {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A.big:link {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A.big:visited {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
A.big:hover {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: underline
	
</STYLE>

i denna filen?

<?php
   
   /*
      Admin för News v 1.1

   */
   session_start();
   # Variabler
   $page_title = "Administrera nyheterna";
   $self = $_SERVER['PHP_SELF'];
   $pass = "bra"; # Lösenordet för att logga in
 
   # Inkludera filen conn.php
   require("conn.php");
   
   /* Inloggningen */
 
   /* Logga in */
   if (isset($_POST['login'])){
       if ($_POST['pass']==$pass){
           $_SESSION['online'] = "online";
           header("Location: $self");
           exit;
        }
        else{
            echo "<script language='Javascript'>";
            echo "alert('Fel lösenord!');";
            echo "</script>";
        }
    }
 
   /* Logga ut */
   elseif (isset($_GET['logout']) && isset($_SESSION['online'])){
       unset($_SESSION['online']);
       session_destroy();
       header("Location: $self");
       exit;
       }
   /* Slut inloggning */
   
   /* MySQL */
   
   /* Radera nyheter */
   
   elseif (isset($_GET['delete']) && isset($_SESSION['online'])){
      $sql = "DELETE FROM $dbtable WHERE id={$_GET['delete']}";
      mysql_query($sql);
      header("Location: $self");
      exit;
   }
 
   /* Skriv in nya nyheter */   
   
   elseif (isset($_POST['send']) && isset($_SESSION['online'])){
      $sql = "INSERT INTO $dbtable VALUES  ('','".$_POST['writer']."', '".$_POST['title']."', '".$_POST['text']."', now())";
      mysql_query($sql) or die ("ERROR");
      header("Location: $self");
      exit;
   }
   
   /* Spara ändringen av nyheter */
 
   elseif (isset($_POST['saveedit']) && isset($_SESSION['online'])){
      $sql = "UPDATE $dbtable SET writer='".$_POST['writer']."', title='".$_POST['title']."', text='".$_POST['text']."' WHERE id={$_GET['id']}";
      mysql_query($sql) or die ("ERROR");
      header("Location: $self");
      exit;
   }
   
   /* Slut MySQL */
 
   # Sidans titel och CSS fil
   echo "<title>$page_title</title>";
   
   /* Länkarna */
   if (isset($_SESSION['online'])){
   echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
   echo "<tr>";
   echo "<td><a href=\"$self?write=\">Lägg till en nyhet</a> <a href=\"$self?logout=\">Logga ut</a>";
   echo "</tr>";
   echo "</table>";
   }
   else{
   echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
   echo "<tr>";
   echo "<td><a href=\"$self?login=\">Logga in</a>";
   echo "</tr>";
   echo "</table>";
   }
   echo "<hr>";
   
   /* Slut Länkarna */
 
   /* Tabeller */
   
   /* Inloggningsformulär */
   if (isset($_GET['login'])){
       echo "<form action='$self' method='post'>";
       echo "<TABLE border='0' cellpadding='4'>";
       echo "<TR>";
       echo    "<TD><big>Logga in</big></TD>";
       echo "</TR>";
       echo "<TR>";
       echo    "<TD><input type='password' name='pass'></TD>";
       echo "</TR>";
       echo "<TR>";
       echo    "<TD><input type='submit' name='login' value='Logga in'></TD>";
       echo "</TR>";
       echo "</TABLE>";
       echo "</form>";
    }
 
   
   /* Tabell för att skriva in nyheterna */
   
   elseif (isset($_GET['write']) && isset($_SESSION['online'])){
         echo "<form action=\"$self\" method=\"post\">";
      echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
      echo "<tr>";
      echo "<td>Skriv in nyheten:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Namn:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"writer\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Rubrik:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"title\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhet:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\"></textarea></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"submit\" name=\"send\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
      echo "</tr>";
      echo "</table>";
      echo "</form>";
   }
 
   /* Ändra nyhet */
 
   elseif (isset($_GET['edit']) && isset($_SESSION['online'])){
      
    $sql = "SELECT * FROM $dbtable WHERE id={$_GET['edit']}";
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    $writer = $row['writer'];
    $title = $row['title'];
    $text = $row['text'];
                
    
      echo "<form action=\"$self?id={$_GET['edit']}\" method=\"post\">";
      echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
      echo "<tr>";
      echo "<td>Ändra vald nyhet:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhetens författare:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"writer\" value=\"$writer\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhetens rubrik:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"title\" value=\"$title\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhetens text:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\">$text</textarea></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"submit\" name=\"saveedit\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
      echo "</tr>";
      echo "</table>";
      echo "</form>";
   }
 
   /* Visa nyheterna */
   
   else{
      $sql = "SELECT * FROM $dbtable ORDER BY date DESC";
      $result = mysql_query($sql) or die ("Couldn't select table");
 
      while ($row = mysql_fetch_assoc($result)) {
   
         echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
         echo "<tr>";
         echo "<td style=\"border-bottom: 1px solid gray;\">".$row["title"]."</td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td>".$row["writer"]." ".$row["date"]."</td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td>".nl2br($row['text'])."</td>";
         echo "</tr>";
     if (isset($_SESSION['online'])){
         echo "<tr>";
         echo "<td><a href=\"$self?delete={$row['id']}\">Radera</a> | <a href=\"$self?edit={$row['id']}\">Ändra</a></td>";
         echo "</tr>";
     }
         echo "</table>";
         echo "<br>";
            
      }
 
      /* Slut Tabeller */
      
      mysql_free_result($result);
 
   }
   /* Slut */
   
?>

Resultatet blir att det inte går att ändra medelanden mm.. man kommer bara till en tom sida.. ?!!?

Dies_IraeMedlem sedan aug. 2001145 inlägg
#2

kolla kode på sida när du laddat den och se om den vekligen är helt tom. (Har inte tittat så mycket på koden)

Ett tips är ju iof att avsluta php när du bara ska skriva ut så mycket html. Jag tycker de iaf är mycket enklare att hitta fel då.

tex:

<? if (login) { ?>

<table>alla annan html <?= $kanske_skriva_ut_en_variablal ?> fortsätta med html</table>

<? } ?>
sl0kMedlem sedan maj 2005562 inlägg
#3

använder du första css filen ? kollade igenom koden snabbt o hittade den inte nån stans..
skriver du ut <html> <body> etc.. nån stans ? ser att du skriver ut <title> vilket ska skrivas ut i <head> ser dock aldrig att du avslutar <head> innan du börjar skriva ut annat..

men som Dies_Irae sa så kontrollera den utskrivna koden så den är vad du förväntar dig .. är sidan tom så har du antagligen ett syntaxfel lr dyl i phpkoden

använd
error_reporting(E_ALL); högst upp på sidan så kommer du ev få några fel/varningsmeddelanden..

hanzukunMedlem sedan nov. 20058 inlägg
#4

Precis som Dies_Irae skriver är det lättare om man avslutar php-koden när man ska skriva mycket HTML så man slipper alla echo "bla bla \" bla bla\" bla bla". Problemet då är att man inte kan skriva ut variabler. Det löses genom följande (innanför <?php och ?>):

echo <<< ETT_NAMN_SOM_IDENTIFIERARE
Här är en hel del text och din IP är {$_SERVER['REMOTE_ADDR']} följt av en länk: <a href="http://www.webforum.nu">webforum</a>
ETT_NAMN_SOM_IDENTIFIERARE;

Jag vet att detta inte löser ditt problem men kan kanske förenkla kodskrivningen i fortsättningen, för att just förhindra en massa svårhittade fel.
Variabler i arrays måste ha {}-klammer, vanliga variabler inte. Det där ETT_NAMN_SOM_IDENTIFIERARE måste vara samma i början och slutet samt den senare får inte ha mellanslag, tabb eller andra tecken på den raden, då skiter det sig.

richardjohaMedlem sedan okt. 2005787 inlägg
#5

Problemet kvarstår, har testat allt ovanstående..

När jag testar lägga till html head body mm kan man inte logga in, får bara upp en blank sidan. Det går inte ens att trycka enter över <?php (som börjar på rad1) så den hamnar på rad2 och köra skriptet för då får jag också bara blankt vid inloggning... :(

<?php

   session_start();
   # Variabler
   $page_title = "Administrera nyheterna";
   $self = $_SERVER['PHP_SELF'];
   $pass = ""; # Lösenordet för att logga in
 
   # Inkludera filen conn.php
   require("conn.php");
   
   /* Inloggningen */
 
   /* Logga in */
   if (isset($_POST['login'])){
       if ($_POST['pass']==$pass){
           $_SESSION['online'] = "online";
           header("Location: $self");
           exit;
        }
        else{
            echo "<script language='Javascript'>";
            echo "alert('Fel lösenord!');";
            echo "</script>";
        }
    }
 
   /* Logga ut */
   elseif (isset($_GET['logout']) && isset($_SESSION['online'])){
       unset($_SESSION['online']);
       session_destroy();
       header("Location: $self");
       exit;
       }
   /* Slut inloggning */
   
   /* MySQL */
   
   /* Radera nyheter */
   
   elseif (isset($_GET['delete']) && isset($_SESSION['online'])){
      $sql = "DELETE FROM $dbtable WHERE id={$_GET['delete']}";
      mysql_query($sql);
      header("Location: $self");
      exit;
   }
 
   /* Skriv in nya nyheter */   
   
   elseif (isset($_POST['send']) && isset($_SESSION['online'])){
      $sql = "INSERT INTO $dbtable VALUES  ('','".$_POST['writer']."', '".$_POST['title']."', '".$_POST['text']."', now())";
      mysql_query($sql) or die ("ERROR");
      header("Location: $self");
      exit;
   }
   
   /* Spara ändringen av nyheter */
 
   elseif (isset($_POST['saveedit']) && isset($_SESSION['online'])){
      $sql = "UPDATE $dbtable SET writer='".$_POST['writer']."', title='".$_POST['title']."', text='".$_POST['text']."' WHERE id={$_GET['id']}";
      mysql_query($sql) or die ("ERROR");
      header("Location: $self");
      exit;
   }
   
   /* Slut MySQL */
 
   # Sidans titel och CSS fil
   echo "<title>$page_title</title>";
   
   /* Länkarna */
   if (isset($_SESSION['online'])){
   echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
   echo "<tr>";
   echo "<td><a href=\"$self?write=\">Lägg till en nyhet</a> <a href=\"$self?logout=\">Logga ut</a>";
   echo "</tr>";
   echo "</table>";
   }
   else{
   echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
   echo "<tr>";
   echo "<td><a href=\"$self?login=\">Logga in</a>";
   echo "</tr>";
   echo "</table>";
   }
   echo "<hr>";
   
   /* Slut Länkarna */
 
   /* Tabeller */
   
   /* Inloggningsformulär */
   if (isset($_GET['login'])){
       echo "<form action='$self' method='post'>";
       echo "<TABLE border='0' cellpadding='4'>";
       echo "<TR>";
       echo    "<TD><big>Logga in</big></TD>";
       echo "</TR>";
       echo "<TR>";
       echo    "<TD><input type='password' name='pass'></TD>";
       echo "</TR>";
       echo "<TR>";
       echo    "<TD><input type='submit' name='login' value='Logga in'></TD>";
       echo "</TR>";
       echo "</TABLE>";
       echo "</form>";
    }
 
   
   /* Tabell för att skriva in nyheterna */
   
   elseif (isset($_GET['write']) && isset($_SESSION['online'])){
         echo "<form action=\"$self\" method=\"post\">";
      echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
      echo "<tr>";
      echo "<td>Här skriver du in nyheten:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Rubrik:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"title\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhet:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\"></textarea></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"submit\" name=\"send\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
      echo "</tr>";
      echo "</table>";
      echo "</form>";
   }
 
   /* Ändra nyhet */
 
   elseif (isset($_GET['edit']) && isset($_SESSION['online'])){
      
    $sql = "SELECT * FROM $dbtable WHERE id={$_GET['edit']}";
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    $writer = $row['writer'];
    $title = $row['title'];
    $text = $row['text'];
                
    
      echo "<form action=\"$self?id={$_GET['edit']}\" method=\"post\">";
      echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
      echo "<tr>";
      echo "<td>Ändra vald nyhet:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhetens rubrik:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"text\" name=\"title\" value=\"$title\"></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td>Nyhetens text:</td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\">$text</textarea></td>";
      echo "</tr>";
      echo "<tr>";
      echo "<td><input type=\"submit\" name=\"saveedit\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
      echo "</tr>";
      echo "</table>";
      echo "</form>";
   }
 
   /* Visa nyheterna */
   
   else{
      $sql = "SELECT * FROM $dbtable ORDER BY date DESC";
      $result = mysql_query($sql) or die ("Couldn't select table");
 
      while ($row = mysql_fetch_assoc($result)) {
   
         echo "<table width=\"300\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
         echo "<tr>";
         echo "<td style=\"border-bottom: 1px solid gray;\"></td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td><SPAN class=newsheadline>".$row["date"]." | ".$row["title"]."</SPAN></td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td>".nl2br($row['text'])."</td>";
         echo "</tr>";
     if (isset($_SESSION['online'])){
         echo "<tr>";
         echo "<td><a href=\"$self?delete={$row['id']}\">Radera</a> | <a href=\"$self?edit={$row['id']}\">Ändra</a></td>";
         echo "</tr>";
     }
         echo "</table>";
         echo "<br>";
            
      }
 
      /* Slut Tabeller */
      
      mysql_free_result($result);
 
   }
   /* Slut */
   
?>
mmmMangeMedlem sedan jan. 2005110 inlägg
#6

hanzukun skrev:

Problemet då är att man inte kan skriva ut variabler. Det löses genom följande (innanför <?php och ?>):

echo <<< ETT_NAMN_SOM_IDENTIFIERARE
Här är en hel del text och din IP är {$_SERVER['REMOTE_ADDR']} följt av en länk: <a href="http://www.webforum.nu">webforum</a>
ETT_NAMN_SOM_IDENTIFIERARE;

Hmm.. jag tycker då iallafall att det är enklare att helt enkelt använda <?= ... ?> för att skriva ut variabler mitt i ett HTML-block.

EXEMPEL:
<input type="text" name="username" value="<?=$username?>">

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