16. august 2004 - 10:36
Der er
18 kommentarer og 1 løsning
Parse error
Har følgende kode. fejlen siger parse error - og jeg har endnu engang set mig blind på det. Håber at nogle kan hjælpe! <?php include_once('db_vars.inc'); $supersecret_hash_padding = 'A string that is used to pad out short strings for md5 encryption'; $LOGGED_IN = false; unset($LOGGED_IN); function user_isloggedin() { global $supersecret_hash_padding, $LOGGED_IN; if (isSet($LOGGED_IN)) { return $LOGGED_IN; } if ($_COOKIE['user_name'] && $_COOKIE['id_hash']) { $hash = md5($_COOKIE['user_name'] .$supersecret_hash_padding); if ($hash == $_COOKIE['id_hash']) { return true; } else { return false; } } else { return false; } } function user_login() { if (!$_POST['user_name'] || !$_POST['password']) { $feedback = 'ERROR--Missing username or password'; return $feedback; } else { $user_name = strtolower($_POST['username']); $password = strtolower($_POST['password']); $crypt_pwd = md5($password); $query = "SELECT user_name, is_confirmed FROM login WHERE user_name = '$user_name' AND password='$crypt_pwd'"; $result = mysql_query($query); if (!$result || mysql_num_rows($result) < 1){ $feedback = 'ERROR--User not found or password incorrect'; return feedback; } else { if (mysql_result($result, 0, 'is_confirmed') == '1') { user_set_tokens($user_name); return 1; } else { $feedback = 'ERROR--You may not have confirmed your account yet'; return $feedback; } } } } function user_logout() { setcookie('user_name', '', (time()+2592000), '/', '', 0); setcookie('id_hash', '', (time()+2592000), '/', '', 0); } function user_set_tokens($user_name_in) { global $supersecret_hash_padding; if (!$user_name_in) { $feedback = 'ERROR--No username'; return false; } $user_name = strtolower(user_name_in); $id_hash = md5($user_name.$supersecret_hash_padding); setcookie('user_name', $user_name, (time()+2592000), '/', '', 0); setcookie('id_hash', $id_hash, (time()+2592000), '/', '', 0); ?>
Annonceindlæg fra Salesforce
16. august 2004 - 10:40
#1
det ville nok være nemmest hvis du postede hele fejlmeddelsen. Den indeholder typisk et linje nummer.
16. august 2004 - 10:40
#2
function user_set_tokens($user_name_in) { global $supersecret_hash_padding; if (!$user_name_in) { $feedback = 'ERROR--No username'; return false; } I dette mangler der med garanti en }
16. august 2004 - 10:41
#3
Til din egen hjælp, lav rigtige indryk, det gør det meget nemmere....
16. august 2004 - 10:48
#4
okay, checkede scriptet med en cmd. iis's har faktisk ret, det er bare en } som mangler. // im out.
16. august 2004 - 10:54
#5
nu poster jeg hele lortet. -->iss har forsøgt { men det hjælper ikke. og ja jeg burde rykke ind, men er elendig til det. fejlmeddelsen: Parse error: parse error, unexpected $end in c:\programmer\easyphp1-7\www\spillesteder\admin\login_funcs.inc on line 79 Notice: Undefined index: user_name in c:\programmer\easyphp1-7\www\spillesteder\admin\login_funcs.inc on line 17 Notice: Undefined variable: submit in c:\programmer\easyphp1-7\www\spillesteder\admin\login.php on line 11 scriptet før var fra filen login_funcs.inc
16. august 2004 - 10:55
#6
Her er den tilhørende fil --> login.php Håber virkelig at i kan hjælpe. <?php require_once('login_funcs.inc'); if ($LOGGED_IN = user_isloggedin()) { user_logout(); $_COOKIE['user_name'] = ''; unset($LOGGED_IN); } if ($submit == 'login') { if (strlen($_POST['username']) <= 25 && strlen($_POST['password']) <= 25) { $feedback = $user_login(); } else { $feedback = 'ERROR--Username or password are to long'; } if ($feedback == 1) { header("location; index.php"); } else { $feedback_str = "<P class=\"errormess\">$feedback</P>"; } } else { $feedback_str = ''; } $php_self = $_SERVER['PHP_SELF']; $login_form = <<< EOLOGINFORM <TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=Center Width=621> <tr> <td rowspan=2></td></tr> <tr> <td> $feedback_str <p class="bold">LOGIN</P> <form action="$php_self" method="post"> <p class="bold">Username<BR> <input type="text" name="user_name" value="" size="15" maxlength="20"></p> <p class="bold">password<br> <input type="password" name="password" value="" size="15" maxlength="20"></p> <p><input type="submit" name="submit" value="login"></p> </form> </td> </tr> </table> EOLOGINFORM; echo $login_form; ?>
16. august 2004 - 11:03
#7
Hvis du har sat en { så er det 2 } for lidt.....
16. august 2004 - 11:06
#8
sorry... skrive fejl. Det var en } jeg satte..
16. august 2004 - 11:10
#9
<?php include_once('db_vars.inc'); $supersecret_hash_padding = 'A string that is used to pad out short strings for md5 encryption'; $LOGGED_IN = false; unset($LOGGED_IN); function user_isloggedin() { global $supersecret_hash_padding, $LOGGED_IN; if (isSet($LOGGED_IN)) { return $LOGGED_IN; } if ($_COOKIE['user_name'] && $_COOKIE['id_hash']) { $hash = md5($_COOKIE['user_name'].$supersecret_hash_padding); if ($hash == $_COOKIE['id_hash']) { return true; } else { return false; } } else { return false; } } // **** Den er vist i overskud function user_login() { if (!$_POST['user_name'] || !$_POST['password']) { $feedback = 'ERROR--Missing username or password'; return $feedback; } else { $user_name = strtolower($_POST['username']); $password = strtolower($_POST['password']); $crypt_pwd = md5($password); $query = "SELECT user_name, is_confirmed FROM login WHERE user_name = '$user_name' AND password='$crypt_pwd'"; $result = mysql_query($query); if (!$result || mysql_num_rows($result) < 1){ $feedback = 'ERROR--User not found or password incorrect'; return feedback; } else { if (mysql_result($result, 0, 'is_confirmed') == '1') { user_set_tokens($user_name); return 1; } else { $feedback = 'ERROR--You may not have confirmed your account yet'; return $feedback; } } } } function user_logout() { setcookie('user_name', '', (time()+2592000), '/', '', 0); setcookie('id_hash', '', (time()+2592000), '/', '', 0); } function user_set_tokens($user_name_in) { global $supersecret_hash_padding; if (!$user_name_in) { $feedback = 'ERROR--No username'; return false; } $user_name = strtolower(user_name_in); $id_hash = md5($user_name.$supersecret_hash_padding); setcookie('user_name', $user_name, (time()+2592000), '/', '', 0); setcookie('id_hash', $id_hash, (time()+2592000), '/', '', 0); // Her mangler en } ?>
16. august 2004 - 11:10
#10
<?php require_once('login_funcs.inc'); if ($LOGGED_IN = user_isloggedin()) { user_logout(); $_COOKIE['user_name'] = ''; unset($LOGGED_IN); } if ($submit == 'login') { if (strlen($_POST['username']) <= 25 && strlen($_POST['password']) <= 25) { $feedback = $user_login(); } else { $feedback = 'ERROR--Username or password are to long'; } if ($feedback == 1) { header("location; index.php"); } else { $feedback_str = "<P class=\"errormess\">$feedback</P>"; } } else { $feedback_str = ''; } $php_self = $_SERVER['PHP_SELF']; $login_form = <<< EOLOGINFORM <TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=Center Width=621> <tr> <td rowspan=2></td></tr> <tr> <td> $feedback_str <p class="bold">LOGIN</P> <form action="$php_self" method="post"> <p class="bold">Username<BR> <input type="text" name="user_name" value="" size="15" maxlength="20"></p> <p class="bold">password<br> <input type="password" name="password" value="" size="15" maxlength="20"></p> <p><input type="submit" name="submit" value="login"></p> </form> </td> </tr> </table> EOLOGINFORM; echo $login_form; ?>
16. august 2004 - 11:11
#11
Så let bliver det med indryk.
16. august 2004 - 11:16
#12
Sorry den } var ikke i overskud: function user_isloggedin() { global $supersecret_hash_padding, $LOGGED_IN; if (isSet($LOGGED_IN)) { return $LOGGED_IN; } if ($_COOKIE['user_name'] && $_COOKIE['id_hash']) { $hash = md5($_COOKIE['user_name'].$supersecret_hash_padding); if ($hash == $_COOKIE['id_hash']) { return true; } else { return false; } } else { return false; } }
16. august 2004 - 11:20
#13
Tak for indrykningen iss :) Men den siger stadig samme fejl. Kan ikke regne den ud. Måske skal fejlen findes et andet sted eller?
16. august 2004 - 11:27
#14
Hvilken fejl? copy paste ud fra det jeg sendte dig.
16. august 2004 - 11:31
#15
Sorry min ven. Havde gjort det, men gemte filen som 'login_funcs.php' istedet for inc. Men mange tak for hjælpen. En sidste ting, ved du hvordan jeg kommer af med sådan to noticed? Notice: Undefined index: user_name in c:\programmer\easyphp1-7\www\spillesteder\admin\login_funcs.inc on line 17 Notice: Undefined variable: submit in c:\programmer\easyphp1-7\www\spillesteder\admin\login.php on line 11 ellers kan du bare skrive et svar så for du points...
16. august 2004 - 11:33
#16
Det er fordi at der står if ($_COOKIE['user_name'] && $_COOKIE['id_hash']) istedet for if (isset($_COOKIE['user_name']) && isset($_COOKIE['id_hash'])) osv osv, man må ikke undersøge indhold af en variabel før man er sikker på den ikke er tom. Men det er kun en notice, og for det meste laver PHP det man har tænkt sig.
16. august 2004 - 11:44
#17
hvordan for jeg fjernet den med submit?
16. august 2004 - 12:42
#18
if (isset($submit) && $submit == 'login')
Slettet bruger
16. august 2004 - 19:16
#19
NB! Det er ikke en god ide at kalde filer et_eller_andet.inc for hvis den så ligger i en mappe, som webserveren har adgang til, kan enhver læse den over nettet. Du kan i stedet kalde den f.eks. login_funcs.php eller login_funcs.inc.php
Vi tilbyder markedets bedste kurser inden for webudvikling