Avatar billede yessir Nybegynder
17. april 2002 - 22:19 Der er 20 kommentarer og
1 løsning

GRR cookies

Hey!

Nu er jeg fan*** træt af at læse andres svar osv.. :)

Mit eget skidt virker bare ikke. Jeg får heletiden en header fejl.

Mit login-script er således:

<?php
if($ok){
  mysql_connect('Localhost','root','');
  mysql_select_db("db");
  $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' ");
  $row = mysql_fetch_array($result);
  $Alder = $row[alder];
  $Alias = $row[alias];
  $Rang = $row[rang];
  if($Passw == "$row[kode]") {
    setcookie("Alias", "$Alias", time() + 99999);
    setcookie("Alder", "$Alder", time() + 99999);
    setcookie("Rang", "$Rang", time() + 99999);
    echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";
    exit;
  } else {
    echo "Du har ikke adgang!";
  }
}

?>

<FORM action="<?$PHP_SELF;?>" method="Post">
Brugernavn:
<BR>
<INPUT TYPE="TEXT" NAME="Bruger">
<BR>
Adgangskode:
<BR>
<INPUT TYPE="TEXT" NAME="Passw">
<BR>
<INPUT TYPE="Submit" NAME="ok" Value="Login">
</FORM>

Samtidigt med at i retter dette, hvordan gør man så brugeren ikke bare kan trykke "Login" uden at indtaste noget også få grønt lys? :(
Avatar billede well_r Nybegynder
17. april 2002 - 22:25 #1
$result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' ");
prøv at lave denne om til

$result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'") or die (mysql_error());
Avatar billede bigo Nybegynder
17. april 2002 - 22:26 #2
eller

$result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' AND status='on'") or die (mysql_error());
Avatar billede bigo Nybegynder
17. april 2002 - 22:28 #3
istedet for

echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";

ville jeg måske benytte denne

header("Location: index.php");
Avatar billede well_r Nybegynder
17. april 2002 - 22:30 #4
fæsser bigo..
det er jo ikke dér som problemet er.. der bliver udskrevet noget FØR phpscriptet bliver udført!
Avatar billede bigo Nybegynder
17. april 2002 - 22:46 #5
hmm ja.. men jeg kan ikke se noget.. måske er det kun en del af noget større (hmmmm)
Avatar billede yessir Nybegynder
17. april 2002 - 22:53 #6
Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 37

Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 38

Warning: Cannot add header information - headers already sent by (output started at C:\hp\login.php:15) in C:\hp\login.php on line 39

De 3 linjer er lige ved setcookie
Avatar billede asger Nybegynder
17. april 2002 - 22:55 #7
problemet er at der bliver udskrevet noget af scriptet før dine cookies bliver sat. Det er i linie 15 at fejlen opstår. Smid lige hele dit script herind.
Avatar billede asger Nybegynder
17. april 2002 - 22:57 #8
du kan ikke sætte en cookie hvis scriptet allerede har udskrevet noget. Det kan sagtens være en tom linie i toppen af dit script ell.
Avatar billede asger Nybegynder
17. april 2002 - 23:03 #9
Her er et lille javascript som fixer dit problem med at folk bare kan trykke login uden at skrive noget:

<FORM name="form" action="<?$PHP_SELF;?>" method="Post">
Brugernavn:
<BR>
<INPUT TYPE="TEXT" NAME="Bruger">
<BR>
Adgangskode:
<BR>
<INPUT TYPE="TEXT" NAME="Passw">
<BR>
<INPUT TYPE="Submit" NAME="ok" Value="Login" onclick="return tjek_indhold()">
</FORM>
<script language="JavaScript">
<!--
function tjek_indhold() {
    if(form.elements.Bruger.value == "") {
        alert("Du skal skrive angive Bruger");
        return false
    }
    if(form.elements.Passw.value == "") {
        alert("Du skal skrive Adgangskode");
        return false
    }
}
//-->
</script>
Avatar billede yessir Nybegynder
17. april 2002 - 23:06 #10
<html>
<head>
<title>yes yes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body leftmargin="0">
<table width="764" border="0" cellspacing="0" cellpadding="0" bgcolor="#993300" align="center">
  <tr>
    <td><img src="images/logo.gif"></td>
  </tr>
  <tr>
    <td>
      <table width="764" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="2" bgcolor="#000000">
            <!--border-->
          </td>
          <td width="167" valign="top"><?php include("inc/menu.inc"); ?></td>
          <td width="5">
            <!--tom-->
          </td>
          <td width="479" valign="top">
            <div align="center"><img src="images/space.gif" width="10" height="15"><br>
              <img src="images/banner.gif" width="468" height="60"><br><br><br></div>
<?php
if($ok){
  mysql_connect('Localhost','root','');
  mysql_select_db("db");
  $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'")or die (mysql_error());
  $row = mysql_fetch_array($result);
  $Alder = $row[alder];
  $Alias = $row[alias];
  $Rang = $row[rang];
  if($Passw == "$row[kode]") {
    setcookie("Alias", "$Alias", time() + 99999);
    setcookie("Alder", "$Alder", time() + 99999);
    setcookie("Rang", "$Rang", time() + 99999);
    echo "<META HTTP-EQUIV='Refresh' CONTENT='10;URL=index.php'>";
    exit;
  } else {
    echo "Du har ikke adgang!";
  }
}

?>

<FORM action="<?$PHP_SELF;?>" method="Post">
Brugernavn:
<BR>
<INPUT TYPE="TEXT" NAME="Bruger">
<BR>
Adgangskode:
<BR>
<INPUT TYPE="TEXT" NAME="Passw">
<BR>
<INPUT TYPE="Submit" NAME="ok" Value="Login">
</FORM>
            </td>
          <td width="5">
            <!--tom-->
          </td>
          <td width="120" valign="top">
            <?php include("inc/hojre.php"); ?>
          </td>
          <td width="2" bgcolor="#000000">
            <!--border-->
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td><img src="images/bund.gif"></td>
  </tr>
</table>
</body>
</html>

Tror godt man nemt kan lave en tjekker ovenover i selve PHP scriptet (ser pænest ud)
Avatar billede asger Nybegynder
17. april 2002 - 23:07 #11
<?php
if($ok){
  mysql_connect('Localhost','root','');
  mysql_select_db("db");
  $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on'")or die (mysql_error());
  $row = mysql_fetch_array($result);
  $Alder = $row[alder];
  $Alias = $row[alias];
  $Rang = $row[rang];
  if($Passw == "$row[kode]") {
    setcookie("Alias", "$Alias", time() + 99999);
    setcookie("Alder", "$Alder", time() + 99999);
    setcookie("Rang", "$Rang", time() + 99999);
    echo "<META HTTP-EQUIV='Refresh' CONTENT='10;URL=index.php'>";
    exit;
  } else {
    echo "Du har ikke adgang!";
  }
}

?>
<html>
<head>
<title>yes yes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body leftmargin="0">
<table width="764" border="0" cellspacing="0" cellpadding="0" bgcolor="#993300" align="center">
  <tr>
    <td><img src="images/logo.gif"></td>
  </tr>
  <tr>
    <td>
      <table width="764" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="2" bgcolor="#000000">
            <!--border-->
          </td>
          <td width="167" valign="top"><?php include("inc/menu.inc"); ?></td>
          <td width="5">
            <!--tom-->
          </td>
          <td width="479" valign="top">
            <div align="center"><img src="images/space.gif" width="10" height="15"><br>
              <img src="images/banner.gif" width="468" height="60"><br><br><br></div>

<FORM action="<?$PHP_SELF;?>" method="Post">
Brugernavn:
<BR>
<INPUT TYPE="TEXT" NAME="Bruger">
<BR>
Adgangskode:
<BR>
<INPUT TYPE="TEXT" NAME="Passw">
<BR>
<INPUT TYPE="Submit" NAME="ok" Value="Login">
</FORM>
            </td>
          <td width="5">
            <!--tom-->
          </td>
          <td width="120" valign="top">
            <?php include("inc/hojre.php"); ?>
          </td>
          <td width="2" bgcolor="#000000">
            <!--border-->
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td><img src="images/bund.gif"></td>
  </tr>
</table>
</body>
</html>

Det skulle virke
Avatar billede yessir Nybegynder
17. april 2002 - 23:11 #12
hvad har du rettet?
Avatar billede yessir Nybegynder
17. april 2002 - 23:12 #13
nåååh...har set :)
Avatar billede yessir Nybegynder
17. april 2002 - 23:12 #14
tester lige...
Avatar billede asger Nybegynder
17. april 2002 - 23:12 #15
jeg har bare rykket dit PHP kode op til toppen af scriptet, da du vil få header error når du forsøger at sætte en cookie efter at du allerede har skrevet noget html - hvis du forstår.
Avatar billede yessir Nybegynder
17. april 2002 - 23:15 #16
du kan vel ikek fixe det der med tomme felter med if?

