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
Dobre, vďaka. Ešte ďalšia vec: Držal som sa podľa tohotonávodu, keď vytvorím čistú stránku napríkl… nový
AD4M 18.11.2018 18:54
AD4M
Ten zápis do databáze se děje jenom při POSTu, ale na tu stránku nejspíš vždycky jdeš GETem. nový
Wikan 18.11.2018 19:03
Wikan
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… nový
AD4M 18.11.2018 19:20
AD4M
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ěl… nový
Wikan 18.11.2018 19:33
Wikan
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

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:

<html>
<head>
<!-- Hlavné kódy -->
<link href="styles/styly.css" rel="stylesheet" type="text/css"/>
<title>&copy; Congral 2018 &copy;</title>
<!-- JavaScritps --> 
</head>

	<body>
	<style>
	.cervena {color: red}
	.modra {color: blue}
	.biela {color: white}
	.cierna {color: black}
	</style>

		<div id="hlavicka">
			<span class="biela"><br><h2><b>Inštalácia administrácie Congral</b></h2></span>
		</div>
		
		<div id="kroky">
			<b><p class="cierna">Krok 1</p><br><br>
			
			<p class="cierna">Krok 2</p><br><br>
			
			<p class="cierna">Krok 3</p></b>			
		</div>	
		
		<div id="hlavne-okno">
			<center><b>Vytvorenie prvého Admin účtu - Krok 2</b></center><br><br>
			
			<form action="install2.php" method="post">
				<center>Prezývka:<br>
				<input type="text" name="prezyvka"><br><br>
				
				heslo:<br>
				<input type="password" name="pass"><br><br>
				
				<input type="submit" value="Vytvoriť"></center>
			</form>
		</div>
                <?php

                require_once('Db.php');
                Db::connect('localhost', 'databaza', 'root', '<heslo vedieť nemusíte :-)>');
                if ($_POST)
                {
                        Db::query('
                                INSERT INTO users (prezyvka, pass)
                                VALUES (?, ?, ?)
                        ', $_POST['prezyvka'], $_POST['pass']);

                        echo('<p>Byl jste úspěšně zaregistrován.</p>');
                }
                ?>		
		
		<div id="paticka">
			<p class="biela">&copy; Copyright by AD4M | Admin Panel Congral 2018</p>
		</div>
	
	</body>	
	
</html>

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.

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