Aktualizacja danych w bazie i w pliku

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.

1

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.

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ę.

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