Autor | Zpráva | ||
---|---|---|---|
kozusnik.jan Profil * |
#1 · Zasláno: 18. 7. 2010, 19:03:55
Mám tento zdrojový kód:
<form action="uprava_tvorba_souboru.php" method="post"> <input type="text" name="nazev" />Název souboru<br /> <input type="text" name="adresa" />Adresa . <select> <option value="html" name="html"> <option value="php" name="php"><br /> <input type="text" name="popis" />popis <textarea name="text" cols="100">Text stránky</textarea> <br /> <input type="submit" name="ok" value="Vytvorit" /> <?php $spojeni = mysql_connect("localhost", "root"); mysql_select_db("pokus"); if(isset($_POST['ok'])) { if(isset($_POST['nazev']) && isset($_POST['adresa']) && isset($_POST['text']) && isset($_POST['popis'])) { if(file_exists($_POST['nazev'])) echo"Soubor s tímto názvem už existuje!!"; else { switch($_POST['html']; $_POST['php']) { case $_POST['html'] : $_POST['adresa'] .=".html" ; break; case $_POST['php'] : $_POST['adresa'] .=".php" ; break; } $_POST['adresa'] .=".php" ; $fp = fopen($_POST['adresa'], "a+"); fwrite($fp, $_POST['text']); fclose($fp); }; $nazev=mysql_real_escape_string($_POST['nazev']); $adresa=mysql_real_escape_string($_POST['adresa']); $popis=mysql_real_escape_string($_POST['popis']); $sql = "insert into soubory (jmeno, odkaz, popis) values ('$nazev', '$adresa', '$popis')"; $res = mysql_query($sql); }; }; Který vytvoří soubor se jménem, textem, popisem,.. podle formuláře. Mám problém s SWITCH.Pomocí této podmínky by se měla měnit přípona souboru, ale nevím, jak to udělat. Měnit by se to mělo podle toho, co si uživatel vybere z rolovacího seznamu. Prosím poraďte. Moc dík |
||
Str4wberry Profil |
#2 · Zasláno: 18. 7. 2010, 19:07:09
Atribut
name dej <select> u, ne <option> ům. Budeš mít potom v proměnné $_POST["jméno tvého selectu"] obsah atributu value vybraného <option> u. Možná by se ještě hodilo udělat nějakou kontrolu.
|
||
kozusnik.jan Profil * |
#3 · Zasláno: 18. 7. 2010, 19:16:19
Mohl bysto prosím vysvětlit trochu podrobněji? Popř. napsat ukázku toho kódu?
|
||
Str4wberry Profil |
#4 · Zasláno: 18. 7. 2010, 19:21:05
Čemu na tom nerozumíš?
|
||
AM_ Profil |
#5 · Zasláno: 18. 7. 2010, 19:31:14
if(isset($_POST['ok']) && isset($_POST['nazev']) && isset($_POST['adresa']) && isset($_POST['text']) && isset($_POST['popis']) && file_exists($_POST['nazev'])) { to vypadá o něco líp, ne? jinak jak píše Str4wberry, atribut "name" musí být uveden u <select>u, u option žádný (zvláštní) význam nemá. |
||
kozusnik.jan Profil * |
#6 · Zasláno: 18. 7. 2010, 19:41:18
Str4wberry:
No, nevím, co mám u čeho napsat:-( |
||
kozusnik.jan Profil * |
#7 · Zasláno: 18. 7. 2010, 19:43:51
AM:
Dik |
||
kozusnik.jan Profil * |
#8 · Zasláno: 18. 7. 2010, 19:46:25
Tak už to mám
|
||
kozusnik.jan Profil * |
#9 · Zasláno: 18. 7. 2010, 20:06:55
Tak nemam, trochu jsem tu podminku upravil.
if(isset($_POST['ok'])) { if( isset($_POST['nazev']) && isset($_POST['adresa']) && isset($_POST['text']) && isset($_POST['popis']) && !file_exists($_POST['nazev'])) { switch($_POST['pripona']) { case html : $_POST['adresa'] .=".html" ; break; case php : $_POST['adresa'] .=".php" ; break; } $fp = fopen($_POST['adresa'], "a+"); fwrite($fp, $_POST['text']); fclose($fp); $nazev=mysql_real_escape_string($_POST['nazev']); $adresa=mysql_real_escape_string($_POST['adresa']); $popis=mysql_real_escape_string($_POST['popis']); $sql = "insert into soubory (jmeno, odkaz, popis) values ('$nazev', '$adresa', '$popis')"; $res = mysql_query($sql); }; }; elseif( isset($_POST['ok']) && isset($_POST['nazev']) && isset($_POST['adresa']) && isset($_POST['text']) && isset($_POST['popis']) && file_exists($_POST['nazev'])) echo "Soubor s tímto názvem už existuje!" ; elseif(( isset($_POST['ok']) && !file_exists($_POST['nazev'])) echo"Nevyplnili jste některé údaje!!"; A ono mi to háže : Parse error: parse error in D:\wamp\www\weby\2010Jun14-18_50\POKUSY\uprava_tvorba_souboru.php on line 51 Vím, co to znamená, ale nevím, kde je problém. Nejspíš v podmínce elseif, protože jsem ji smazal a nic mi to nepsalo. Chybu jsem v ní ale nenašel:-( |
||
sarojan Profil |
#10 · Zasláno: 18. 7. 2010, 20:17:10
Toto }; je ootina, proto ti to hádže chybu. tu bodkočiarku vymaž.
|
||
kozusnik.jan Profil * |
#11 · Zasláno: 18. 7. 2010, 20:20:07
moc dik
|
||
AM_ Profil |
#12 · Zasláno: 18. 7. 2010, 20:46:07
kozusnik.jan:
> switch($_POST['pripona']) { > case 'html' : $_POST['adresa'] .=".html" ; > break; > case 'php' : $_POST['adresa'] .=".php" ; > break; > } Stringy patří do uvozovek nebo apostrofů. Zřejmě máš vypnuté zobrazování E_NOTICE - při vývoji určitě zapni! toto je docela závažný prohřešek. |
||
Str4wberry Profil |
#13 · Zasláno: 18. 7. 2010, 21:07:37
Upřímně moc nerozumím tomu, proč tam cpeš ten
switch . Zkrátka:
$fp = fopen($_POST['adresa'].".".$_POST['pripona'], "a+"); |
||
Časová prodleva: 14 let
|
0