Autor Zpráva
Alalala
Profil *
Dobrý večer,
mám problém s přidáváním článků přes php soubor do MySQL ze které se to má poté zobrazit jako článek ... Prostě to nejak nejede... Sicemi to nic nevyhodí, ale ani nic nezapíše ... Mám tyto soubory:
index.php - články se zde mají vypisovat...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="Nový internetový portál, který by Vám mě usnadnit práci na Internetu. Nachází se zde mnoho zajímavých a užitečných aplikací ke zjednodušení i pobavení, tyto aplikace najdete po přihlášení do All Search. ">
    <meta name="keywords" content="Rychlé vyhledávání, Internetové aplikace, Diskusní forum, Galerie obrázků, Download, Hry" />
    <title>
      All Search - Internetový portál
    </title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
    <div id="obal">
      <div id="hlavicka"></div>
      <hr class="noscreen" />
      <div id="sloupec1">
        <div id="sloupec1-in">
          <h2>
            Zajímavé články
          </h2>
          <p>
          </p>
           <?php
if(isset($_GET['read'])){
  $id=(int)$_GET['read'];     // Do proměnné $id si dáme číslo volaného článku. Tuto proměnnou raději z bezpečnostních důvodů přetypujeme na INTEGER
  require_once "db_conn.php";     // Spojení na databázi
  $Vyber=mysql_query("SELECT `nazev`,`popis`,`clanek`,`hit` FROM `clanky` WHERE `id`='$id' LIMIT 1");
    $Vypis=mysql_fetch_array($Vyber); // Naplníme pole
      if($Vypis['nazev']){  // Dostali jsme nějaký výsledek, vypíšeme článek
        echo "
          <h2>".$Vypis['nazev']."</h2>
          <p>".$Vypis['popis']."</p>
          <p>".$Vypis['clanek']."</p>
          <p>Přečteno: ".$Vypis['hit']."x </p>
          ";
        // Protože jsme "otevřeli" tento článek, přičteme mu hit.
        mysql_query("UPDATE `clanky` SET `hit`=`hit`+1 WHERE `id`='$id' LIMIT 1");
      }else{
        echo "Článek s takovým ID se v databázi nenachází.";
      }
}elseif (isset($_GET['page'])){        // pokud byl odeslán ?page= ...
  $soubor=$_GET['page'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/".$soubor.".php";
  $soubor3=strtolower($soubor);
  if(file_exists($soubor2)){      //pokud soubor existuje, načteme ho do středu
     if(substr_count($soubor,"../")>0){ // pokud je v parametru alespoň 1x ../ neumožíme soubor načíst
       echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
     }elseif($soubor3=="index" or $soubor3=="/index" or $soubor3=="./index"){ // index načíst nepovolíme, vznikl by nekonečný cyklus - retezec jsem pred tim prevedl na male pismena
       echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
     }else{
       include $soubor2;
     }
  }else{                //pokud soubor neexistuje, zavoláme error404.php
     include "error404.php";
  }
}else{                  // Pokud nebyl paramentr page nebo read volaný, načteme uvod.php
  include "uvod.php";
}
 ?>
            </div>
          </div>
        </div>
      </div>
      <div id="sloupec2">
        <div id="sloupec2-in">
          <? include "menu.html"; ?>
          </div>
      </div>
      <div class="cleaner">
        &nbsp;
      </div>
      <hr class="noscreen" />
      <div id="paticka">
        <div style="text-align: center;">
          Copyright <b></b> - All Rights Reserved
        </div>
      </div>
    </div>
  </body>
</html>


pridej.php - přidávání článků administrátorem...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
  <head>    
    <meta name="generator" content=     "HTML Tidy for Windows (vers 25 March 2009), see www.w3.org"; />    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
    <meta name="description" content=     "Rychlé vyhledávání, Internetové aplikace, Diskusní forum, Galerie obrázků, Download, Hry" />    
    <title>      All Search - Internetový portál     
    </title>    
    <link rel="stylesheet" type="text/css" href="style.css" />  
  </head>  
  <body>    
    <div id="obal">      
      <div id="hlavicka">
      </div>      
      <hr class="noscreen" />      
      <div id="sloupec1">        
        <div id="sloupec1-in">          <h2>Napsat nový článek</h2>
          <p>
          </p>         
          <form action="odesli.php" method="post">  
            <input name="nazev" size="25" value="Název článku" /><br />
            <p>
            </p>                      
            <textarea name="popis" rows="2" cols="55">Popis článku</textarea><br />
            <p>
            </p>                    
<textarea name="clanek" rows="6" cols="55">Článek</textarea><br />
            <p>
            </p>                              
            <input value=" Odeslat " type="submit" />
          </form><br />        
        </div>      
      </div>      
      <div id="sloupec2">        
        <div id="sloupec2-in">          
          <? include "menu.html"; ?>          
        </div>      
      </div>      
      <div class="cleaner">        &nbsp;       
      </div>      
      <hr class="noscreen" />      
      <div id="paticka">       
        <div style="text-align: center;">          Copyright <b></b> - All Rights Reserved         
        </div>        
      </div>      
    </div>    
    </div>  
  </body>
</html>


odesli.php - tady bude asi ta chyba ... :)
<?php
ob_start();               // cachujeme vystup
  if(isset($_POST['sent'])){      // pokud byl odeslan formular pokracuj timto
    $nazev=trim($_POST['nazev']);
    $popis=$_POST['popis'];
    $clanek=$_POST['clanek'];
    if($nazev=="" or $popis=="" or $clanek==""){ // pokud nebylo vyplněno něco z toho, co je povinné, dáme vědět a skript ukončíme
      echo "Nebyly vyplněny všechny povinné údaje!";
    }else{              // povinné udaje vyplněny vsechny
      require "db.php";     // pripojime se k databazi
        if($VlozData){
          echo "Data byla uložena";
        }
      }

    }
  }else{
    echo "Nebyl odeslán formulář";
  }
// pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO
echo "<a href='clanky/index.php'>Články</a>";
// samozrejme zde muze byt presmerovani na jinou stranku pomoci
// header ("Location: index.php");
ob_end_flush();
?>


db.php
<?php
 $spojeni = mysql_connect("localhost","mujweb","mám vyplněno!" ) or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v db_conn.php - ' . mysql_error());
  mysql_select_db("mujweb", $spojeni) or die ('Nepodarilo se vybrat databazi. Asi zadana databaze v db_conn.php - '. mysql_error());
  mysql_query("SET NAMES utf8");   // Výsledky a dotazy budeme klást v kódování UTF8.
?>


Poznámka: db_conn.php není! ... Díky za odpovědi a přeji nádherný Nový Rok!
shaggy
Profil
require_once "db_conn.php";

vs
db_conn.php není!
Voláš súbor, ktorý podľa tvojich slov nie je. Z tej tony kódu, ktorú si sem dal (a ktorú nikto čítať nebude) mi to príde ako dosť závažná chyba.
Alalala
Profil *
Pořád nic... :( A omlouvám se, pokud tohle: db_conn.php není! vyznělo nějak nemile ... Spíš mě zmátlo, že v tom odesli.php jsem dal jenom
require "db.php"; 
proto jsem udelal soubor db.php a ne db_conn.php .... Ale to je jedno ted jsem to opravil podle navodu shaggyho ale stejnak to nejde ... Pomozte prosím ...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0