Autor | Zpráva | ||
---|---|---|---|
hitny14 Profil * |
#1 · Zasláno: 3. 6. 2013, 22:25:30
Dobrý den, Vytvořil sem si jednoduchou administraci přidávání článků na stránky, která obsahuje formulář pro nadpis a text článku pomocí php scriptu se zapíše do db. Já bych ale potřeboval aby se mi rovnou při vložení stránku na web vytvořil automaticky nový odkaz např: example.cz/novy-clanek.php Poradil by mi prosím vás někdo jak na to?
|
||
nounejm Profil * |
#2 · Zasláno: 3. 6. 2013, 22:44:41 · Upravil/a: nounejm
prostě bude nový odkaz třeba example.cz/index?clanek=2 a z toho se pomocí .htaccess udělají pěkné url - např. example.cz/clanky/nove-povidani-o-rikani.html
viz třeba: tady jinak hledat .htaccess pěkné url mod_rewrite oprava: example.cz/index.php?clanek=2 |
||
Hitny14 Profil * |
#3 · Zasláno: 3. 6. 2013, 23:09:58
A jak dcílím toho example.cz/index.php?clanek=2? Já mám totiž pak ještě script který mi vypisuje všechny články pod sebe na adrese třeba example.cz/clanky.php.
|
||
nounejm Profil * |
#4 · Zasláno: 3. 6. 2013, 23:18:09
Tak to je chyba - musí být skript, který vypíše jeden článek.
Pokud se vypisují všechny články na jednu stránku, tak přece ani nemusí být víc odkazů - stačí jeden, ale to je špatné řešení - co když bude článků časem sto? Prostě to nejde obejít. Ten skript na výpis konkrétního článku tam být musí. A pod článkem nebo vedle mohou být odkazy na další články. Pokud někdo umí vypsat z databáze všechny články, nemůže být pro něj problém vypsat pouze jeden. |
||
hitny14 Profil * |
#5 · Zasláno: 4. 6. 2013, 11:29:50
Už mám skript který mi vytvoří dovou url třeba example.cz/clanek.php. ale když ten odkaz vytvořím tak mi to jako by stránku neodevře a potřebovak bych vědět jak vytvořit stránku clanek.php se vzhledem jako je na každé stránce?
|
||
nounejm Profil * |
#6 · Zasláno: 4. 6. 2013, 13:02:58
weby se dělají tak, že se skládají ze třeba hlavičky, menu, těla a patičky
volá se vždy jeden soubor třeba index.php a v něm se to skládá - např.: include('hlavicka.php'); include('telo.php'); include('paticka.php'); example.cz/index.php?clanek=2 example.cz/index.php?clanek=13 example.cz/index.php?clanek=25 volá vždycky ten stejný soubor - pouze s jiným parametrem, takže vzhled bude vždy stejný ten parametr clanek předaný v url v php zjistím pomocí $_GET['clanek'] musí teda existovat nějaký soubor telo.php nebo clanek.php a ten podle toho parametru předaného v url zobrazí správný obsah - např. vybere z databáze požadovaný článek "SELECT * FROM clanky WHERE id='".addslashes($_GET['clanek']) ."'" a ten potom zobrazí - tudíž vzhled bude vždy stejný
Už mám skript který mi vytvoří dovou url - jakým způsobem vytvoří novou url? když ten odkaz vytvořím tak mi to jako by stránku neodevře - ta stránka asi neexistuje |
||
hitny14 Profil * |
#7 · Zasláno: 4. 6. 2013, 22:17:11
Celý kod pro přidání článku a vytvoření url vypadá takto:
<?php include 'config.php'; if (isset($_POST['uloz'])) { $nadpis = $_POST['nadpis']; $clanek = $_POST['text']; $datum = date("d.m.Y"); $autor = $_SESSION['UserLogin']; $url = $_POST['url']; $sql = "INSERT INTO clanky (nadpis, clanek, datum, autor) VALUES ('$nadpis', '$clanek', '$datum', '$autor')"; if (mysql_query($sql)) { echo "<strong>Článek byl uspěšně nahrán! Pro další editaci máčkněte <a href=".$url.'.php'">zde</a>.</strong>"; } else { echo "<strong>Článek se nepovedlo nahrát zkuste to prosím později nebo kontaktujde správce!</strong>"; } } ?> Jestli je to nějak špatně mohl by jsi mi prosím poradit už si nevím rady =( |
||
abc Profil |
#8 · Zasláno: 4. 6. 2013, 22:25:30
1) sloupec datum rychle změň na typ datetime, dokud je čas
2) „Jestli je to nějak špatně mohl by jsi mi prosím poradit už si nevím rady =(“ není popís problému 2) co nefunguje? nějaká chybová hláška? |
||
Hitny14 Profil * |
#9 · Zasláno: 4. 6. 2013, 23:02:56
Nahoře je to popsaný co potřebuju. Tímto kodem vložímk článek do db a vytvořím si nový okdkaz např: example.cz/clanek1.php. A já bych potrěboval aby se mi vytvořila na serveru stránka clanek1.php se stejným vzhledem jako mím trěba na indexu.
|
||
nounejm Profil * |
#10 · Zasláno: 4. 6. 2013, 23:31:25
Hitny14:
takto se to dělá: [#6] nounejm nejdřív udělej soubor třeba test.php, který dokáže vypsat 1 článek z databáze (a je jedno jestli vypíše článek s id=1 nebo id=5) potom změň databázový dotaz tak, aby uměl zobrazit článek s id v url example.cz/test.php?clanek=2 - to id se z url předá do php pomocí $_GET['clanek'] Neustále na to jdeš tvrdohlavě odzadu - nejřív si vymyslíš nějaké url a potom chceš něco vytvářet. Nejdřív vytvoř soubor, který umí zobrazit 1 článek podle parametru z url a potom lehce vytvoříš odkazy |
||
hitny14 Profil * |
#11 · Zasláno: 5. 6. 2013, 12:42:56 · Upravil/a: hitny14
kod pro zápis vypadá takto:
<?php include 'config.php'; if (isset($_POST['uloz'])) { $nadpis = $_POST['nadpis']; $clanek = $_POST['text']; $datum = date("d.m.Y"); $autor = $_SESSION['UserLogin']; $sql = "INSERT INTO clanky (nadpis, clanek, datum, autor) VALUES ('$nadpis', '$clanek', '$datum', '$autor')"; if (mysql_query($sql)) { echo '<strong>Článek byl uspěšně nahrán! Pro další editaci máčkněte <a href="clanky.php?clanek=">zde</a>.</strong>'; } else { echo "<strong>Článek se nepovedlo nahrát zkuste to prosím později nebo kontaktujde správce!</strong>"; } } ?> a kod pro zobrazení: <?php include 'config.php'; //$sql = "SELECT * FROM clanky order by id desc"; $sql = "SELECT * FROM clanky WHERE id=" . (int) $_GET["idClanek"]; $query = mysql_query($sql); while($row = mysql_fetch_array($query)) { echo "<h3>".$row["nadpis"]."</h3>"; echo "<p>".$row["clanek"]."</p>"; echo "<p>".$row['datum']."</p><p class='autor'>".$row['autor']."</p>"; echo "<p><a href='?smazat=1&idClanek=".$row["id"]."'>Smazat článek</a> <a href='uprava_clanku.php?edit=1&idClanek=".$row["id"]."'>Uprav článek</a></p>"; echo "<hr>"; } if ($_GET["smazat"] && $_GET["idClanek"]) { mysql_query("DELETE FROM clanky WHERE id = " . (int) $_GET["idClanek"]); } mysql_close(); ?> Už nevím jak na to =( |
||
nounejm Profil * |
#12 · Zasláno: 5. 6. 2013, 14:41:27
vidím, že jsem to asi špatně pochopil :-)
jinak pozor na example.cz/admin.php?smazat=1&idClanek=2 - toto by mohl někdo zavolat z prohlížeče (ale možná je před tím kontrola, jestli je přihlášený admin) |
||
hitny14 Profil * |
#13 · Zasláno: 5. 6. 2013, 15:31:58
Je tam kontrola to mam vyzkouseny. A jak by jsi mi stim poradil?
|
||
Časová prodleva: 12 let
|
0