Autor | Zpráva | ||
---|---|---|---|
Sobky Profil |
#1 · Zasláno: 3. 7. 2014, 16:57:24
Dobrý deň!
Spravil som si stránku, na ktorej sa treba najprv prihlásiť. No a po prihlásení by som chcel aby sa na tej stránke zmenil jej obsah ale link osal taký istý. Viem, že sa to dá, ale neviem ako :/ Tu je skript <!DOCTYPE html> <html xmlns='http://www.w3.org/1999/xhtml' lang='sk'> <head> <title>Invite list</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="author" content="SobkyLuckSK"> <link rel="stylesheet" type="text/css" href="invite.css"> </head> <body> <img class="logo" src="http://www.magicraft.4fan.cz/wp-content/uploads/2014/06/MAGICRAFT-3.png"> <form action="" method="POST"> <fieldset class="table"> <legend><p style="font-size: 2em; color: gold; font-weight: bold">Prihlásenie</p></legend> <table width="100%"> <tr> <p style="font-size: 0,5em; color: gold; font-weight: bold">Pre prihlásenie použite rovnaké údaje ako k serveru MagiCraft</p> </tr> <tr> <td width="80%"><input type="text" class="nick" name="nick" tabindex="1" size="25" placeholder="Nick"></td> </tr> <tr> <td width="80%"><input type="password" class="heslo" name="heslo" tabindex="2" size="25" placeholder="Heslo"></td> </tr> <tr> <td colspan="4" align="center"><input type="submit" class="tlacitko" value="Prihlásiť" tabindex="3"></td> </tr> </table> </fieldset> </form> <?php $nick = $_POST['nick']; $heslo = $_POST['heslo']; $heslicko = "tajne"; if($heslo == $heslicko) { header("Location: invite.php"); echo "Prihlasený" exit; } ?> </body> </html> Od toho <?php už neviem ako |
||
Tomáš123 Profil |
#2 · Zasláno: 3. 7. 2014, 17:12:14
Sobky:
S PHP-čkom nedosiahneš dynamiku presmerovania. Na to je JavaScript. Riadok 25: Načo spájaš 4 stĺpce, keď tabuľka má iba jeden? |
||
Taps Profil |
#3 · Zasláno: 3. 7. 2014, 17:17:27
|
||
Sobky Profil |
#4 · Zasláno: 3. 7. 2014, 17:23:19
aha no diki ale ja s javaskriptom neviem nič :D tak ako by to malo asi vyzerať?
|
||
David Klouček Profil |
#5 · Zasláno: 3. 7. 2014, 17:43:28
Sobky:
„aha no diki ale ja s javaskriptom neviem nič“ Správnej čas se ho začít učit JavaScript. „tak ako by to malo asi vyzerať?“ Dá se to napsat různě. |
||
jenikkozak Profil |
#6 · Zasláno: 3. 7. 2014, 17:53:33
Já jsem to pochopil trochu jinak než kluci přede mnou.
Jde ti jen o to, aby poté, co uživatel odešle přihlašovací údaje, se nepřesměrovávalo na jinou stránku, ale zůstala zobrazená ta samá adresa? Na to by totiž JavaScript ani AJAX nebyly potřeba. |
||
Tomáš123 Profil |
#7 · Zasláno: 3. 7. 2014, 18:07:51
Sobky:
Možno sa pletiem, ale na vyriešenie toho čo napísal jenikkozak by stačilo dať do <form action="#"...> mriežku, nie?
|
||
Taps Profil |
#8 · Zasláno: 3. 7. 2014, 18:08:30
jenikkozak:
„ale zůstala zobrazená ta samá adresa?“ ano, ale jiný obsah, proto si myslím, že by v tomto případě byl využitelný AJAX |
||
jenikkozak Profil |
#9 · Zasláno: 3. 7. 2014, 18:31:05
Tomáš123:
Nesmysl. I kdyby stránka nevyhazovala parse error kvůli chybějícímu středníku na 35. řádku a nevyhazovala chybu, že se stránka snaží měnit hlavičky poté, co byl prohlížeči odeslán kus HTML, mřížka jako obsah atributu action by se jen připojila k URL po odeslání formuláře, ovšem pak by došlo k přesměrování vyvolanému na řádku 36.
Pokud někdo chce, aby se vyplněný formulář odeslal téže stránce, může action formuláře úplně vynechat.
Taps: Myslím si, že když se ze skriptu vyhodí přesměrování na řádku 35 a za příkaz na 36. řádku přidá středník, bude zadání splněno i bez AJAXu. |
||
Sobky Profil |
#10 · Zasláno: 3. 7. 2014, 18:51:28
No to čo napísal jenikkozak, že som dal preč ten 35. riadok a na 36 doplnil ; tak sa niečo zmenilo. ale stále tam bol tan istý obsah a ja chcem po prihlásení iný
|
||
Taps Profil |
#11 · Zasláno: 3. 7. 2014, 19:37:22
Sobky:
if($heslo == $heslicko) { echo "Můj tajný obsah"; } |
||
Sobky Profil |
#12 · Zasláno: 3. 7. 2014, 20:15:35
Ale toto napíše pod ten obsah čo mám tu vetu, ja chcem aby sa ten obsah cely zmenil
|
||
yFang Profil |
#13 · Zasláno: 3. 7. 2014, 20:56:37
Sobky:
Asi to chceš nějak takhle: <?php if ($heslo == $heslicko): ?> <!-- html a obsah tajné stránky --> <?php else: ?> <!-- přihlašovací formulář --> <?php endif; ?> |
||
Fisir Profil |
#14 · Zasláno: 4. 7. 2014, 00:10:53
Reaguji na Sobkyho:
Na úplný začátek souboru vlož: <?php if(isset($_POST['heslo'])){ $heslo = $_POST['heslo']; $heslicko = "tajne"; if($heslo == $heslicko) { include('poprihlaseni.php'); exit(); } } ?> poprihlaseni.php do kterého vlož obsah, který chceš aby se ti zobrazil po přihlášení. Atribut action přihlašovacího formuláře nech prázdný.
|
||
Sobky Profil |
#15 · Zasláno: 4. 7. 2014, 10:25:21
No toto je celkom dobré aj to funguje a potom by sa ako dalo nataviť lebo keď refreshnem stránku tak ma to zase hodí na login a ja chcem aby už potom ostal na tej stránke po prihlasení
|
||
jenikkozak Profil |
#16 · Zasláno: 4. 7. 2014, 10:34:59
Potřebuješ tedy na serveru uchovat informaci, že se uživatel již při některém z předchozích načtení stránky přihlásil. K tomu se ti budou hodit session: Sessions.
|
||
Sobky Profil |
#17 · Zasláno: 4. 7. 2014, 12:00:06
Tu mám skript
Kamoš mi poradil, že Do session si ulož něco jako $loggedIn = TRUE; a pak normálně podmínka if ($loggedIn) { (zobrazení formuláře s přihlášením } else { (obsah pro přihlášenýho uživatele }. A to už neviem, kde mám dať <?php /////////////// // NASTAVENI // /////////////// $db_host = "dsasadsad"; // Zde zadej hostitele $db_uzivatel = "adasddsa"; // Zde uživatelské jméno $db_heslo = "sadsasddsa"; // Zde heslo $db_databaze = "asfafsfdsg"; // Zde jméno databáze $db_tabulka = "authme"; // Zde zadej jméno AuthMe tabulky $hash = "SHA256"; // Zde zadej typ šifrování /////////////// // SKRIPT // /////////////// $mysqli = new mysqli($db_host, $db_uzivatel, $db_heslo, $db_databaze); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: " . $mysqli->connect_error; exit(); } if (isset($_POST['nick']) && isset($_POST['heslo'])) { if (!empty($_POST['nick']) && !empty($_POST['heslo'])) { //Ochrana a tvorba variablů $nick = preg_replace('/\s+/', '', $_POST['nick']); $heslo = preg_replace('/\s+/', '', $_POST['heslo']); $result = $mysqli->query("SELECT password FROM ".$db_tabulka." WHERE username = '".$nick."'"); $row = $result->fetch_assoc(); switch ($hash) { case 'MD5': $heslicko = hash('md5', $heslo) === $row['password']; break; case 'SHA1': $heslicko = hash('sha1', $heslo) === $row['password']; break; case 'SHA256': $userPasswordField = explode('$', $row['password']); $heslo = hash('sha256', $heslo); $heslo .= $userPasswordField[2]; $heslo = '$SHA$' . $userPasswordField[2] . '$' . hash('sha256', $heslo); $heslicko = $heslo === $row['password']; break; } $ip = $_SERVER['REMOTE_ADDR']; //Ověření nicku $query_nick = mysqli_query($mysqli, "SELECT username FROM ".$db_tabulka." WHERE username = '".$nick."'"); if ($data_nick = mysqli_fetch_array($query_nick)) { //Ověření hesla if ($heslicko) { $_SESSION['uzivatel'] = $nick; // toto neviem ako spraviť $loggedIn = TRUE; if ($loggedIn) { include('login.php'); exit(); } else { include('login.php'); exit(); } } else { //Neúspěšné přihlášení echo "<div style='color: red;'><strong>Toto heslo není správné.</strong></div>"; } } else { //Neexistující přezdívka echo "<div style='color: red;'><strong>Tato přezdívka nebyla nalezena.</strong></div>"; } } } ?> <!DOCTYPE html> <html xmlns='http://www.w3.org/1999/xhtml' lang='sk'> <head> <title>Invite list</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="author" content="SobkyLuckSK"> <link rel="stylesheet" type="text/css" href="invite.css"> <script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> </head> <body> <img class="logo" src="http://www.magicraft.4fan.cz/wp-content/uploads/2014/06/MAGICRAFT-3.png"> <form action="" method="POST"> <fieldset class="table"> <legend><p style="font-size: 2em; color: gold; font-weight: bold">Prihlásenie</p></legend> <table width="100%"> <tr> <p style="font-size: 0,5em; color: gold; font-weight: bold">Pre prihlásenie použite rovnaké údaje ako k serveru MagiCraft</p> </tr> <tr> <td width="80%"><input type="text" class="nick" name="nick" tabindex="1" size="25" placeholder="Nick"></td> </tr> <tr> <td width="80%"><input type="password" class="heslo" name="heslo" tabindex="2" size="25" placeholder="Heslo"></td> </tr> <tr> <td colspan="4" align="center"><input type="submit" class="tlacitko" value="Prihlásiť" tabindex="3"></td> </tr> </table> </fieldset> </form> </body> </html> |
||
jenikkozak Profil |
#18 · Zasláno: 4. 7. 2014, 14:35:39
Kdyby sis ten odkázaný návod prošel, udělal bys lépe. Takto máš sice velkolepý skript, o kterém ale netušíš, jak funguje. Takže ho v budoucnu neopravíš ani nedoplníš.
|
||
Sobky Profil |
#19 · Zasláno: 4. 7. 2014, 15:00:13
no ano ten php neni môj lebo vôbec neviem ako to spraviť ale ten html som robil ja
|
||
Kubo2 Profil |
#20 · Zasláno: 4. 7. 2014, 17:22:49
Sobky:
„no ano ten php neni môj lebo vôbec neviem ako to spraviť ale ten html som robil ja“ To je síce pekné, ale HTML v tomto nehrá žiadnu rolu. Najprv si prosím pozorne prečítaj odkázaný návod. |
||
Časová prodleva: 10 let
|
0