Avatar billede wizin Nybegynder
27. september 2005 - 22:33 Der er 7 kommentarer

Login, php script

Jeg har oprettet 3 sider, men når jeg har logget ind på min index side. og skal taste tingene ind på den næste side. kommer det indtastede ikke ind i databasen.

hjemmeside : danishforce.frac.dk
---------------------------
Index-siden
brugernavn : danishforce
kode: tdf
----------------------------
indlæg.
kode: kodeord
---------------------------

Index.php (KLippet meget af det ud)
<?php

    mysql_connect("localhost", "danishforce", "xxxxx") or die(mysql_error());
    mysql_select_db("danishforce") or die (mysql_error());

    $medlem = mysql_query("SELECT * FROM forum ORDER BY nummer DESC") or die (mysql_error());


 
print "<tr><br></tr>";

    while ($row = mysql_fetch_array($medlem))
    {
        ?>
        <p align="left"><i><b><font size="3">
        <?php
          print "<tr>Dato: ".$row["dato"]."</tr>";
          ?>
          </font></b></i></p>
          <?php
         
          ?>
         
          <?php
          print "<tr><br></tr>";
          print "<tr>".$row["tekst"]."</tr>";
          ?>
          <i>
          <?php
          print "<tr><br></tr>";
      print "<tr>Indlæg af:  ".$row["bruger"]."</tr>";
      ?></i>
      <?php
      print "<tr><br></tr>";
      print "<tr><br></tr>";
      print "<tr><br></tr>";   
   
     
    }

 
  ?>            </font></b></i>
  <?
        include "logind.php";
       
        ?>
----------------------------------------------------------------
logind.php
<?
include "database2.php";
include "bruger.php";
?>
<?
$bruger = new bruger();

if(isset($_POST["brugernavn"]) &&
  isset($_POST["kodeord"])){
    if(get_magic_quotes_gpc()){
    $brugernavn = stripslashes($_POST["brugernavn"]);
$kodeord = stripslashes($_POST["kodeord"]);
    } else {
        $brugernavn = $_POST["brugernavn"];
        $kodeord = $_POST["kodeord"];
    }
  if($bruger->log_ind($brugernavn, $kodeord) == false)
    echo "<font color=red>fejl i login</font><br>\n";
}

if( $bruger->logget_ind() ){
    include "as.php";
  echo "Du er logget ind som " ;
  echo "<br>\n";
  echo "Klik <a href=logud.php>her</a> for at logge ud\n";
  } else {
  echo "<form method = post action = $PHP_SELF>\n";
  echo "brugernavn: <input name=brugernavn><br>\n";
  echo "kodeord: <input type=password name=kodeord><br>\n";
  echo "<input type=submit value=\"log ind\">\n";
  echo "</form><br>\n";
}
?>
--------------------------------------------
as.php
<?

if(isset($_POST['send']) && $_POST["kodeord"] =="kodeord")
{
  $dato = date("j/n - Y");
  $bruger = $_POST['bruger'];  // Man bruger $_POST , $_REQUEST er meget usikker
  $tekst = $_POST['tekst'];

  // sikring af data

  $bruger = addslashes($bruger);  // hvis folk brugter ' \ osv. uden addslshashes() vil mysql brokke sig rimelige meget.
  $tekst = addslashes($tekst);

  mysql_connect("localhost", "danishforce", "ulztrh") or die(mysql_error());
  mysql_select_db("danishforce") or die (mysql_error());

 
mysql_query("INSERT INTO forum(nummer,dato, bruger,tekst) values(0, '$dato','$bruger','$tekst') ");
}

?>

<html>
<form name="forum" method="post" action="">
            <p align="center">Nyheds Indlæg
            <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Kun
            Elite og præsidenten kan indlægge nyheder på siden. Da
            der ellers bliver alt for mange indlæg herinde. Kodeordet fåes af
            loras, og vil blive opdateret 1 gang om måneden
            </font>
    <p>Indtast brugernavn:&nbsp;&nbsp;&nbsp; <input type="text" name="bruger" size="20" maxlength="20"></p>
    <p>Skiv indlæg:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <textarea name="tekst" rows="2" cols="28"></textarea>
    <p>Indtast kodeord:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="password" name="kodeord">
    <input type="submit" name="send" value="send">                <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <p>Lige så snart der er trykket på send er indlægget sat ind på <a href="index.php">Nyheds</a>
    siden</p>
    <p>Loras sletter jævnligt de ældste indlæg så der ikke bliver for
    mange.</p>
    </font>
</html>
------------------------------------
database2.php + datanase.php
<?
    mysql_connect("localhost", "danishforce", "xxxx") or die(mysql_error());
    mysql_select_db("danishforce") or die (mysql_error());
