Aktualizacja danych w bazie i w pliku

Odpowiedz Nowy wątek
2014-12-26 15:17
0

Cześć. Mam problem polegający na tym, że kiedy wysyłam dane do pliku postem, plik ten powinien zaktalizować te dane w bazie i w pliku html, aktualizuje jednak dane tylko w bazie a wpliku nie. Pokaże mi ktoś gdzie jest błąd?

 
<?php
session_start();
$er = mysql_connect('localhost','u343290308_admin','widmo3103') or die('Padl serwer');
$er = mysql_select_db('u343290308_nauka') or die('padla baza');
$a = trim($_POST['a']); 
 
//$_GET['id'] = ;
$id = trim($_POST['id']); 
echo('Powinno byc "edit": '.$a);
echo('Powinno byc "edit": '.$id);
 
 echo('<h3 style="color: red;" >nie uzywaj apostrofow</h3>');
    /* zapytanie do tabeli */ 
    $wynik = mysql_query("SELECT * FROM fic WHERE 
    id=$id") or die('Błąd zapytania'); 
    /*  
     wyświetlamy wyniki, sprawdzamy, 
     czy zapytanie zwróciło wartość większą od 0 
     */ 
   // if(mysql_num_rows($wynik) > 0) { 
         /* odczytujemy zawartość wiersza z tabeli */ 
        $r = mysql_fetch_assoc($wynik); 
        /* wczytujemy dane do formularza */ 
        /*  
        w formularz znajdują się ukryte pola "a" 
        z wartością "save" i pole "id" z wartością 
        zmiennej id 
        */ 
        echo('<br />zawartosc'.$r['content']);
        echo '<form action="edit.php" method="post"> 
        <input type="hidden" name="a" value="save" /> 
        <input type="hidden" name="id" value="'.$id.'" /> 
        imię:<br /> 
        <input type="text" name="title" required="required"
        value="'.$r['title'].'" /><br />
        <br /> 
        <textarea rows="30" cols="130" name="cont" required="required">'.$r['content'].' </textarea><br />
        <input type="submit" value="popraw" /> 
        </form>'; 
   // } 
 
if($a == 'save') { 
 
    /* odbieramy zmienne z formularza */ 
 
    $title = trim($_POST['title']); 
    $cont = trim($_POST['cont']); 
    /* uaktualniamy tabelę test */ 
    mysql_query("UPDATE fic SET title='$title', 
    content='$cont' WHERE id=".$id) 
    or die('Błąd zapytania'); 
    echo 'Dane zostały zaktualizowane'; 
 
   echo("<br /><br /><h3>To jest nowa tresc:</h3> <br />$cont<br />");
?>
 
<?php
                                mysql_query("SET NAMES 'utf8_general_ci' COLLATE 'utf8_polish_ci'");
                                    $nowedane =' <!DOCTYPE html>
                                    <html lang=="pl">
                                        <head>
                                        <meta charset="UTF-8" />
                                        <link rel="stylesheet" type="text/css" href="../../css/style.css" />
                                        <title>'.$title.'</title>
                                        </head>
                                        <body>
                                            <header>
                                                <section id="log">
                                                    logo
                                                </section>
                                                <nav>
                                                <section id="staticNav">
                                                        <p>Menu</p>
                                                    </section>
                                                    <section id="firstN">
                                                    Przykład
                                                    </section>
                                                    <ul id="roz">
 
                                                        <li><a href="../../index.php">Start</a>
                                                        </li>
                                                        <li><a href="#">nieprzypisany</a></li>
                                                        <li><a href="../fanfics.php">Fanfics</a>
                                                            <!--
                                                            <ul class="rozwijane">
                                                                <li><a href="#">link</a></li>
                                                                <li><a href="#">link</a></li>
                                                                <li><a href="#">link</a></li>
                                                                <li><a href="#">link</a></li>
                                                                <li><a href="#">link</a></li>
                                                            </ul>
                                                            -->
                                                        </li>
                                                        <li><a href="#">nieprzypisany</a></li>
                                                        <li><a href="/cdn-cgi/l/email-protection#731e1c1912331a1d0716011a125d031f">Kontakt</a></li>
 
                                                    </ul>
                                                    <section id="navSec">
                                                        Created by Michalski9
                                                    </section>
                                                </nav>
                                                 -->
                                            </header>
                                            <section id="cont">
                                                <section id="mainCont">
                                                    <pre>   '.$cont.'</pre>
                                                    <section></section>
                                                </section>
 
                                            </section>
 
                                        <script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l=document.getElementsByTagName("a"),t=document.createElement("textarea");for(i=0;l.length-i;i++){try{a=l[i].getAttribute("href");if(a&&a.indexOf("/cdn-cgi/l/email-protection") > -1  && (a.length > 28)){s='';j=27+ 1 + a.indexOf("/cdn-cgi/l/email-protection");if (a.length > j) {r=parseInt(a.substr(j,2),16);for(j+=2;a.length>j&&a.substr(j,1)!='X';j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}j+=1;s+=a.substr(j,a.length-j);}t.innerHTML=s.replace(/</g,"&lt;").replace(/>/g,"&gt;");l[i].setAttribute("href","mailto:"+t.value);}}catch(e){}}}catch(e){}})();
/* ]]> */
</script>
</body>
                                    </html>';
 
                           $file = $title.".html";
// wczytanie starych danych
 
// otwarcie pliku do odczytu
$fp = fopen($file, "r") or die("error");
 
//odczytanie danych
$stareDane = fread($fp, filesize($file)) or die("error");
 
// zamknięcie pliku
fclose($fp) or die("error");
// stworzenie nowych danych
 
// zapisanie nowych danych
 
// otwarcie pliku do zapisu
$fp = fopen($file, "w") or  die("error");
 
// zapisanie danych
fputs($fp,$nowedane)or die("error");
 
// zamknięcie pliku
fclose($fp) or die("error");
 
                           $file = "fic/$title.html";
 
                                    // dodajemy rekord do bazy 
 
                                                                $ins = @mysql_query("update fic set sciezka='$file' where id=$id"); 
 
                                                                if($ins) echo "Rekord został dodany poprawnie"; 
                                                                else echo "Błąd nie udało się dodać nowego rekordu"; 
 
                            }
?>
 
<h2><a href="fanfics.php" >Return</a></h2>

Z góry dzięki za pomoc.

edytowany 3x, ostatnio: dzek69, 2014-12-26 15:37

Pozostało 580 znaków

2014-12-26 15:35

A po co Ty w ogóle generujesz tak pliki html?

Zamiast tego, po prostu przy każdym dostępie do podstrony - pobieraj dane z bazy od nowa i je wyświetlaj. Nie rób takich "kompilowanych" plików html.

Edit:
A więc masz:
# złe podejście

Poza tym:

  1. dziury
  2. przestarzałe funkcje
  3. niejednolity kod (raz polskie nazwy, raz angielskie)
  4. mieszanie kodu html z php
  5. utrudniasz sobie życie, stosując fopen tam, gdzie nie jest to koniecznie (wystarczy file_put_contents)

itd.

Zmień źródło, z którego się uczysz, bo to nie uczy Cię niczego dobrego.


edytowany 1x, ostatnio: dzek69, 2014-12-26 15:37

Pozostało 580 znaków

2014-12-26 16:15
0

Ok, wielkie dzięki. Nie miałem innego pomysłu więc wykombinowałem taki, a źródła poszukam innego, na razie chciałem, żeby tylko działało.

Dzięki to upraszcza sprawę.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0