« 1 2
Autor Zpráva
nyllo
Profil
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
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
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'];
nyllo
Profil
Vyřešeno
« 1 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: