Autor | Zpráva | ||
---|---|---|---|
ondrej16556 Profil |
#1 · Zasláno: 8. 2. 2010, 16:24:48
Dobrý deň,
potreboval by som pomôcť s php kódom na prihlásenie. Po prihlásení mi píše: Parse error: syntax error, unexpected '}' in /home/users/adminstr/stredovek.comehere.cz/web/login.php on line 68 Kód súboru login.php : <?php session_start() ?> <html> <head> <title>Storočná vojna > Registrácia</title> </head> <body bgcolor="#980000"> <table align="center" bgcolor="#FF0000" width="900px"> <tr bgcolor="#FF0000"> <?php include ("logo.php"); ?> </tr> <tr bgcolor="#FF0000"> <?php include ("title.php"); ?> </tr> <tr bgcolor="#FF0000" align="center"> <?php include ("menu.php"); ?> </tr> <tr bgcolor="#FF0000"> <?php if($_POST) { require_once 'db.php'; $username = $_POST['username']; $password = $_POST['password']; $server = $_POST['server']; $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql'); mysql_select_db($dbname); $query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'", mysql_real_escape_string($username), mysql_real_escape_string(md5($password))); $result = mysql_query($query); list($count) = mysql_fetch_row($result); if($count == 1) { $_SESSION['authenticated'] = true; $_SESSION['username'] = $username; $query = sprintf("UPDATE users SET last_login = NOW() WHERE UPPER(username) = UPPER('%s') AND password = '%s'", mysql_real_escape_string($username), mysql_real_escape_string(md5($password))); mysql_query($query); $query = sprintf("SELECT narod FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'", mysql_real_escape_string($username), mysql_real_escape_string(md5($password))); $result = mysql_query($query); list($narod) = mysql_fetch_row($result); if($narod == 'fra'): { $_SESSION['narod'] = 'fra'; } elseif($narod == 'ang'): { $_SESSION['narod'] = 'ang'; } elseif($narod == 'sve'): { $_SESSION['narod'] = 'sve'; }; $query = sprintf("SELECT is_admin FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'", mysql_real_escape_string($username), mysql_real_escape_string(md5($password))); $result = mysql_query($query); list($is_admin) = mysql_fetch_row($result); if($is_admin == 1) { $_SESSION['vstup'] = 'prihlaseny'; $_SESSION['password'] = $password; $_SESSION['server'] = $server; header('Location:admin.php'); } else { $_SESSION['vstup'] = 'prihlaseny'; $_SESSION['password'] = $password; $_SESSION['server'] = $server; header('Location:Dedina/dedina.php'); } } else { ?> <div class="text">Toto užívateľské meno a hoslo nezodpovedá databáze!</div> <?php } } ?> </tr> </table> <div align="center" style="color:#888; font-size:12px;">Copyright © <a href="index.html" class="odkaz">rannystredovek.euweb.cz</a> Optimalizované pre IE 1440x900</div> </html> Skúšal som aj chybu nájsť, niečo som našiel ale nie všetko :( Poradili by ste mi prosím? |
||
panther Profil |
#2 · Zasláno: 8. 2. 2010, 16:27:42 · Upravil/a: panther
ondrej16556:
chybová hláška je nejasná? Řiď se číslem řádku. Neočekávaná závorka - že by na inkriminovaném řádku nějaká přebývala, co? |
||
ondrej16556 Profil |
#3 · Zasláno: 8. 2. 2010, 16:30:56 · Upravil/a: ondrej16556
Chyba je v riadku 68, to viem ale mám tam
} else { ?> A v tom riadku nie je žiadna chyba. Pozriem sa ešte na to. |
||
AM_ Profil |
#4 · Zasláno: 8. 2. 2010, 16:32:36
ondrej16556:
> if($narod == 'fra'): { > $_SESSION['narod'] = 'fra'; > } tady mícháš dohromady dvě alternativní syntaxe. Jedna možnost: if ($podminka) { //zadna dvojtecka!! ... } else { ... } Druhá možnost: if ($podminka): ... else: ... endif; V tom bude nejspíš problém. |
||
panther Profil |
#5 · Zasláno: 8. 2. 2010, 16:33:09 · Upravil/a: panther
ondrej16556:
„A v tom riadku nie je žiadna chyba“ v tomhle ne, ale kolem něj. Závorky si přepočítat zvládneš, dělat to za tebe nebudu. EDIT: tak nepřebývá, AM_ je vítěz :-) |
||
AM_ Profil |
#6 · Zasláno: 8. 2. 2010, 16:34:38
[#3] ondrej16556
občas se stane, že předmět chyby není na tom řádku, tam je pouze něco, s čím si překladač neporadil. Může se stát, že závorku navíc máš o několik řádků výš, což je sice programově špatně protože tam být nemá, ale překladač neví, kde jsi chtěl blok ukončit. Proto ohlásí chybu až u závorky, kterou si neumí zařadit. Doporučuju použít editor se zvýrazněním syntaxe (např. PSPad). |
||
ondrej16556 Profil |
#7 · Zasláno: 8. 2. 2010, 16:41:14 · Upravil/a: ondrej16556
Používam editor Notepad++
//EDIT: A keď som odstránil dvojbodky vypísalo mi, že sa to nezhoduje z databázou. |
||
AM_ Profil |
#8 · Zasláno: 8. 2. 2010, 18:18:40
ondrej16556:
Nebudeme ti hledat každou chybu. Ty nemáš konkrétní programátorský problém který chceš vyřešit, ty jsi napsal nefunkční kód a chceš ho po nás odladit. To tu neděláme. |
||
Časová prodleva: 15 let
|
0