Gå til innhold

HJelp med kommentarer som plutselig dukker opp!


Anbefalte innlegg

Hei, plutselig får jeg en feilmelding når jeg logger inn til admin:

 

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/110mb.com/s/u/p/p/o/r/t/-/support-u/htdocs/index-2loggginn-admin.php on line 14

Parse error: syntax error, unexpected $end in /www/110mb.com/s/u/p/p/o/r/t/-/support-u/htdocs/index-2loggginn-admin.php on line 35

 

 

Logg inn scriptet funker fint - Og plutselig kommer den kommentaren. Og da funker ikke det å logge inn mer... Så når den kommentaren kommer er liksom scriptet ødelagt. Og da må jeg laste opp altpå nytt... Så etter jeg har brukt admin funksjonen noen ganger så kommer den meldingen plutselig opp igjen..

Hva er det som skjer ?

Lenke til kommentar
Videoannonse
Annonse

Er ikke helt sikker, men \ er jo en escape char i PHP. Så du bør nok titte litt rundt linje 14 i index-2loggginn-admin.php for å se hvordan det håndteres. Så ser det ut til at ting uventet avsluttes eller noe galt med variablen $end rundt linje 35 i samme script.

Feilmeldingene peiler å være ganske beskrivendes, de peker deg i alle fall i riktig rettning.

Endret av Crowly
Lenke til kommentar

Dette er hele filen:

 

<?php
ob_start();
$host="**"; // Host name
$username="**"; // Mysql username
$password="**"; // Mysql password
$db_name="**"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from signup form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:administrator.php");
}
else {
echo "Feil brukernavn / passord!";
}

ob_end_flush();
?>

 

 

 

 

Hva er feilen ?

Lenke til kommentar

Er det der noe du har laget selv?

 

1. Du trenger ikke apostrof rundt variabler. Slik du gjør her

mysql_connect("$host", "$username", "$password")

 

2. Brukerdata skal ALLTID evalueres før du bruker det. Slik du har det nå kan hvem som helst slette hele databasen din om de ønsker. mysql_real_escape_string() er en fin funksjon.

 

3. Lagre passord i råform er fyfy. Benytt md5() eller sha1(). Gjerne med et salt.

 

4. Ikke bruk session_register() (Les advarselene og eksemplene). Gjør heller noe slikt:

$_SESSION['username'] = $username;
$_SESSION['password'] = sha1( $password );

Når du bruker sessions må du også ha session_start() i toppen av filen. Behøves ikke om scriptet blir inkludert i en fil som allerede har det.

 

5. ob_start() og ob_end_flush() er ikke nødvendig, da alle headere sendes før output.

 

6. "SELECT * FROM foo...." er unødvendig med mindre du trenger ALLE radene i tabellen.

 

 

EDIT: Crowly har rett.

Endret av M4rTiN
Lenke til kommentar
4. Ikke bruk session_register() (Les advarselene og eksemplene). Gjør heller noe slikt:

 

Når du bruker sessions må du også ha session_register() i toppen av filen.

 

Du mener vel "må du også ha session_start()" ? Ble litt merkelig det du skrev når det først står ikke bruk session_register for så å si at man skal bruke det ;) Men det er vel ikke feil etter hva jeg kan se og forstå av beskrivelsen av session_register på php.net:

If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

 

Kunne kanskje vært formulert litt enklere, eller kanskje det bare er meg :p

Endret av Crowly
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...