| 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: 16 let
|
|||
0