Autor Zpráva
pema01
Profil
Ahoj,

mám formulář:

<form action="./pridejOtazkuDb.php" method="get">
    <input type="text" name="otazka" value="" placeholder="Otázka">
    <input type="text" name="odpoved" value="" placeholder="Odpověď">
           
     <input type="submit" value="Odeslat">
</form>

a PHP kód, který má odeslat z formuláře Otázku a správnou odpověď:
<?php
header('Content-Type: text/html; charset=utf-8');

$server = "localhost";
$databaze = "db";
$uzivatel = "fantomas";
$heslo = "fantom";


if (mysql_connect($server, $uzivatel, $heslo)) {

    if (mysql_select_db($databaze)) {


        $pridej = "INSERT INTO Otazky VALUES(NULL,'$GET[otazka]','$GET[odpoved]')";
        $proved = mysql_query($pridej);
                
        
        if ($proved) {
         
            header("location:./pridejOtazkuForm.php");
        }else{
            echo 'nastala chyba při zapisování do DB';
        }

      
       
       
    } else{
        echo 'nepřipojeno';
    }
} else {
  echo 'chyba';
}
?>

PHP soubor nevyhodí žádnou chybu, vrátí mě tedy zpět na formulář. Problém však je na straně hostingu, kde se mi do tabulky přidá jen ID (které má být v první kolonce a v PHP tedy dávám hodnotu NULL, neboť se mi automaticky přidává), další 2 sloupce však jsou prázdné (viz obr.).

Znakovou sadu mám správně, ale nechápu kde je chyba. Díky za radu.

(náhled obrázku viz. můj příspěvek na pc-helpu, kde mi nikdo nepomohl:ZDE )
lionel messi
Profil
 $pridej = "INSERT INTO Otazky VALUES(NULL,'$_GET[otazka]','$_GET[odpoved]')";

Superglobálne pole sa v PHP zapisuje s podtržítkom po dolári, čiže $_GET. $GET je úplne iné, v tvojom prípade nedefinované pole.

PS. Odporúčam pozrieť na Definitivní příručka escapování, vkladať do db neošetrený užívateľský vstup je trochu hazard.
mimochodec
Profil
Kromě toho doporučuji syntaxi

INSERT INTO table_name (column1, column2, column3,...)  VALUES (value1, value2, value3,...)

Kromě nesmyslného zadávání ID=NULL to zabrání přehmatům vyplývajícím ze situací, kdy člověk vkládá hodnoty a nemá kontrolu, do jakých sloupců.
pema01
Profil
Děkuji mockrát, oba jste mi pomohli, vše funguje.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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