Autor Zpráva
marek888
Profil
Dobrý den. Mám kód, který mi zapíše data do databáze, ale mám tu jeden problém. Když třeba omilem napíšu adresu souboru do vyhledávače, tak se mi odešlou prázdné proměnné.
Chtěl bych se zeptat, co musím v kodu změnit. Předem děkuji. Marek
Kód zde:
1<?php 
2  
3  include ('log.php');
4 
5$sql = mysql_query("SET NAMES 'utf8'");
6            
7        mysql_connect("$db_host", "$db_username", "$db_pass");
8        mysql_select_db("$db_name");
9        mysql_query("insert into prispevky (id,datum,autor,titulek,obsah) values(NULL,NOW(),'" . mysql_real_escape_string($_POST['autor'])
10                        . "', '" . mysql_real_escape_string($_POST['titulek'])
11                        . "', '" . mysql_real_escape_string($_POST['obsah']) . "')");
12                                                       
13?>
<?php 
  
  include ('log.php');
 
$sql mysql_query("SET NAMES 'utf8'");
            
        mysql_connect("$db_host""$db_username""$db_pass");
        mysql_select_db("$db_name");
        mysql_query("insert into prispevky (id,datum,autor,titulek,obsah) values(NULL,NOW(),'" . mysql_real_escape_string($_POST['autor'])
                        . "''" . mysql_real_escape_string($_POST['titulek'])
                        . "''" . mysql_real_escape_string($_POST['obsah']) . "')");
                                                       
?>
margin
Profil *
Podmínka if (isset($_POST['titulek'])) (nebo jakýkoliv jiný klíč z daného formuláře).
marek888
Profil
Děkuji! Nějak jsem si z tím pohrál, a funguje to! Dík!
Oprava: Tak to bozužem nefunguje, buďto to vypíše error na stránce, nebo to nezapíše vůbec nic do databáze...
Rfilip
Profil
marek888:
error na stránce“ Křišťálovou kouli nevlastníme, přesná chybová hlášky by nebyla?
okolojsoucí
Profil
Pokud chcete opravdu něco univerzálního, tak bych začal procházet celé pole.
  foreach($_POST as $key => $value)
    if(!empty($value) || $value == "")
      echo "Promenna {$key} je prazdna. <br />";
  foreach($_POST as $key => $value)
    if(!empty($value) || $value == "")
      echo "Promenna {$key} je prazdna. <br />";
marek888
Profil
Píše mi to toto:
Parse error: syntax error, unexpected 'if' (T_IF) in C:\xampp\htdocs\prispevky.php on line 17
Já jsem to tam asi špatně vložil, po úpravě by to asi němělo vypadat takhle:
. "', '" . mysql_real_escape_string if (isset($_POST['titulek']))
Micruss
Profil
taky se to if nedává do mysql dotazu ale před tím než vůbec něco odersíláš do db
1if(isset($_POST['..'])) {
2 
3 
4$sql = mysql_query("sql dotaz");
5 
6}
if(isset($_POST['..'])) {
 
 
$sql mysql_query("sql dotaz");
 
}
marek888
Profil
Micruss:
Díky, zkusím to!
okolojsoucí
Profil
A když už jsi zasednutý na [#2] a moje řešení [#5] se ti nelíbí tak to můžeš využit takto
  // Příklad
  $jmeno =  isset($_POST['test']) ? $_POST['test'] : 'prazdne';
  // Příklad
  $jmeno =  isset($_POST['test']) ? $_POST['test'] : 'prazdne';
marek888
Profil
Pokusil jsem se nějak zkombinovat [#7] s mým dotazem, a vyšlo my z hoho toto:
1if(isset($_POST['poslatp'])){
2        mysql_query("insert into prispevky (id,datum,autor,titulek,obsah) values(NULL,NOW(),'" . mysql_real_escape_string($_POST['autor'])
3                        . "', '" . mysql_real_escape_string($_POST['titulek'])
4                        . "', '" . mysql_real_escape_string($_POST['obsah']) . "')");  
5                        }
if(isset($_POST['poslatp'])){
        mysql_query("insert into prispevky (id,datum,autor,titulek,obsah) values(NULL,NOW(),'" . mysql_real_escape_string($_POST['autor'])
                        . "''" . mysql_real_escape_string($_POST['titulek'])
                        . "''" . mysql_real_escape_string($_POST['obsah']) . "')");  
                        }
Domnívám se, že ta proměnná poslatp je proměnná, díky které se to odešle. Nejsem si jistý, jesli tam nemá bít get, nebo jestli na stránce, kde to odesílám nemá být gret na tu proměnnou. Toto řešení funguje pouze jednostraně a to tak, že to nic nikdy nezapíše...
okolojsoucí
Profil
marek888:
bít
Chyba

gret
Takový přenos dat neznám

Rozšíření MySQL již bude v následující verzi odstraněno, využijte MySqli nebo jeho třídy jako je Dibi která se o bezpečnost vstupu proměnných stará sama. Její kód by vypadal:
dibi::query("INSERT INTO [prispevky] (`id`, `datum`, `autor`, `titulek`, `obsah`) VALUES (NULL, NOW(), %s, %s, %s)", $_POST['autor'], $_POST['titulek'], $_POST['obsah']);
dibi::query("INSERT INTO [prispevky] (`id`, `datum`, `autor`, `titulek`, `obsah`) VALUES (NULL, NOW(), %s, %s, %s)"$_POST['autor'], $_POST['titulek'], $_POST['obsah']);
marek888
Profil
Děkuji, já jsem blbec, já jsem tam měl špatně proměnnou a proto mě to nepustílo dál. Děkuji každému, kdo mi tu odepsal. Marek
okolojsoucí
Profil
marek888:
Když zdejší rady ignoruješ, tak se prosím nechoď pro rady proč ti funkce mysql() nefunguje, jasně jsem ti psal přejdi ne něco jiného když každou chvilkou ji smažou.
marek888
Profil
okolojsoucí:
Díky za rady, už to předělávám, já si toho moc nevšiml, díkes.
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0