Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tak teda takto: Chcem, aby tá stránka po odoslaní toho formulára odoslala tie údaje, ktoré sú zapís… nový
AD4M 18.11.2018 19:49
AD4M
Když zadáš adresu stránky v prohlížeči, nebo klikneš na link, provede se GET dotaz. Jeho výsledkem b… nový
Wikan 18.11.2018 19:52
Wikan
Promiň, ale neumíš ani absolutní základy a už programuješ práci s databází. Z toho vznikne akorát po… nový
host 18.11.2018 19:53
host
Takže som to urobil následne: vytvoril som si ďalší .php odoslidata.php. Vo <form action=""> som na… nový
AD4M 18.11.2018 20:25
AD4M
No pak je tu ještě problém, že ten INSERT je špatně napsaný. Nesouhlasí ti počet parametrů. nový
Wikan 18.11.2018 20:40
Wikan
Ach bože... ja som fakt magor... problém bol v takejto prkotine, kvoli ktorej som sa tu trápil 5 hod… poslední
AD4M 18.11.2018 21:01
AD4M

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.

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ť :).

Zpět do poradny Odpovědět na původní otázku Nahoru