Thomas. Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 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
Crowly Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 (endret) 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 7. desember 2007 av Crowly Lenke til kommentar
Thomas. Skrevet 7. desember 2007 Forfatter Rapporter Del Skrevet 7. desember 2007 Linje nr 14: $myusername=$_POST['myusername']; Linje nr 35: ?> Det kan vel ikke være feil ? Lenke til kommentar
Runar0 Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 Du må nok legge ved litt av koden før og detter linje 14 og 35, der er nok del feilen ligger Lenke til kommentar
itsmebth Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 $end er ikke en variabel, men slutten av filen. Lenke til kommentar
Mats Danielsen Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 Vi kan ikke hjelpe deg her uten HELE koden. Lenke til kommentar
Thomas. Skrevet 7. desember 2007 Forfatter Rapporter Del Skrevet 7. desember 2007 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
Martin A. Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 (endret) 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 7. desember 2007 av M4rTiN Lenke til kommentar
Thomas. Skrevet 7. desember 2007 Forfatter Rapporter Del Skrevet 7. desember 2007 Ikke jeg som har skrevet det nei, men prøver og lære meg Skal se på det du skrev nå! Lenke til kommentar
Crowly Skrevet 7. desember 2007 Rapporter Del Skrevet 7. desember 2007 (endret) 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 Endret 7. desember 2007 av Crowly Lenke til kommentar
Thomas. Skrevet 8. desember 2007 Forfatter Rapporter Del Skrevet 8. desember 2007 Så, hva er feilen ? Skal jeg ta vekk dette: ob_start(); ob_end_flush Og bytte det med session_start øverst ? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå