Autor | Zpráva | ||
---|---|---|---|
nyllo Profil |
#1 · Zasláno: 12. 7. 2013, 09:46:53
Už to běží. Nyní píšu administraci snad to půjde lépe.
|
||
nyllo Profil |
tak jsem dnes narazil na další problém tentokrát na editaci.
Mělo by to vypsat do políček obsah databáze podle id a po uložení příslušná data upravit. Vymaže mi to veškerá data v tabulce a zanechá prázdná místa. <?php include 'config.php'; //načteme soubor s údaji pro připojení k db mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db mysql_select_db($dbnazev); // vybereme db mysql_query("SET NAMES 'UTF-8'"); // nastavíme kódování //********************* odesíláme formulář ************************ if(isset($_POST['send'])) { $clanek = intval($_GET['clanek']); $nadpis = htmlspecialchars($_POST['nadpis']); //při odeslání příspěvku se nebezpečné znaky změní na entity $text = htmlspecialchars($_POST['text']); //při odeslání příspěvku se nebezpečné znaky změní na entity $text=str_replace("\n","<br>",$text); //při odentrování v textarey se toto převede na odřádkování $vloz ="UPDATE events set day='".$day."', date='".$date."', name='".$name."', list='".$list."', images='".$images."' WHERE id = '".$clanek."'"; //zapíšeme nové údaje do řádku podle ID $result=mysql_query($vloz); //a přesměrujeme na zobrazení článků echo '<script type="text/javascript" for="window" event="onLoad()"> <!-- window.location.href="index.php" // --> </script>'; } //************************* výpis formuláře ************************ $vypis = mysql_query("SELECT * FROM events where id = '".$clanek."'"); //vybíráme data z "aktualit" podle ID $zobraz = mysql_fetch_row($vypis); echo '<!-- formulář pro zadávání ůdajů -->'; echo '<form method="post">'; echo 'Den: <input name="day" type="text" size="20" maxlength="20" value="'.$day.'"><br>'; // do nadpisu vypíšeme nadpis echo 'Datum: <input name="date" type="date" value="'.$date.'"><br>'; //do textarey vypíšeme text echo 'Název: <input name="name" type="date" value="'.$name.'"><br>'; //do textarey vypíšeme text echo 'ID události: <input name="list" type="date" value="'.$list.'"><br>'; //do textarey vypíšeme text echo 'URL obrázku: <input name="images" type="date" value="'.$images.'"><br>'; //do textarey vypíšeme text echo '<input type="submit" value="Vložit" name="send">'; echo '</form>'; ?> </body> </html> |
||
Tori Profil |
#3 · Zasláno: 12. 7. 2013, 15:31:29
Při zobrazení formuláře není na ř.24 definovaná proměnná $clanek, protože její načtení z GET je v podmínce po odeslání formuláře. Následně na ř.10 bude $clanek vždy nula, protože ID článku neposíláte formulářem. Pokud tedy měly všechny řádky ID = 0, tak se z tohoto důvodu přepsaly všechny.
Data vkládaná do DB je potřeba ošetřit pomocí mysql_real_escape_string. Odkud berete proměnné na ř.14 - máte zapnuté register_globals? |
||
nyllo Profil |
#4 · Zasláno: 12. 7. 2013, 16:16:44 · Upravil/a: nyllo
tak jsem teď opět mimo. Pokud jsem to pochopil tak mi to nečte ID. Jak z toho ven?
register_globals na php 5.4 již neexistuje pomůže mi když přidám řádek $id = $_GET['id']; |
||
Časová prodleva: 1 měsíc
|
|||
nyllo Profil |
Vyřešeno
|
||
Časová prodleva: 11 let
|
0