?>
--------------------------------------------------------------
bruger.php
<?
class bruger{
    var $brugernavn, $kodeord;

    function bruger(){
    if(isset($_SESSION["brugernavn"]) &&
        isset($_SESSION["kodeord"]))
      $this->log_ind($_SESSION["brugernavn"], $_SESSION["kodeord"]);
  }

  function log_ind($brugernavn, $kodeord){
    $bruger_slash = addslashes($brugernavn);
    $kode_slash = addslashes($kodeord);
    $foresp =
      mysql_query("SELECT * FROM bruger ".
          "WHERE brugernavn = '$bruger_slash' AND ".
          "kodeord = '$kode_slash'");
    if(mysql_num_rows($foresp) == 1){
      $this->brugernavn = $brugernavn;
      $this->kodeord = $kodeord;
      $_SESSION["brugernavn"] = $this->brugernavn;
      $_SESSION["kodeord"] = $this->kodeord;
      return true;
    } else {
        $this->log_ud();
      return false;
    }
  }

  function log_ud(){
    if($this->logget_ind()){
              unset($this->brugernavn);
              unset($_SESSION["brugernavn"]);
              unset($this->kodeord);
              unset($_SESSION["kodeord"]);
              return true;
    } else
              return false;
  }

  function logget_ind(){
    if(isset($this->brugernavn) && isset($this->kodeord))
      return true;
    else
      return false;
  }

  function opret($brugernavn, $kodeord){
    $bruger_slash = addslashes($brugernavn);
    $kode_slash = addslashes($kodeord);
    $foresp = mysql_query("SELECT * FROM bruger ".
              "WHERE brugernavn = '$bruger_slash'");
    if(mysql_num_rows($foresp) != 0)
      return false;
    else{
      mysql_query("INSERT INTO bruger (brugernavn, kodeord) ".
          "VALUES ('$bruger_slash', '$kode_slash')");
      return true;
    }
  }

  function fjern($brugernavn){
    $bruger_slash = addslashes($brugernavn);
    $foresp = mysql_query("SELECT * FROM bruger ".
              "WHERE brugernavn = '$bruger_slash'");
    if(mysql_num_rows($foresp) != 1)
      return false;
    else{
      mysql_query("DELETE FROM bruger ".
          "WHERE brugernavn = '$bruger_slash");
      return true;
    }
  }

  function hent_brugernavn(){
    if($this->logget_ind())
          return $this->brugernavn;
    else
        return "";
  }

  function hent_kodeord(){
    if($this->logget_ind())
        return $this->kodeord;
    else
        return "";
  }

  function ret_kodeord($kodeord){
    if($this->logget_ind()){   
    $bruger_slash = addslashes($this->brugernavn);
    $kode_slash = addslashes($kodeord);
    mysql_query("UPDATE bruger ".
        "SET kodeord = '$kode_slash' ".
        "WHERE brugernavn = '" . $bruger_slash . "'");
    $this->kodeord = $kodeord;
    $_SESSION["kodeord"] = $kodeord;
    return true;
      } else
    return false;
  }
}
?>
Avatar billede jaw Nybegynder
27. september 2005 - 22:35 #1
Du bør altid tilføje:
or die(mysql_error()); til din forespørgsel, det kan ofte hjælpe.
Avatar billede wizin Nybegynder
27. september 2005 - 22:37 #2
jeps det har jeg også gjort alle steder
Avatar billede jaw Nybegynder
27. september 2005 - 22:41 #3
Kan du udpege lidt mere præcist hvilken INSERT-forespørgsel det er der giver dig bøvl? Og gav det noget resultat at særre or die() på?
Avatar billede wizin Nybegynder
27. september 2005 - 22:45 #4
det er på as.php siden, altså at få indsat indlægget folk laver.

Kodeordet indsættelse på index siden fungerer fint nok.

den kode du kan se, mangler der nogen steder noget die mysql
Avatar billede wizin Nybegynder
28. september 2005 - 23:38 #5
Er der virkelig ikke nogen som kan finde ud af det ?
Avatar billede jaw Nybegynder
29. september 2005 - 15:46 #6
Prøv at udskrive din forespørgsel:
echo "INSERT INTO forum(nummer,dato, bruger,tekst) values(0, '$dato','$bruger','$tekst')";

Indeholder den vhad den skal?
Avatar billede wizin Nybegynder
29. september 2005 - 17:41 #7
Ja det virker fint hvis jeg bare kører as.php siden ind, og taster det ind der.
Men kører jeg det fra index.php. og logger ind og derefter taster ind. sætter den det ikke ind.

Det er hver gang jeg lavet lavet et login på index.php siden. så vil den ikke poste det.

Det skal være sådan at folk skal logge ind, og derefter får de lov at ligge et indlæg ind.
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