Autor Zpráva
sir_lamoid
Profil
Dobrý den,
mám taký problém
mám kód
<?php

/**
 * @author sir_lamoid
 * @copyright 2012
 */

include "include/dibi.min.php";
dibi::connect(array(
    'driver'   => 'mysql',
    'host'     => 'localhost',
    'username' => 'userdb',
    'password' => 'heslodb',
    'database' => 'db',
    'charset'  => 'utf8',
));
dibi:;
$nick = $_POST[nick];
$heslo = md5(md5($_POST['heslo']));
session_start()
$dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='".mysql_real_escape_string($nick)."' AND heslo='$heslo'");
     if (mysql_num_rows($dotaz) > 0)  {
       $uzivatel = mysql_fetch_object($dotaz);
       $_SESSION["id"] = $uzivatel->id;
       $_SESSION["nick"] = $uzivatel->nick;
       $_SESSION["email"] = $uzivatel->email;
       $_SESSION["opravneni"] = $uzivatel->opravneni;
       header("Location: index.php");
     } else {
       echo "Špatné jméno nebo heslo, zkus to znova.";
     }


?>

a mě to píše chybu

Parse error: syntax error, unexpected T_VARIABLE in xx/loginnow.php on line 21

jinak mám formulář:
<form action="loginnow.php" method="POST">
<input  type="text" name="nick"/>
<input  type="password" name="heslo"/>
<input  type="submit" name="tlacitko"/>
</form>

prosím pomozte..
bude asi chyba v uvozovkách, ale nevím kde..
Alphard
Profil
sir_lamoid:
Co je to za nesmysl, proč to dibi nepoužíváte?

$uzivatel = dibi::query("SELECT * FROM uzivatele WHERE nick = %s AND heslo = %s", $_POST['nick'], $heslo)->fetch();
if ($uzivatel)
martin1312
Profil
riadok 20, chyba ti bodkočiarka na konci
sir_lamoid
Profil
neboť objektové programování není můj šálek kávy
pomocí dibi jen vkládám záznamy do db ale získávání výsledku z db pomocí dibi je zatím pro mě španělská vesnice


martin1312:
děkuji
ShiraNai7
Profil
sir_lamoid:
pomocí dibi jen vkládám záznamy do db ale získávání výsledku z db pomocí dibi je zatím pro mě španělská vesnice

Stačí strávit 5 minut čtením dokumentace. Ohledně OOP nemusíš vědět nic.. voláš jen statickou metodu a o zbytek se nestaráš.
sir_lamoid
Profil
nebojte mám v plánu se na to vrhnout co nejdříve

jinak není tady chyba
$uzivatel = dibi::query("SELECT * FROM uzivatele WHERE nick = %s AND heslo = %s", $_POST['nick'], $heslo)->fetch();
if ($uzivatel)

proč by jsme hledaly kde nick je prazdný řetězec ??
Alphard
Profil
Ale on se nehledá prázdný řetězec, to %s je zástupný znak. Takhle je to proto, aby se vstupy mohly automaticky ošetřit.
sir_lamoid
Profil
a nemělo by po tom %s následovat $_POST['nick']??


joo už chápu to %s je zastupne a po tom se definuje za ",
sir_lamoid
Profil
jinak ještě otázečka jak to udělat:
<?php
/* 
pokud existuje proměná session nick
potom vypiš odkaz na administraci
na odhlášení
jinak vypiš odkaz pro přihlášení
*/
if(isset($_SESSION['nick'])) {
    echo '<a href="admin.php">Administrace</a>';
    echo '<a href="logout.php">Odhlasit se</a>';
}
else {
    echo 'Prosíme <a href="login.php">přihlašte se</a>';
}
?>
Toto téma je uzamčeno. Odpověď nelze zaslat.