enctype a method not implemented
8 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj, potřebuju odesílat formulářem příspěvky s diakritikou a správně se mi odesílají pouze když nastavím enctype="multipart/form-data". Jenže potom se při první odeslání vždy zobrazí chybová hláška "Method Not Implemented" a až když potom kliknu na refresh, tak už se záznam normálně odešle. Poradíte, v čem by mohl být problém? Díky
-
Divné, nikdy jsem to takto nepotřeboval. multipart/form-data jsem potřeboval akorát na odesílnání obrázků. Není chyba jinde? Je někde k nahlédnutí kousek kódu, kde to zlobí?
-
vkládaná hlavička (respektive část): <?PHP header("Pragma: no-cache"); header("Cache-control: no-cache, must-revalidate"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> formulář: <form action="" method="post" enctype="multipart/form-data"> <input type="hidden" name="datum" value="<?php echo date("m.d.y H:i:s"); ?>" /> <input type="hidden" name="autor" value="jméno" /> <input type="submit" value="Uložit" /> </form> odeslání (jen jsem si upravil článke Jakuba Vrány): if ($_POST) { // oříznu diakriticku, kódování iso 8859-2 $_POST['message_no_czech']=StrTr($_POST['message'], 'áäčďéěëí?ňôóöŕřšťúůüýžÁÄČĎÉĚËÍĄŇÓÖÔŘŔŠŤÚŮÜÝŽ', 'aacdeeeilnooorrstuuuyzaacdeeelinooorrstuuuyz'); $set = array(); $set["datum"] = "'$_POST[datum]'"; $set["heading"] = "'$_POST[heading]'"; $set["message"] = "'$_POST[message]'"; $set["message_no_czech"] = "'$_POST[message_no_czech]'"; $set["autor"] = "'$_POST[autor]'"; //echo $_POST['message']; // další položky spolu s případným ošetřením dat if (isset($_GET["select"])) { array_walk($set, create_function('&$val, $key', '$val = "$key = $val";')); $result = mysql_db_query("svi","UPDATE aktuality_new SET " . implode(", ", $set) . " WHERE id = '$_REQUEST[select]' "); } else { $result = mysql_db_query("svi","INSERT INTO main (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ") "); } if ($result) { header("Location: aktuality.php?insert=1"); exit; } echo "<p><b>Při zpracování došlo k chybě.</b><!-- " . mysql_error() . " --></p>\n"; $row = array_map("stripslashes", $_POST); } elseif (isset($_GET["select"])) { $row = mysql_fetch_assoc(mysql_db_query("svi","SELECT * FROM aktuality_new WHERE id = '$_REQUEST[select]' ")); } else { $row = array(); // nastavení výchozích hodnot
-
podivné, je to někde na netu vystavené? A proč chceš češtinu, když ji pak stejně odčeštíš... No, to není moje starost. Co to dělá bez toho "multipart/data-form"? Čí je hláška "Method not implemented"?
-
ta hláška je ze serveru je to na http://lib.natur.cuni.cz/BIBLIO/new/admin/aktuality.php to odčeštění je jen pro vyhledávání, v db ukládám sloupec s diakritikou a vedle bez
-
Jestli to neni hlaska odjinud jak z prijimani toho multipart. Method not implemented je hlaska i pri tom kdyz pouzijes objekt a zavolas metodu, ktera tam neni, treba $obj->blstost(); Zkusil bych spis patrat timhle smerem...
-
Já trochu zaexperimentoval s kódováním a docela se divím. Když zkusím stejný skript na wz a na pracovním serveru, tak je výsledek jiný. Jen jsem si vypsal obsah $_POST. Když nechám kódování iso (na formuláři i na zobrazovací stránce), tak se na wz zobrazí vše v porádku. Když zkusím totéž na pracovním serveru, tak se data předají jako windows-1250, bez ohledu na meta tag v hlavičce. Zkusím se poptat u správce serveru, moc to nechápu.
-
Ha, už to mám. Na serveru je defaultně nastavené windows-1250, ale databáze je v iso. Takže to posílám normálně jako text/html a před uložením to překóduju. Každopádně díky!