Autor Zpráva
sitole
Profil
Ahoj, vytvářím si opravdu jednoduchou administraci pro svoje weby :)
Můj kod v souboru index.php

¨<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>

<head>
<meta http-equiv="Content-Language" content="cs">
<meta charset="windows-1250">
<link href="css/icon.png" rel="icon" type="image/png" />

<title>SITOLE :: Administrační systém pro jednoduché weby a blogy</title>
<link rel="stylesheet" href="css/style.css">
<meta name="description" content="Administrační systém pro jednoduché weby a blogy.">
<meta property="og:title" content="Administrace">
<meta property="og:site_name" content="Administrace">
<meta property="og:description" content="Administrační systém pro jednoduché weby a blogy.">
<link rel="author" href="http://facebook.com/sitoleTV">
</head>

<body>

<br>

<!-- Soubor s administrací -->
<form action="administrace.php" method="post">
<!-- Soubor s administrací -->

<center>
<h2>Administrační systém</h2>
<h1>SITOLE</h1>

<!-- Samostatný formulář -->
<input type="submit" value="Přihlásit" name="submit" class="submit" /><br>
<br><label for="name">Jmeno &nbsp;</label>
<input type="text" name="jmeno" value="<?echo $_POST["jmeno"]?>">
&nbsp;&nbsp;&nbsp;<label for="name">Heslo &nbsp;&nbsp;</label>
<input type="password" name="heslo">
<!-- Samostatný formulář -->

<br><br><h4>Jiří Svěcený 2015 &nbsp; Verze 0.1</h4> 
</center>
</form>

</body>

</html>

A kod v souboru administrace.php

<? if($jmeno=="admin") $heslo1=klab455545an;
elseif($jmeno=="uzivatel2") $heslo1=heslo2;
elseif($jmeno=="uzivatel3") $heslo1=heslo3;
?>

<? if($heslo==$heslo1) echo "Kod stránky : Všechny \" musí být odraženy symbolem \ Jinak to nejde!";
    else echo "Špatne heslo!"
?>

Proč když do formuláře zadám všechny možné znaky.. (Ty které nejsou v proměné heslo1 se stejně zobrazí text obsažený zde)
<? if($heslo==$heslo1) echo "Kod stránky : Všechny \" musí být odraženy symbolem \ Jinak to nejde!"; Předem děkuji :)
lionel messi
Profil
sitole:
Odpoveď je: Regsiter globals

Ďalej mi súbore administrace.php mi padla do oka syntaktická chyba (aspoň predpokladám, že ide o chybu):

<? if($jmeno=="admin") $heslo1="klab455545an";
elseif($jmeno=="uzivatel2") $heslo1="heslo2";
elseif($jmeno=="uzivatel3") $heslo1="heslo3";
?>

Reťazce sa v PHP uzatvárajú do úvodzoviek/apostrofov, predpokladám, že kab455545an nemá byť konštanta (tie sa zvyknú písať notáciou PASCAL_CASE (veľkými písmenami)).

Taktiež by som používal na ohraničenie PHP kódu dlhý otvárací tag <?php, krátka verzia je závislá na povolení konfiguračnej direktívy short_open_tag a osobne uzatváram do zložených zátvoriek aj podmienky tvorené jedným príkazom.
Keeehi
Profil
1. používej <?php a ne jen <?
2. řetězce (konce řádků 1-3) mají být v uvozovkách " nebo apostrofech '
3. proměnné $jmeno a $heslo neexistují, můžou existovat $_POST["jmeno"] a $_POST["heslo"] >>
$jmeno = isset($_POST["jmeno"]) ? $_POST["jmeno"] : "";
$heslo = isset($_POST["heslo"]) ? $_POST["heslo"] : "";
sitole
Profil
Můj kod v soubor administrace.php je nově následovný

<?php if($jmeno=="admin") $heslo1=klab455545an;'
elseif($jmeno=="uzivatel2") $heslo1=heslo2;'
elseif($jmeno=="uzivatel3") $heslo1=heslo3;'
?>
 
<?php if($heslo==$heslo1) echo "Kod stránky : Všechny \" musí být odraženy symbolem \ Jinak to nejde!";
    else echo "Špatne heslo!"
?>

A nechápu tu třetí část
$_POST["jmeno"] a $_POST["heslo"]

To bude tedy místo $heslo1 $_POST["heslo"] ? :)
lionel messi
Profil
sitole:
A nechápu tu třetí část
„$_POST["jmeno"] a $_POST["heslo"]“
>
To bude tedy místo $heslo1 $_POST["heslo"] ? :)
Nie. Pomocou podmienky od Keeehiho zistíš, či sú nastavené premenné z formulára a podľa výsledku inicializuješ premennú $heslo. Ak bolo heslo zadané do formulára, „skopíruje“ sa jeho hodnota zo superglobálneho poľa $_POST do lokálnej premennej $heslo. V opačnom prípade bude v $heslo prázdny reťazec.

Navyše, kód v [#4] skončí syntaktickou chybou, reťazce sa ohraničujú iným spôsobom, pozri [#2].

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: