Stránka 1 z 1

pomoc s php

Napsal: ned 25. led 2009, 12:55
od esso82
caute...chcem si spravit stranku mojweb/skuska.php, ktora obsahuje formular, ktory pri odoslani zapise udaje do DB,ale v php iba zacinam programovat tak som narazil na maly problem.

vypis z DB funguje dobre, ale mam problem s pridavanim do DB, resp s POSTom...takze mam formular, ktory obsahuje dve polia a submit, takze
subor skuska.php
form method="post" action="skuska.php"
name="a"
name="b"

ide o to, ze to chcem mat v jednom subore, takze pred ten formular som pridal skript:

Kód: Vybrat vše

if(isset($_POST['a']) && isset($_POST['b'])) {zapis do DB};
lenze nefunguje to, vrati mi prazdnu stranku a vypis HTML sa zastavi pri <body>

viete mi s tym pomoct

Re: pomoc s php

Napsal: ned 25. led 2009, 13:30
od OndraSter
Co třeba sem ten kód dát? :D

Re: pomoc s php

Napsal: ned 25. led 2009, 15:21
od esso82
som si myslel ze odpises iba ty:)))) ...ok je to tu a pokial sa ti to zda povedome, tak ano...je to php-fusion

Kód: Vybrat vše

<?php

require_once "../maincore.php";
require_once THEMES."templates/admin_header_mce.php";
include LOCALE.LOCALESET."admin/shortnews.php";

if (!checkrights("N") || !defined("iAUTH") || $_GET['aid'] != iAUTH) { redirect("../index.php"); }
global $settings;

if (isset($_GET['status'])) {
	if ($_GET['status'] == "sn") {
		$message = $locale['105'];
	} elseif ($_GET['status'] == "su") {
		$message = $locale['106'];
	} elseif ($_GET['status'] == "del") {
		$message = $locale['107'];
	}
	if ($message) {	echo "<div class='admin-message'>".$message."</div>\n"; }
		}

if(isset($_POST['save']) && isset($_POST['snews_subject']) && isset($_POST['snews_extended'])) {
	$snews_subject = stripinput($_POST['snews_subject']);
	$snews_extended = stripinput($_POST['snews_extended']);
	$result = dbquery("INSERT INTO fusion_short_news (snews_subject, snews_extended VALUES ('$snews_subject', '$snews_extended')");
		redirect(FUSION_SELF.$aidlink."&status=sn");
		} else {
			redirect(FUSION_SELF.$aidlink);
				}

	
if(!isset($_POST['snews_id'])) {
	$snews_subject = "";
	$snews_extended = "";
	}
	
	opentable($locale['103']);
	echo "<form name='inputform' method='post' action='".FUSION_SELF.$aidlink."' onsubmit='return ValidateForm(this);'>\n";
	echo "<table cellpadding='0' cellspacing='0' class='center'>\n<tr>\n";
	echo "<td width='100' class='tbl'>".$locale['110']."</td>\n";
	echo "<td width='80%' class='tbl'><input type='text' name='snews_subject' value='".$snews_subject."' class='textbox' style='width: 250px' /></td>\n";
	echo "</tr>\n<tr>\n";
	echo "<td width='100' class='tbl'>".$locale['111']."</td>\n";
	echo "<td width='80%' class='tbl'><input type='text' name='snews_extended' value='".$snews_extended."' class='textbox' style='width: 250px' /></td>\n";
	echo "<tr><td class='tbl'></td>";
	echo "<td class='tbl'>";
	echo "<input type='submit' name='save' value='".$locale['121']."' class='button' /></td>\n";	
	echo "</tr>\n</table>\n";
	echo "</form>\n";
	closetable();
	echo "<script type='text/javascript'>\n"."function DeleteNews() {\n";
	echo "return confirm('".$locale['123']."');\n}\n";
	echo "function ValidateForm(frm) {\n"."if(frm.news_subject.value=='') {\n";
	echo "alert('".$locale['122']."');\n"."return false;\n}\n}\n";
	echo "function SetRatings() {\n"."if (inputform.news_comments.checked == false) {\n";
	echo "inputform.news_ratings.checked = false;\n"."inputform.news_ratings.disabled = true;\n";
	echo "} else {\n"."inputform.news_ratings.disabled = false;\n}\n}\n</script>\n";	
	

	
	
require_once THEMES."templates/footer.php";

?>

Re: pomoc s php

Napsal: ned 25. led 2009, 15:31
od esso82
sry...uz som prisiel na to, preco to neslo - lebo som kokoko :-D

