Avatar billede Slettet bruger
08. september 2010 - 18:29 Der er 15 kommentarer og
1 løsning

PHP problemer

Gohej jeg er igang med siden http://www.aclogo.dk men er nu stødt ind i et par problemer, siden bliver hostet af one.com, med "register global" sat som on.

Mit problem er noget med mine sessions, det bøvler helt.

"functions.php":
<?php
class Login {
    var $User;
    var $Pass;
    var $query;
    function check_login($u,$p){   
        $this->User=htmlentities(trim(strtolower($u)));
        $this->Pass=htmlentities(trim(strtolower($u)));
        $this->query=mysql_query("SELECT * FROM aclogo_dk.admin WHERE user='".$this->User."' AND pass='".$this->Pass."' ") or die(mysql_error());
        if(mysql_num_rows($this->query)!=0){
        $_SESSION['admin']=true;
        $_SESSION['User']=$this->User;
        $_SESSION['Pass']=$this->Pass;
        mysql_query("UPDATE aclogo_dk.admin SET online_tid='time()+900' WHERE user='".$this->User."' AND pass='".$this->Pass."'")or die(mysql_error());
        return true;
        }else{
            return false;
            }   
        }
   

}

class Admin_panel extends Login{
    function admin_komponenter(){
    if($this->check_login($_SESSION['User'],$_SESSION['Pass'])==true){

echo '<div id="content" style="background-image:url(gfx/bg2.png); height:400px;">
  <div style="position:relative; left:200px; right:200px; top:40px; width:700px; height:auto; min-height:300px; max-width:1100px; overflow:auto; background:#FFF; ">
  <center>
  <table style="background:url(gfx/login_bg.png) top center no-repeat; margin-top:75px; margin-bottom:75px; max-width: " width="250" height="150">
  <tr><th>hejza</th> <th>hejza</th></tr>
  <tr><th>Hejza</th> <th>hejza</th></tr>
  </table>
';

   
   
            }
   
}

function online_tid(){
    $Pass=htmlentities(strtolower(trim($_SESSION['Pass'])));
    $User=htmlentities(strtolower(trim($_SESSION['User'])));
    $query=mysql_query("SELECT * FROM aclogo_dk.admin WHERE user='$User' and pass='$Pass' ");
if(mysql_num_rows($query)!=0){   
$row=mysql_fetch_assoc($query);
if(time<=$row['online_tid']){
mysql_query("UPDATE aclogo_dk.admin SET online_tid='time()+900' WHERE user='".$User."' and pass='".$Pass."' ")or die(mysql_error());                           
                            }else{
session_destroy();
header("Location: $_SERVER[PHP_SELF]");   
                            }
                }else{
session_destroy();
header("Location: $_SERVER[PHP_SELF]");
}
       
}

}

?>

"admin.php":
<?php
include("header.php");
include_once("functions.php");
$admin_panel=new Admin_panel;
  switch($_SESSION['admin']){
      case !true:
?>
  <div id="content" style="background-image:url(gfx/bg2.png); height:400px;">
  <div style="position:relative; left:200px; right:200px; top:40px; width:700px; height:auto; min-height:300px; max-width:1100px; overflow:auto; background:#FFF; ">
  <center>
  <table style="background:url(gfx/login_bg.png) top center no-repeat; margin-top:75px; margin-bottom:75px; " width="250" height="150">
  <form method="post">
<?php if(isset($_POST['submit']) and !empty($_POST['User']) and !empty($_POST['Pass'])){
          if($admin_panel->check_login($_POST['User'],$_POST['Pass'])==true){header("Location: $_SERVER[PHP_SELF]");
          }else{
              echo "<tr><th><font color='red'>Ingen Brugere fundet med de oplysninger</font></th></tr>";}
         
          }
?>
<tr><th class="login"><input type="text" name="User" class="login" /></th></tr>
<tr><th class="login"><input type="password" name="Pass" class="login" /></th></tr>
  <tr><th ><input type="submit" name="submit" class="login" value="Login" /></th></tr>
  </form>
  </table>
  <?php
  break;
 
  case true:
  $admin_panel->admin_komponenter();
  break;
  }
  ?>
  </center></div>

  </div>
<?php
include("bund.php");
?>

Tror det er i de 2 filer det bøvler, eller måske i index filen.

"index.php":
<?php
include("header.php");
include_once("functions.php");
$admin_panel=new Admin_panel;
$admin_panel->online_tid();
?>
  <div id="content">
  <div id="indhold" style=" background-color:#070707" >
  <object type="application/x-shockwave-flash" data="Countdown.swf" width="400" height="200" style="max-height:200px; max-width:400px;overflow:hidden;">
<param name="movie" value="Countdown.swf" />
<param name="wmode" value="transparent">
<param name="menu" value="false" />
</object>
</div>
  </div>
  <table id="info">
  <tr>
  <th id="velkommen" class="t1" <? if($admin_panel->check_login($_SESSION['User'],$_SESSION['Pass'])==true){?>ondblclick="edit(this.id);"<? }?>><font size="+2"  style="text-decoration:underline;">Velkommen</font><br />
  Velkommen til AC LoGo.<br />
      AC LoGo er et Reklame bureau med "hovedkontor" beliggende i Roskilde på Nord Sjælland. Vi går meget op i hvad vi laver og ved hvordan det gøres bedst.
    <br />
    På hjemmesiden her kan du komme i kontakt med os, læse omkring AC LoGo samt se vores pakkeløsninger som er til en suverænt billig pris!
