Avatar billede cardinale Nybegynder
12. april 2003 - 18:32 Der er 21 kommentarer og
1 løsning

údskrivning af fejl før fejlen...

Jeg har følgende kode som driller lidt.
Det er et login script og det virker ok - men problemet er at den skriver : De indtastede oplysninger er ikke korrekte før man får tastet noget ind i formen...

<?php
session_start();
if($_SESSION['logget_ind'] == 1) {//Hvis brugeren ikke er logget in
header("Location:login_2.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>
<?php
if(!isset($_POST['Submit'])) {
$db =  mysql_connect("localhost", "xxx_dk", "xxx");
      mysql_select_db("xxx_dk001", $db);
   
$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$formuser'
    AND pass='$formpass'");

if(mysql_num_rows($tjek) != 0) {


$_SESSION['logget_ind'] = 1;
$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['formuser'];


header("Location:login_2.php");
exit;
}else
echo"De indtastede oplysninger er ikke korrekte";
}
?>
Avatar billede ahv Nybegynder
12. april 2003 - 18:36 #1
<?php
session_start();
if($_SESSION['logget_ind'] == 1) {//Hvis brugeren ikke er logget in
header("Location:login_2.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>
<?php
if(!isset($_POST['Submit'])) {
$db =  mysql_connect("localhost", "xxx_dk", "xxx");
      mysql_select_db("xxx_dk001", $db);
   
$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$formuser'
    AND pass='$formpass'");

if(mysql_num_rows($tjek) != 0) {


$_SESSION['logget_ind'] = 1;
$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['formuser'];


header("Location:login_2.php");
exit;
}else{
echo"De indtastede oplysninger er ikke korrekte";
}
?>
Avatar billede ahv Nybegynder
12. april 2003 - 18:36 #2
<?php
session_start();
if($_SESSION['logget_ind'] == 1) {//Hvis brugeren ikke er logget in
header("Location:login_2.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>
<?php
if(!isset($_POST['Submit'])) {
$db =  mysql_connect("localhost", "xxx_dk", "xxx");
      mysql_select_db("xxx_dk001", $db);
   
$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$formuser'
    AND pass='$formpass'");

if(mysql_num_rows($tjek) != 0) {


$_SESSION['logget_ind'] = 1;
$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['formuser'];


header("Location:login_2.php");
exit;
}else{
echo"De indtastede oplysninger er ikke korrekte";
}}
?>
Avatar billede cardinale Nybegynder
12. april 2003 - 18:40 #3
Desværre - ingen forskel!
Avatar billede ahv Nybegynder
12. april 2003 - 18:40 #4
$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'");
Avatar billede cardinale Nybegynder
12. april 2003 - 18:43 #5
nej det er ikke det..
Denne her linje :$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'");
Gør den ikke at det efter kun bliver udført hvis der bliver trykket på submit??
Avatar billede cardinale Nybegynder
12. april 2003 - 18:44 #6
Sorry mener : if(!isset($_POST['Submit'])) {
Avatar billede schaefner Juniormester
12. april 2003 - 18:50 #7
<?php
if(isset($_POST['Submit'])) {
    $db =  mysql_connect("localhost", "xxx_dk", "xxx");
    mysql_select_db("xxx_dk001", $db);
    $tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$formuser' AND pass='$formpass'");
    if(mysql_num_rows($tjek) == 0) {
        echo"De indtastede oplysninger er ikke korrekte";
    }else {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['Name'] = $_POST['formuser'];
        header("Location:login_2.php");
        exit;
    }
}
?>
Avatar billede schaefner Juniormester
12. april 2003 - 18:51 #8
Den her undre mig lidt:
if($_SESSION['logget_ind'] == 1) {//Hvis brugeren ikke er logget in
Skal det ikke nærmere være:
if(!isset($_SESSION['logget_ind'])) {//Hvis brugeren ikke er logget in
Avatar billede schaefner Juniormester
12. april 2003 - 18:53 #9
Og du skal måske også lige bruge $_POST[] i din query som ahv også skriver.

<?php
if(isset($_POST['Submit'])) {
    $db =  mysql_connect("localhost", "xxx_dk", "xxx");
    mysql_select_db("xxx_dk001", $db);
    $tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'");

    if(mysql_num_rows($tjek) == 0) {
        echo"De indtastede oplysninger er ikke korrekte";
    }else {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['Name'] = $_POST['formuser'];
        header("Location:login_2.php");
        exit;
    }
}
?>
Avatar billede cardinale Nybegynder
12. april 2003 - 18:53 #10
Nej heller ikke..
Avatar billede cardinale Nybegynder
12. april 2003 - 18:56 #11
Har følgende kode:

<?php
if(!isset($_POST['Submit'])) {
$db =  mysql_connect("localhost", "x", "x");
      mysql_select_db("x", $db);
   
$tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'");

if(mysql_num_rows($tjek) != 0) {


$_SESSION['logget_ind'] = 1;
$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['formuser'];


header("Location:login_2.php");
exit;
}else
echo"De indtastede oplysninger er ikke korrekte";
}
?>

Det virker - men den udskrver echo'et før submit...

De andre I har forsøgt virker ikke..
Avatar billede schaefner Juniormester
12. april 2003 - 18:57 #12
<?php
if(!isset($_POST['Submit'])) {
    $db =  mysql_connect("localhost", "x", "x");
    mysql_select_db("x", $db);
    $tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'") or die(mysql_error());
    if(mysql_num_rows($tjek) != 0) {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['Name'] = $_POST['formuser'];
        header("Location:login_2.php");
        exit;
    }else {
        echo"De indtastede oplysninger er ikke korrekte";
    }
}
?>
Avatar billede schaefner Juniormester
12. april 2003 - 18:57 #13
if(!isset($_POST['Submit'])) { skal lige være:
if(isset($_POST['Submit'])) {
Avatar billede cardinale Nybegynder
12. april 2003 - 19:02 #14
Desværre - jeg fatter det ikke.

Det hele kan koges ned til if(!isset($_POST['Submit'])) {
Det kan være jeg er forkert på den når jeg mener den ikke afvikler det efter uden tryk på submit?
Avatar billede schaefner Juniormester
12. april 2003 - 19:03 #15
if(!isset($_POST['Submit'])) {
^ Den tjekker om $_POST['Submit'] ikke er sat. Prøv det sidste eksempel jeg har postet.
Avatar billede schaefner Juniormester
12. april 2003 - 19:04 #16
og du vil vel tjekke om der er trykket på knappen.
Avatar billede cardinale Nybegynder
12. april 2003 - 19:06 #17
det sidste du har skrevet virker ikke - den sender ikke videre til login_2 - men den skriver heller ikke fejlen...  :)
Avatar billede cardinale Nybegynder
12. april 2003 - 19:06 #18
Jeg vil ikke have koden afviklet før der trykkes på knappen.
Avatar billede schaefner Juniormester
12. april 2003 - 19:20 #19
Prøv:

<?php
if(!isset($_POST['Submit'])) {
    $db =  mysql_connect("localhost", "x", "x");
    mysql_select_db("x", $db);
    $tjek = mysql_query("SELECT bruger, pass FROM admin WHERE bruger='$_POST[formuser]' AND pass='$_POST[formpass]'") or die(mysql_error());
    if(mysql_num_rows($tjek) != 0) {
        $_SESSION['logget_ind'] = 1;
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['Name'] = $_POST['formuser'];
        header("Location:login_2.php");
        exit;
    }else {
        echo"De indtastede oplysninger er ikke korrekte";
    }
} else {
    echo "Der skte et eller andet mærkeligt";
}
?>
Avatar billede schaefner Juniormester
13. april 2003 - 23:32 #20
Hvad siger den?
Avatar billede cardinale Nybegynder
13. april 2003 - 23:44 #21
Har fundet fejlen.
Skulle bare fjerne ! fra : if(!isset($_POST['Submit']))  :)
Avatar billede cardinale Nybegynder
13. april 2003 - 23:44 #22
Svar
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