Avatar billede spacecase Nybegynder
17. december 2000 - 19:50 Der er 26 kommentarer og
1 løsning

Underlig Fejl.

Davs dette gir mig en underlig fejl, og jeg kan virkelig ikke hitte ud af hvad der går galt for den.

Her er koden.

<?

$conn = mysql_connect(\"localhost\",\"root\",\"root\");
mysql_select_db(\"Caboom\");

$little_pwd = strtolower($password);

if ($brugernavn == \"\") {
no_name();
}
else {
check_usr_in_db((\'$brugernavn\'), $room);
}

function check_usr_in_db((\'$username\'),(\'$rum\')) {

if ($username == $Brugernavn) {
validate_user(\'$brugernavn\', $little_pwd, $room);
}
else {
$pass = \"\";
$sta = \"Gæst\";
frameset(\'$username\', $pass, $sta, $rum);
}

}

function validate_user(\'$usr\',$pwd, $room) {

// Hent først data ud
$resultat = mysql_query(\"select Brugernavn,password,status from Brugerliste where Brugernavn = \'$usr\'\");

// Kør så igennem for hver række
while ($bruger = mysql_fetch_array($resultat)) {

extract($bruger);

if ($pwd == $password) {
frameset(\'$usr\', $pwd, $status, $room);
}
else {
error(\'$usr\',$pwd);
}
}
}

function error(\'$user\', $pass, $status) {
echo \"Forkert bruger/password kombination.<br>Indtastet Brugernavn : \".$user.\"<br>Indtastet Password : \".$pass.\" \";
}

function frameset(\'$user\',$pass, $sta, $rum) {
if ($sta == \'Gæst\') {
header(\"Location: frameset.php?brugernavn=$user&status=$sta&room=$rum\");
}
else {
header(\"Location: frameset.php?brugernavn=$user&password=$pass&status=$sta&room=$rum\");
}
}

function no_name() {
echo \"<center>Du skal skrive et brugernavn for at kunne logge ind.</center>\";
}

mysql_close($conn);

?>

KBJ
Avatar billede lp Nybegynder
17. december 2000 - 19:56 #1
hvad siger du den underlige fejl er? hvilken linje etc....?
Avatar billede spacecase Nybegynder
17. december 2000 - 19:59 #2
dette er fejlkoden.

Parse error: parse error, expecting `\')\'\' in c:\\apache\\htdocs\\caboom\\login.php on line 15
Avatar billede steffen Nybegynder
17. december 2000 - 20:00 #3
Paste lige et dump af \"Caboom\"-databasen osse, så vi har en chance for at teste af?
Avatar billede spacecase Nybegynder
17. december 2000 - 20:01 #4
Øhhhh nu er jeg ikke lige helt med?
Avatar billede lp Nybegynder
17. december 2000 - 20:02 #5
jeg tror du skal fjerne dine ( i forbindelse med funktioner.... fx i funktionen:
function check_usr_in_db((\'$username\'),(\'$rum\')) {
skal se sådan ud:
function check_usr_in_db($username,$rum) {

tjek alle funktionerne i dokumentet og se om det ikke hjælper, ellers må du lige vises 2 linjer over og 2 under den linje som giver fejl, det er lidt svært for mig at regne linjetallet ud!
Avatar billede spacecase Nybegynder
17. december 2000 - 20:04 #6
Ja det kan jeg godt se, men når jeg fjerner
function check_usr_in_db((\'$username\'),(\'$rum\')) {  // Som er linie 15, hopper den videre til næste funktion. \\\\

Og jeg har brug for dem, da en bruger ikke kan logge ind med et adskilt navn, som fx. Space Case, så skriver den kun space når brugeren er logget ind.
Avatar billede lp Nybegynder
17. december 2000 - 20:05 #7
du skal også fjerne single quotes (\') alle de steder du kalder dine funktioner - dr er flere steder hvor du enten kalder en funktion med både (\'$variabel\') eller \'$variabel\' - den korrekte måde er: $variabel uden noget omkring....det er kun hvis du feks vil skrive caboom som ikke er en variabel du skal have dem omkring sådan: (\"caboom\")
Avatar billede spacecase Nybegynder
17. december 2000 - 20:06 #8
Okey på den led, er ret ny til dette her, så det er rart med noget online hjælp. :)
Avatar billede lp Nybegynder
17. december 2000 - 20:07 #9
det kan jeg ikke sætte mig videre ind i når jeg blot har en side og ikke kan se din database eller på nogen måde kan teste - jeg kan kun \"lure\" :-)
Avatar billede spacecase Nybegynder
17. december 2000 - 20:08 #10
Jamen, jeg er ikke lige så meget for at gå af med db\'en, da I så faktisk ville sidde med en færdig chat. :(
Avatar billede lp Nybegynder
17. december 2000 - 20:08 #11
prøv at rette det til og se om det ikke virker....
Avatar billede lp Nybegynder
17. december 2000 - 20:09 #12
jamen, så må du nøjes med den hjælp du kan få....jeg tror dog ikke der er nogen herinde, som er interesseret i en chat som kan laves på 40 linjer :-)
den sidste jeg lavede kommer vel op på 4000 linjer he he :-)
Avatar billede spacecase Nybegynder
17. december 2000 - 20:10 #13
Jamen, som sagt, det virker uden alle de \' \'er, men så kan en bruger med navnet som fx. Space Case ikke logge ind, da den så kun skriver Space, det er der mit problem ligger.
Avatar billede spacecase Nybegynder
17. december 2000 - 20:11 #14
Ja og min er på over 1500 nu, og jeg har kun lavet selve chat login\'en og password checkeren.
Avatar billede lp Nybegynder
17. december 2000 - 20:12 #15
så må du lave om i din struktur og sikre at man ikke kan logge ind/oprette sig med mellemrum, det er ganske normalt og sådan er det de fleste steder (især chats)
jeg kan bare ikke forstå det er et problem, men jeg kan ikke svare dig når du ikke kan vise mig mere... :-(
Avatar billede spacecase Nybegynder
17. december 2000 - 20:13 #16
Okey, hvad er det præcist du har brugt for at se?
Avatar billede lp Nybegynder
17. december 2000 - 20:15 #17
jamen så har jeg jo heller ikke en færdig chat hvis du viser mig en databaseopsætning på de tilknyttede tabeller.......og selvfølgelig den kode som vedrører problemet!
Avatar billede spacecase Nybegynder
17. december 2000 - 20:16 #18
koden som vedrører problemet har du lige fået, men ang. db\'en, så er jeg ikke lige helt med, skal du bare have en liste over tabellerne og deres falter?
Avatar billede steffen Nybegynder
17. december 2000 - 20:35 #19
Mystiske funktioner:

..
* Skulle brugernavn ikke have været med lille?
* Skulle der ikke have stået global $brugernavn et sted?

function check_usr_in_db($username, $rum) {
if ($username == $Brugernavn) {
  validate_user(\'$brugernavn\', $little_pwd, $room);

..

<?

$conn = mysql_connect(\"localhost\",\"root\",\"root\");
mysql_select_db(\"Caboom\");

$little_pwd = strtolower($password);

if ($brugernavn == \"\") {
  no_name();
}
else {
  check_usr_in_db($brugernavn, $room);
}

function check_usr_in_db($username, $rum) {
if ($username == $Brugernavn) {
  validate_user(\'$brugernavn\', $little_pwd, $room);
}
else {
  $pass = \"\";
  $sta = \"Gæst\";
  frameset(\'$username\', $pass, $sta, $rum);
}
}

function validate_user(\'$usr\', $pwd, $room) {
// Hent først data ud
$resultat = mysql_query(\"select Brugernavn, password, status from Brugerliste where Brugernavn = \'$usr\'\");

// Kør så igennem for hver række
while ($bruger = mysql_fetch_array($resultat)) {

extract($bruger);

if ($pwd == $password) {
  frameset(\'$usr\', $pwd, $status, $room);
}
else {
  error(\'$usr\',$pwd);
}
}
}

function error(\'$user\', $pass, $status) {
  echo \"Forkert bruger/password kombination.<br>Indtastet Brugernavn : \".$user.\"<br>Indtastet Password : \".$pass.\" \";
}

function frameset(\'$user\',$pass, $sta, $rum) {
  if ($sta == \'Gæst\') {
  header(\"Location: frameset.php?brugernavn=$user&status=$sta&room=$rum\");
}
  else {
  header(\"Location: frameset.php?brugernavn=$user&password=$pass&status=$sta&room=$rum\");
}
}

function no_name() {
  echo \"<center>Du skal skrive et brugernavn for at kunne logge ind.</center>\";
}

mysql_close($conn);

?>
Avatar billede spacecase Nybegynder
17. december 2000 - 20:40 #20
Nu får jeg desværre denne fejl. :(

Parse error: parse error, expecting `\')\'\' in c:\\apache\\htdocs\\caboom\\tester.php on line 26
Avatar billede spacecase Nybegynder
17. december 2000 - 20:43 #21
Nopes, den vil stadig ikke lade mig logge ind som fx. Space Case, så skriver den kun Space, kan det virkelig ikke lade sig gøre at lave et delt navn?? Jeg ved at man kan på Opasia.
Avatar billede spacecase Nybegynder
17. december 2000 - 20:45 #22
Og Steffen, det hele virker skam, jeg skal bare have den til at acceptere delte navne.
Avatar billede spacecase Nybegynder
17. december 2000 - 20:54 #23
Okey, jeg har lige fundet ud af at jeg menglede

\' efter brugernavn=$user

header(\"Location: frameset.php?brugernavn=\'$user\'&status=$sta&room=$rum\");

Tak for hjælpen.
Avatar billede lp Nybegynder
17. december 2000 - 21:10 #24
jamen selvtak for din tid :-(

jeg synes da nok jeg hjalp dig en del på sporet!
jeg gider altså bare ikke bruge min tid på at sidde og gætte mig til en eventuel løsning, det er noget lettere hvis man har muligheden for at teste det.....
Avatar billede spacecase Nybegynder
17. december 2000 - 21:14 #25
Lp, jeg ved det godt, men jeg fik sagt nej, selv om det faktisk har fortjent dem.

Jeg var også igang på webcafe.dk og der fik jeg denne løsning.

$user = htmlentities(stripslashes($user));

kan ikke lige få den til at virke, men jeg er for træt nu, og gider ikke mere idag.

Men RIGTIGT mange tak for hjælpen Lp. :o)

KBJ.
Avatar billede steffen Nybegynder
17. december 2000 - 22:27 #26
Hey - en sidste kommentar - din fejl er faktisk i:

header(\"Location: frameset.php?brugernavn=\'$user\'&status=$sta&room=$rum\");

og det skyldes den måde variabler sendes med sådan en query-string - her skal dit mellemrum i brugernavnet lavet til en \"%20\" før det virker - men så virker det hele til gengæld :-)

PHp har en funktion til formålet .. urlencode (http://www.php.net/manual/function.urlencode.php) - den løser også problemet med alle mulige andre tegn, fx !\"&/ osv.

så du siger bare lige $brugernavn = urlencode($brugernavn) et eller andet sted før du kalder location, så er du kørende.
Avatar billede spacecase Nybegynder
18. december 2000 - 07:29 #27
Okey.
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