Autor Zpráva
HGD
Profil
nechápu chybu
 if(isset($_POST['pozice'])){
  header("location: index.php?admin=edit&posunS=".$_POST['id']."_".$_POST['cat']."_".$_POS T['pozice']."");
 }

ve výsledku je tam potom něco jako ...posunS=5_1_3

- mám to v kódu, který slouží pro posun řádků v DB od p. Vrány a když chci měnit řádky jenom v jedné kategorii($post[cat]) tak to funguje bezproblémů, ale když mam 2 kategorie, tak to hlásí chybu:

Warning: Cannot modify header information - headers already sent by (output started at /home/free/tym.cz/h/h-design/root/www/hrss/admin/menu.php:137) in /home/free/tym.cz/h/h-design/root/www/hrss/admin/menu.php on line 146

 echo '<form method="post">
        <input type="hidden" name="id" value="'.$dataS['id'].'">
        <input type="hidden" name="cat" value="'.$dataS['id_cat'].'">
        <select style="width: 100%" name="pozice" onchange="this.form.submit()">';
      $max = mysql_result(mysql_query("SELECT MAX(poradi) FROM ".$pref."_sekce WHERE id_cat='".$dataS['id_cat']."'"), 0);
      for ($p=1;$p<=$max;$p++){
       $sel = ($p==$dataS['poradi']) ? 'selected' : '';
       echo "<option $sel value='".$p."'>".$p."</option>";
      }
Alphard
Profil
Warning: Cannot modify header information - headers already sent by (output started at /home/free/tym.cz/h/h-design/root/www/hrss/admin/menu.php:137) in /home/free/tym.cz/h/h-design/root/www/hrss/admin/menu.php on line 146

známá chyba, před header() nesmí být žádný výstup
HGD
Profil
no, ale dyk ten header je až potom a je v podmínce, až po odeslání formu, a když mam jenom 1 kategorii, tak to funguje...

....................</td>
 <td>';
 //--Posun řádků--
// posunS -> Id_Kategorie_NewPozice
 echo '<form method="post">
        <input type="hidden" name="id" value="'.$dataS['id'].'">
        <input type="hidden" name="cat" value="'.$dataS['id_cat'].'">
        <select style="width: 100%" name="pozice" onchange="this.form.submit()">';
      $max = mysql_result(mysql_query("SELECT MAX(poradi) FROM ".$pref."_sekce WHERE id_cat='".$dataS['id_cat']."'"), 0);
      for ($p=1;$p<=$max;$p++){
       $sel = ($p==$dataS['poradi']) ? 'selected' : '';
       echo "<option $sel value='".$p."'>".$p."</option>";
      }
 echo '</select></form></td></tr>';

 if(isset($_POST['pozice'])){
  header("location: index.php?admin=edit&posunS=".$_POST['id']."_".$_POST['cat']."_".$_POS T['pozice']."");
 }
echo "</table>";
................
Mastodont
Profil
dyk ten header je až potom a je v podmínce, až po odeslání formu

No a to je právě blbě, nejdřív header, potom jakýkoli jiný výstup (včetně formuláře).
HGD
Profil
no, tak to je hezký, ale jak to mam napsat, když header odesílá data z formuláře a je v podmínce, která kontroluje, jestli byl form odeslán...
bukaj
Profil
HGD
ale jak to mam napsat
Buď přes bufferování výstupu nebo prostě udělat kontrolu a až pak něco vypisovat.
HGD
Profil
a jako action formu nemůžu dát např: index.php?page=menu ?
anode
Profil
a jako action formu nemůžu dát např: index.php?page=menu ?

Ale jistěže je to možné, potom page přijde přes get, ostatní formulářová data přes post. Ale proč to rovnou nedát jako hidden pole formuláře?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: