Avatar billede nh92 Nybegynder
03. marts 2009 - 16:14 Der er 22 kommentarer

Redigerings SESSION

Er der nogle der ved hvordan jeg laver en SESSION, så jeg kan trække data ud i et tekstfelt, så det er nemmere at update/redigere. Jeg kan sagtens finde ud af det, ved et login. Men ikke når jeg skal lave en session til en anden database, end den man logger ind med.
Avatar billede jakobdo Ekspert
03. marts 2009 - 16:28 #1
Hvad mener du med til en anden database ?
Avatar billede nh92 Nybegynder
03. marts 2009 - 16:35 #2
F.eks. trække dataen ud af 'velkomst' .
Avatar billede majbom Novice
03. marts 2009 - 16:36 #3
du skal bare skrive:

$_SESSION != velkomst i din login.php




hint: der er ingen der aner hvad du snakker om, prøv at forklare det lidt bedre...
Avatar billede andreas13_fam Nybegynder
03. marts 2009 - 16:38 #4
Jeg er ikke sikker på at jeg forstår dig helt, men er det noget i denne stil.
echo '<input type="text" name="noget" value="'.$_SESSION['noget'].'">';
Avatar billede jakobdo Ekspert
03. marts 2009 - 16:38 #5
Når du skriver: Bare trække data ud af velkomst.
Hvad er velkomst så ?
Hvis vi snakker om en admin funktion, så skal du jo tjekke login.
Og er login korrekt, så viser du nogle felter med data som de er i dag.
Giver brugeren lov til at rette data og overskriver de gamle data.
Men måske jeg misforstår.
Avatar billede nh92 Nybegynder
03. marts 2009 - 16:46 #6
Okay min fejl. Prøver at forklare lidt bedre:

Sådan her ser min nuværende login funktion ud:

<?php
include ("mysql.php");

session_start();

if(!isset($_POST['Submit'])) { //Tester om brugeren kom fra  index.html
    echo "Du skal komme fra index.php";
    }else{
        $postbruger = $_POST['brugernavn'];
        $postpass = $_POST['password'];
//For læservenligheden overføres post variablerne til normale variabler

        $resultat = mysql_query("SELECT id FROM `admin` WHERE brugernavn = '$postbruger' AND
password = '$postpass'");//Spørger efter ID

        $number = mysql_num_rows($resultat);//Tæller antaller af resultater
        if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget in
        $_SESSION['loget_in'] = 1;
        $_SESSION['brugernavn'] = $postbruger;
        $_SESSION['password'] = $postpass; //Sætter session variablerne
        echo "Hej $postbruger. Du er nu logget ind:";
        ?>
        <br><br>
          <a href="velkomst.php">Vil du redigere din velkomst ?</a><br>
        <a href="opret-nyhed.php">Vil du skrive en nyhed ?</a><br>    <br>
        <a href="logud.php">Log ud</a>
        <?

        }else echo"De indtastede oplysninger er ikke korrekte";
        }
?>

Her laver den jo en SESSION. Men er det her jeg skal tilføje noget, at at jeg kan gå ind på velkomst.php, og få gjort sådan at jeg kan trække min database "velkomst" ud i tekstfeltet, så jeg kan redigere denne.
Avatar billede jakobdo Ekspert
03. marts 2009 - 16:52 #7
Og hvad er velkomst ?
Er det et felt i en tabel, som bliver vist som velkomst til alle brugere ?

Hvis ja, så kan du f.eks. lave:

<?php
session_start();
if($_SESSION['admin']){
//Træk feltet ud fra DB
//Lav en form med action="opdater.php"
<input type="text" name="velkomst" value="DATA_FRA_TABELLEN" />
//Submit knap.
}
?>

<?php
//opdater.php
//Tjek for admin.
//opdater feltet i tabellen, med $_POST['velkomst']
?>
Avatar billede nh92 Nybegynder
03. marts 2009 - 17:01 #8
Hov sorry. Nej det er en anden tabel, der bliver vist på forsiden for alle.
Avatar billede nh92 Nybegynder
03. marts 2009 - 17:19 #9
Det er derfor jeg har et problem, med at få forbundet min session, til en anden tabel end den som der bliver forbundet til ved mit login. Derfor kan jeg ikke få hentet mine oplysninger fra tabellen velkomst ud i et tekstfelt.
Avatar billede andreas13_fam Nybegynder
03. marts 2009 - 17:36 #10
Du har altså 2 tabeller, en som de alm. bruger ser, og en som admin ser. Kan du give et eksempel på hvordan din database "velkomst" og "den anden tabel" ser ud hvis det da ikke er den samme.
Avatar billede nh92 Nybegynder
03. marts 2009 - 17:41 #11
Min tabel velkomst har bare 2 felter, et id og et tekstfelt, hvor selve velkomsten står i.

Jeg skal have gjort sådan, at når du logger ind som admin, skal du kunne redigere den. Kort fortalt. Og ovenfor kan i se hvilken SESSION jeg bruger når jeg logger ind.
Avatar billede andreas13_fam Nybegynder
03. marts 2009 - 19:55 #12
hvad med noget alla dette så (utestet).

