

PHP externé súbory
Dobré ráno, skúšam programovať svoj web cez php. Ako mám spraviť to, že keď napríklad mám na stránka1.php napísanú premennú $text = "Ahoj"; tak ako urobím, že na stránka2.php napíšem ten názov konkrétnej premennej a vypíše sa jeho obsah?
Skúsil som:
(stranka1.php)
<?php
$text = "test";
?>
(stranka2.php)
<?php
require_once('stranka1.php');
echo $text;
?>
Chyba je v tom, že keď otvorím stránku 2, tak sa celá stránka 1 len "duplikuje" (zdvojí?) ale nevypíše mi to to, čo chcem konkrétne aby to vypísalo.
Dobre, vďaka.
Ešte ďalšia vec:
Držal som sa podľa tohotonávodu, keď vytvorím čistú stránku napríklad web.php, a vložím tam čisto len formulár + php kód na zápis do databáze, tak všetko funguje ako má, ale ako náhle vložím formulár s php kódom do svojej stránky, kde mám div-y, odkazy, javascripty atď... tak sa mi nič nezapíše do databáze. Chybu to taktiež nenapíše, jediné čo sa potom na stránke zmení je to, že zmizne päta stránky. (päta - časť, kde je umiestnený copyright) neviete čo s tím? Prikladám celý kód svojej stránky:
A mohli by ste mi prosím poslať aj nejakú stránku, kde sa môžem naučiť php? Aby to bola stránka fakt pre začiatočníkov, nemusím hneď zo začiatku vedieť ako sa daný script zabezpečuje proti sql injection atď... to až časom. Skrátka stránka, kde je všetko hneď vysvetlené.
Nepotrebujem stránku, kde sú zbytočné dlhé texty, ako napríklad:
Nóó a dneska si povieme niečo o podmienkach, ich funkcie, čo všetko sa dá a nedá atď...
Hľadám niečo, čo je hneď k veci, príklad:
if - podmienka
else - čo sa stane, keď sa nesplní if
atď...
Snáď chápete :D.
Ten zápis do databáze se děje jenom při POSTu, ale na tu stránku nejspíš vždycky jdeš GETem.
Nechápem, kde je teda chyba? Ako to mám opraviť? Prípadne môžeš prosím zobrať môj kód, a upraviť ho do "správnej" podoby?
Však jsem ti napsal, kde je chyba. Netuším, co je správná podoba, protože nevím, co to přesně má dělat.
Tak teda takto:
Chcem, aby tá stránka po odoslaní toho formulára odoslala tie údaje, ktoré sú zapísané v
a
do databáze phpMyAdmin na mojom VPS.
Když zadáš adresu stránky v prohlížeči, nebo klikneš na link, provede se GET dotaz. Jeho výsledkem bude ta tvá stránka s formulářem. Uložení do databáze se provede ale pouze v případě POST dotazu, který typicky vzniká při posílání formuláře, nebo se vyvolává JavaScriptem. Ty tam formulář s POSTem máš, ale ten odkazuje na jinou stránku.
Takže pravděpodobně budeš chtít jedno z následujících řešení:
a) formulář bude posílat data na stejnou stránku a na následující pak provede přesměrování, nebo
b) uložení databáze provede ta následující stránka
Promiň, ale neumíš ani absolutní základy a už programuješ práci s databází. Z toho vznikne akorát polofunkční paskvil.
phpMyAdmin není žádná databáze, to je jenom rozhraní pro práci s databází. Databázi máš pravděpodobně MySQL.
Obecně: hodnoty z inputů předáš pomocí metody $_POST skriptu, který je zpracuje (ošetří vstupy atd.) a pomoci UPDATE nebo SET zapíše do databáze.
Takže som to urobil následne:
vytvoril som si ďalší .php odoslidata.php. Vo <form action=""> som na miesto install2.php dal odoslidata.php. Po kliknutí na tlačítko Odoslať, sa mi otvorila prázdna stránka odoslidata.php.
odoslidata.php obsahuje následujúci kód:
<?php
require_once('Db.php');
Db::connect('localhost', 'databaza', 'root', '<Nemusíte vedieť>');
if ($_POST)
{
Db::query('
INSERT INTO users (prezyvka, pass)
VALUES (?, ?, ?)
', $_POST['prezyvka'], $_POST['pass']);
echo('<p>Byl jste úspěšně zaregistrován.</p>');
}
?>
Opäť... nič sa nevytvorilo. žiadny zápis do databáze.
Viem, že teraz možno nado mnou krútite hlavou či som normálni, alebo či si tu teraz z vás robím len srandu... každopádne môj mozog nerozmýšľa 2x najlepšie, a aby niečo pochopil, musíte mi to napísať úplne do detailov.
No pak je tu ještě problém, že ten INSERT je špatně napsaný. Nesouhlasí ti počet parametrů.
Ach bože... ja som fakt magor... problém bol v takejto prkotine, kvoli ktorej som sa tu trápil 5 hodín!!!!!
Na miesto (?, ?, ?) malo byť len (?, ?)
A toto je u mňa normálne, vždy sa zastavím pri nejakej somarine, pri ktorej sa trápim 5 hodín, no druhý by na to prišiel za 5 minút... Ach bože... :D ďakujem všetkým za snahu mi pomôcť :).