</th>

  <th id="mail" class="t2"  ondblclick="edit(this.id)">
  </th>
  </tr>
  </table>
<?php
include("bund.php");
?>

Skriv hvis i skal have flere oplysninger.
Sidder og ligner et stort spørgsmåls tegn lige nu, så håber nogle kan hjælpe.
På forhånd tak
- Jonas
Avatar billede majbom Novice
08. september 2010 - 18:50 #1
og problemet er??
Avatar billede Slettet bruger
08. september 2010 - 18:55 #2
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in /customers/aclogo.dk/aclogo.dk/httpd.www/functions.php on line 56

Warning: Cannot modify header information - headers already sent by (output started at /customers/aclogo.dk/aclogo.dk/httpd.www/index.php:1) in /customers/aclogo.dk/aclogo.dk/httpd.www/functions.php on line 57

og sessionsne virker ikke
Avatar billede majbom Novice
08. september 2010 - 19:56 #3
du prøver tilsyneladende at 'destroye' en session der ikke eksisterer...

det er nok fordi du ikke har session_start(); inden du kalder session_destroy();
Avatar billede Slettet bruger
08. september 2010 - 20:00 #4
session_start(); er ikke nødvendigt da "Register globals" er slået til, hvis jeg skriver session start fucker den helt, men tror efterhånden jeg har fået fikset det.
Pånær nu gider den stadigt ikke "aktivere" de sessions
Avatar billede majbom Novice
08. september 2010 - 20:40 #5
okay, det var jeg ikke klar over...

er der nogen god grund til at du bruger register_globals?

hvis (når) din udbyder skifter til version 5.3 eller højere skal du til at lave det om...
Avatar billede Slettet bruger
08. september 2010 - 20:48 #6
har lige slået det fra, men nu hvis jeg sætter session_start ind så fucker den stadigt
Avatar billede majbom Novice
08. september 2010 - 20:55 #7
hvad betyder 'fucker'?
Avatar billede Slettet bruger
08. september 2010 - 21:01 #8
Behjælpelig kommentar? :-)
Avatar billede majbom Novice
08. september 2010 - 21:14 #9
du forklarer ikke problemet, du skriver bare at den fucker!?
Avatar billede kokkens Nybegynder
09. september 2010 - 00:32 #10
det har nok ikke noget med det at gør med

[query]
  $this->User=htmlentities(trim(strtolower($u)));
  $this->Pass=htmlentities(trim(strtolower($u)));
[/query]
samme $var til både user og pass
Avatar billede repox Seniormester
09. september 2010 - 09:28 #11
register_globals påvirker ikke dine sessions - faktisk har de slet ikke noget med dine sessions at gøre.

Først og fremmest skal du slå register_globals fra, så du bare er nogenlunde up-to-date i forhold til den udvikling PHP har været igennem.

Dernæst skal du huske at slå sessions til - som splazz fortæller dig, foregår det med funktionen session_start().

Funktionen session_start() skal køres før alt andet output.
Du har output på index.php på linie 1 - når du forsøger at modificere headers (som er krævet for at du kan anvende sessions) efter du har outputtet data, vil du få en fejlmeddelse der ligner den anden du nævner i indlæg #2.

Lidt grundlæggende forståelse for sessions ville måske være en ide - jeg har lavet en kort artikel som berører emnet og som måske kan hjælpe: http://err0r.dk/articles/read/sessions_for_begyndere
Avatar billede repox Seniormester
09. september 2010 - 09:32 #12
Og for at belyse problemet endnu mere inden du fortæller os at du ikke har output på linie et, så kan jeg oplyse dig om at din index.php fil har en UTF-8 BOM signatur i filen, hvilket også skaber output. Igen - med fare for at virke som om jeg reklamerer lige rigeligt med mit eget website - har jeg en kort kommentar knyttet til det her: http://err0r.dk/articles/read/de_mest_almindelige_fejl_beg_et_i_php#headers

Især de tre nederste linier er relevant for dit problem.
Avatar billede Slettet bruger
06. oktober 2010 - 08:52 #13
Jeg har fået løst det på egen hånd
Avatar billede repox Seniormester
06. oktober 2010 - 09:08 #14
Og jf. brugerbetingelserne ( http://www.eksperten.dk/brugerbetingelser ) du accepterede ved oprettelsen af din bruger (del 2.10) er du forpligtet til at dele din løsning med os andre.
Avatar billede Slettet bruger
06. oktober 2010 - 09:14 #15
slog det der register_globals fra og brugte bare session_start();
og så virkede det, så hudt jeg visker.

det er efterhånden et par måneder siden.
Avatar billede Slettet bruger
06. oktober 2010 - 09:14 #16
eller ikke et par måneder siden, mig der det var længere siden jeg havde oprettet tråden :)
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