Og hvordan er det lige man nemmest får cookies-værdier udskrevet igen?

Bare med: Blabla dette er tekst og du er logget ind med: $Bruger ???
Avatar billede yessir Nybegynder
17. april 2002 - 23:16 #17
du er selvfølgelig sikret 50 poínt :)
Avatar billede asger Nybegynder
17. april 2002 - 23:20 #18
<?php
if($ok){
  if($Bruger == "") {
  print "Du skal angive Bruger<br>";
  $loginfail = true;
  }
  if($Passw == "") {
  print "Du skal angive Adgangskode<br>";
  $loginfail = true;
  }
  if(!$loginfail) {
  mysql_connect('Localhost','root','');
  mysql_select_db("db");
  $result = mysql_query("SELECT * From brugere WHERE alias='$Bruger' && status='on' ");
  $row = mysql_fetch_array($result);
  $Alder = $row[alder];
  $Alias = $row[alias];
  $Rang = $row[rang];
  if($Passw == "$row[kode]") {
    setcookie("Alias", "$Alias", time() + 99999);
    setcookie("Alder", "$Alder", time() + 99999);
    setcookie("Rang", "$Rang", time() + 99999);
    echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";
    exit;
  } else {
    echo "Du har ikke adgang!";
  }
  }
}

?>

Prøv med det her og ja det er bare med Print $Bruger
Avatar billede asger Nybegynder
17. april 2002 - 23:21 #19
øhh jeg mener selvfølgelig <? print $Alias;?> for at printe Bruger ;)
Avatar billede yessir Nybegynder
17. april 2002 - 23:24 #20
Man skal ikke først connecte til cookie først?

Altså ligesom i session skriver man jo: session_start() HVER gang de skal hentes frem osv..
Avatar billede asger Nybegynder
17. april 2002 - 23:34 #21
nope, mener jeg ikke.
se mere under http://www.php.net/setcookie
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