ja som dal podmienku, ze ak je ten POST, tak nieco sprav (ale on samozrejme pri prvotnom nacitani stranky neni), inak presmeruj na tu stranku znova .....ja som dilino :shock:

Re: pomoc s php

Napsal: ned 25. led 2009, 16:46
od esso82
stejne mi to nejde, ked kliknem na submit button, tak tie indexy su prazdne...ale preco?

Re: pomoc s php

Napsal: ned 25. led 2009, 17:19
od OndraSter
print_r($_POST); na začátek vypíše co?

Co to je za produkt? Píšeš modul pro php Fusion?

Re: pomoc s php

Napsal: ned 25. led 2009, 17:40
od esso82
jj...jedna sa o php-fusion a vypisalo to Array() ...to je vsetko .... uz som zufaly..sa s tym serkam druhy den...asi napisem cely skript znova od zaciatku

PS. este sa chcem spytat, lebo to neovladam, ked sa odosle formular metodou POST, tak vznikne pole s tymi hodnotami, ale kedy sa to pole znova vynuluje? lebo neviem ci by to teda tak fungovalo, ale myslel som, ze ak uz odoslem formular, ktory sa odkazuje na ten isty subor, vytvori sa pole a ak pred formom bude podmienka na ulozenie databaze, tak sa vykona, ale co ak stlacim v prehliadaci F5 pre refresh stranky? To pole tam stale je a znova je podmienka pravdiva...viem ze by sa to dalo osetrit priradenim tych indexov premennym a za podmienkou premenne vynulovat, ale da sa to urobit aj sikovnejsie?

Re: pomoc s php

Napsal: ned 25. led 2009, 19:06
od OndraSter
Dal si to print_r úplně na začátek, nebo až za to require apod?

Podivej se do toho, co ti pošle zpátky server (tzn pravý klik -> zobrazit zdrojový kód).

Re: pomoc s php

Napsal: ned 25. led 2009, 23:23
od esso82
no dal som to teraz pred require a napise to to iste, tentokrat uplne na vrchu stranky este pred DOCTYPE, ale neva...spravim to zas od zaciatku....snazim sa to pochopit, tak som si spravil taky skusobny kod...

Kód: Vybrat vše

<?php

if(isset($_POST['save'])) {
$meno = ($_POST['meno']);
unset ($_POST['save']);
echo "volas sa ".$meno;
$meno = "";
}


echo "<form method='post' action='http://localhost/fusion/pokus.php'>";
echo "<input type='text' name='meno' style='width:200px;' value='".$meno."'>";
echo "<input type='submit' name='save' value='posli'>";
echo "</form>";
echo "";
?>
funguje to OK, dokonca som si ECHOm overil, ze ten POST je unset, ale nejde mi do palice, ako je mozne, ze ten skript sa nezastavi pri tej premennej $meno vo formulari ked bezi prvy krat, lebo na zaciatku neni definovana, kedze POST je prazdny a ten IF teda preskoci a ide priamo na formular...

Ondro..prosim...vysvetli mi to...dakujem

Re: pomoc s php

Napsal: ned 25. led 2009, 23:42
od OndraSter
To jsem nějak nepochopil. Jaké zastavování ve formuláři?

Při prvním průchodu by se ta podmínka vůbec neměla splnit.

Jinak poprvé by to správně mělo vyhodit WARNING, že nebyla definovaná proměnná $meno, pokud tomu tak není, napiš hned za <?php

Kód: Vybrat vše

error_reporting(E_ALL);
ale není to nutné.

Když se na to dívám teď zpětně, tak asi myslíš to, že PHP se má zastavit, když není proměnná definovaná? Nene, to není jako C#, který se ani nezkompiluje. PHP vesele jede, jakmile narazí na nedefinovanou proměnnou tak to za ní dosadí NULL a vyhodí varování.

Re: pomoc s php

Napsal: ned 25. led 2009, 23:59
od l_iNu$
OndraSter píše:PHP vesele jede, jakmile narazí na nedefinovanou proměnnou tak to za ní dosadí "" (prázdný text) a vyhodí varování.
Nikoliv prázdný řetězec ale NULL.


// OndraSter - jo, máš pravdu, večer jsem už nad tím nemyslel. Díky za upozornění.

Re: pomoc s php

Napsal: pon 26. led 2009, 00:49
od esso82
dik ludia, uz zacinam chapat, no ten skript som prepisal a uz to fachci, najprv som mal maly problem s tym, ze po refreshovani stranky sa pridal znova ten isty zaznam do DB, ale potom mi bliklo, ze tam treba ten redirect a uz to ide ako basen.....vdaka