Avatar billede nfssister Forsker
27. august 2005 - 16:15 Der er 10 kommentarer og
1 løsning

Problemer med lidt kode

jeg har fulgt denne vejledning:
http://www.eksperten.dk/artikler/669

men har problemer med:
[quote]<?php
//Helt i starten starter vi sessioner, og forbinder til vores database
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

//Tjekker om både brugernavn og kodeord er indtastet.
if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
//Hvis både brugernavn og kodeord er sat, går vi videre.
else
{
/*
Her bruger vi databasen for første gang, idet vi nu tjekker om der er
en bruger der har det brugernavn, der er indtasetet i formularen.
Vi bruger or die(mysql_error()) til at få mysql til at udskrive en fejl,
hvis der er noget galt med databasekaldet.
*/
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
//Tjekker om der er én rækker i databasen der har det indtasetde brugernavn
//Dette gør dog, at flere brugere ikke må have samme brugernavn!
if(mysql_num_rows($query) == '1'))
{
//Laver databasekaldet om til en liset (et array) i php.
$row = mysql_fetch_array($query);
//Tjekker om kodeordet i databasen er lig med det indtastede kodeord
if($row['kodeord'] == $_POST['kodeord'])
{
//Brugeren har indtastet rigtige oplysninger, nu skal han gemmes i sessioner
$_SESSION['brugernavn'] = $_POST['brugernavn'];
//Derudover skal han sendes til en hemlig side, hvorpå der bliver tjekket om han er logget ind
header("location: hemligside.php");
}
else
{
//Brugeren har skrevet et forkert kodeord
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}
//Brugernavnet fandtes ikke i databasen, derfor skal der udskrives en fejl.
else
{
//Brugeren har skrevet et forkert brugernavn
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}

?>[/quote]

Jeg har lidt kig på de Turborg-paranteser der.... For hver gang jeg logger ind melder den en fejl på linie 26 i starten, så pillede jeg lidt i de paranteser og så var det nogen andre linier, jeg prøvede så at følge den ud, men sidder fast til sidst....... nogen der har et bud på hvad der er galt ?
Avatar billede jaw Nybegynder
27. august 2005 - 16:28 #1
Har du fået løst linie 26-problemet? Altså fjernet den ene ) ?
if(mysql_num_rows($query) == '1') <- !

Hvis ja, hvad er der så af fejl nu? Hvad sker der, eller hvad sker der ikke? For når jeg retter din linie 26, så får jeg nogen databasefejl, men det er jo klart nok...
Avatar billede leif Seniormester
27. august 2005 - 16:29 #2
Prøv med:
<?php
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
  header("location: formular.htm");
  exit;
}
else
{
  $query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
  if(mysql_num_rows($query) == '1'))
  {
    $row = mysql_fetch_array($query);
    if($row['kodeord'] == $_POST['kodeord'])
    {
    $_SESSION['brugernavn'] = $_POST['brugernavn'];
    header("location: hemligside.php");
    }
    else
    {
    header("location: formular.htm");
    exit;
    }
  }
}
else
{
header("location. formular.htm");
exit;
}

?>
Avatar billede nfssister Forsker
27. august 2005 - 17:37 #3
Den siger stadig parantes fejl i linie 8
Avatar billede leif Seniormester
27. august 2005 - 17:41 #4
Skriv venligt den præcise fejl der kommer !
Avatar billede leif Seniormester
27. august 2005 - 17:42 #5
Og hvilken bruger du ? Min uden kommentarer eller din egen med kommentarer ?
Avatar billede jaw Nybegynder
27. august 2005 - 18:26 #6
Jeg får ingen parantesfejl på linie 8, så må du have noget vi ikke kan se.

Og leif, du har en fejl på linie 14 + at du har 2 gange else til samme if :)
Avatar billede leif Seniormester
27. august 2005 - 18:37 #7
jaw -> Tror bare jeg hopper tilbage til mit eget projekt !
Avatar billede nfssister Forsker
27. august 2005 - 19:41 #8
hmmm er ved at opgive det...... er der ikke nogen der har et login system jeg kan få ?
så jeg bare lige skal taste database og user/pass ind :)
Avatar billede jaw Nybegynder
27. august 2005 - 20:38 #9
Skriver den _parse error_, eller skriver den noget andet? Kan du ikke lige paste den pæcise fejlmeddelese du får?
Avatar billede jaw Nybegynder
27. august 2005 - 20:39 #10
Og ellers så prøv da leif's forslag, det eneste der skal rettes er en parantes og så den sidste else:

session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
  header("location: formular.htm");
  exit;
}
else
{
  $query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
  if(mysql_num_rows($query) == '1')
  {
    $row = mysql_fetch_array($query);
    if($row['kodeord'] == $_POST['kodeord'])
    {
    $_SESSION['brugernavn'] = $_POST['brugernavn'];
    header("location: hemligside.php");
    }
    else
    {
    header("location: formular.htm");
    exit;
    }
  }
}
Avatar billede nfssister Forsker
11. september 2007 - 20:25 #11
lukker spørgsmål
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
Computerworld tilbyder specialiserede kurser i database-management

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