if ($_SESSION['loget_in'] == 1)
{
  if ($_SESSION['brugernavn'] == "dit brugernavn" && $_SESSION['password'] == "dit kodeord")
  {
      if ($_GET['rediger'] == "send")
      {
      //MySQL som opdatere siden
      }

      //MySQL som opretter forbindelse til din database
      while($row = mysql_fetch_assoc($query))
      {
      <form action="side.php?rediger=send" method="post">
      <textarea name="velkommen" style="width:100px;height:300px;">
      echo $row['tekstfelt'];
      </textarea>
      <input type="submit" value=" Opdater ">
      </form>
      }
  }
}
Avatar billede andreas13_fam Nybegynder
05. marts 2009 - 15:06 #13
Respons !!!
Avatar billede nh92 Nybegynder
06. marts 2009 - 15:34 #14
Undskyld jeg ikke lige har svaret, men jeg har haft meget travlt lige de her dage, men nu er det heldigvis blevet weekend.

Men har lige testet det svar andreas, men der kommer en fejl på denne linje:

<form action="side.php?rediger=send" method="post">

Den siger denne fejl:

Parse error: syntax error, unexpected '<' in W:\www\Joses hjemmeside\velkomst.php on line 74

Hvad skyldes det lige??
Avatar billede andreas13_fam Nybegynder
06. marts 2009 - 16:54 #15
Det skyldes at der ikke står echo '';
Det er jo ikke en løsning men bare en vejledning.
Men hvis jeg skal være vennelig så er her en med echo

if ($_SESSION['loget_in'] == 1)
{
  if ($_SESSION['brugernavn'] == "dit brugernavn" && $_SESSION['password'] == "dit kodeord")
  {
      if ($_GET['rediger'] == "send")
      {
      //MySQL som opdatere siden
      }

      //MySQL som opretter forbindelse til din database
      while($row = mysql_fetch_assoc($query))
      {
echo '
      <form action="side.php?rediger=send" method="post">
      <textarea name="velkommen" style="width:100px;height:300px;">
      '.$row['tekstfelt'].'
      </textarea>
      <input type="submit" value=" Opdater ">
      </form>
    ';
      }
  }
}
Avatar billede andreas13_fam Nybegynder
06. marts 2009 - 16:59 #16
Det fungere sådan:
if ($_SESSION['loget_in'] == 1)
tjekker om du er logget ind
if ($_SESSION['brugernavn'] == "dit brugernavn" && $_SESSION['password'] == "dit kodeord")
Her skriver du dit brugernavn og adgangskode, hvis det der er i SESSION stemmer med if () så forsætter den.
Du kan eventuelt tilføje en else { } hvor den udskriver velkomst til de bruger som ikke er admin.

if ($_GET['rediger'] == "send")
hvis du har trykket på opdater knappen sker dette.

      while($row = mysql_fetch_assoc($query))
      {
      }
udskriver det der står i databasen.
Avatar billede nh92 Nybegynder
06. marts 2009 - 18:04 #17
Nu vises der ikke noget på skærmen. Den er bare blank.
Avatar billede andreas13_fam Nybegynder
06. marts 2009 - 18:57 #18
Prøv dette så:
if ($_SESSION['loget_in'] == 1)
{
  if ($_SESSION['brugernavn'] == "dit brugernavn" && $_SESSION['password'] == "dit kodeord")
  {
      if ($_GET['rediger'] == "send")
      {
      //MySQL som opdatere siden
      }

      //MySQL som opretter forbindelse til din database
      while($row = mysql_fetch_assoc($query))
      {
echo '
      <form action="side.php?rediger=send" method="post">
      <textarea name="velkommen" style="width:100px;height:300px;">
      '.$row['tekstfelt'].'
      </textarea>
      <input type="submit" value=" Opdater ">
      </form>
    ';
      }
  }
  else
  {
      //MySQL som opretter forbindelse til din database
      while($row = mysql_fetch_assoc($query))
      {
      echo $row['tekstfelt'];
      }
}
else
{
echo 'Du er ikke logget ind';
}


Jeg bliver ikke rigtig klog på hvad problemet er lige nu :D
Kan jeg ikke få hele din PHP kode igen så skal jeg se hvad jeg kan gøre :D Men har du husket at logge ind og udfylde brugernavn og password if felet i din kode, det kunne være at du slet ikke var logget ind ;D
Avatar billede nh92 Nybegynder
07. marts 2009 - 09:41 #19
Hmm. Prøv skriv en mail til mig på n-haarup@hotmail.com. så kan jeg lige sende dig filerne, hvor man logger ind, hvor der bliver tjekket login, og så denne her velkomst. Hvis det var det du tænkte på?
Avatar billede majbom Novice
04. november 2010 - 11:23 #20
kan vi lukke hér?
Avatar billede Slettet bruger
04. november 2010 - 22:05 #21
For min skyld kan vi godt lukke, så vidt jeg husker kom der ikke noget ud af kontakten men jeg skal være ærlig og sige at jeg ikke rigtig kan huske det, det er jo lang tid siden splazz.

Hilsen
Andreas
Avatar billede majbom Novice
04. november 2010 - 22:14 #22
ja det er sq længe siden, vi må se om spørger vender tilbage, ellers kommer vi jo ikke videre alligevel :S
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