Autor Zpráva
Trinity
Profil
Ahoj,
mám dva soubory pro odeslání formuláře, které fungují bez problému na register_globals on, ale pokud to chci rozchodit na off, tak to nefunguje. Vím, že je zapotřebí doplnit k proměnným parametr $_POST, ale nevím kam přesně. Poradíte mi?

form.php je vlastně jen formulář pro vyplnění, ale domnívám se, že tam se nic měnit nemusí
send.php vypadá takto:

<?
if ($odeslat=='Odeslat') {
 if ($kurz=='') {
  echo 'Prosím zvolte si termín kurzu.</body></html>';
  exit;
 }
 elseif ($kurz=='- - Základní kurzy - -') {
  echo 'Prosím zvolte si termín kurzu.</body></html>';
  exit;
 }
 elseif ($kurz=='- - Prolongační kurzy - -') {
  echo 'Prosím zvolte si termín kurzu.</body></html>';
  exit;
 } 
 $zprava.="Vybraný kurz: ".$kurz."\n\n";
 for ($i=0;$i<16;$i++) {
  if ($jmeno[$i]<>'') {
   if ($narozeni[$i]=='') {
    echo 'Zadejte prosím všechny údaje u účastníků.';
    exit;
   }
   elseif ($druh[$i]=='') {
    echo 'Zadejte prosím všechny údaje u účastníků.';
    exit;
   }
   // zkráceno, pro dotaz není podstatné
 elseif ($telefon=='') {
  echo 'Zadejte prosím Vaše telefonní číslo.';
  exit;
 }
 elseif ($vedouci=='') {
  echo 'Zadejte prosím jméno odpovědné osoby.';
  exit;
 }
 elseif ($dalsi=='') {
  echo 'Zadejte prosím jméno kontaktní osoby.';
  exit;
 }
 echo '<center><h1>1</h1><h3>2</h3><hr><h3>3</h3></center><hr width="630"></center><table border="0" cellspacing="0" cellpadding="0" align="center" width="630"><tr>';
 echo "<td>Vybraný kurz: ".$kurz."<br><br><br></tr>";
 echo '<tr><td><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr bgcolor="#E0E0E0"><th>Jméno a příjmení:<th>Datum narození<th>DP<th>ZP<th>Ub</tr>';
 for ($i=0;$i<16;$i++) {
  if ($jmeno[$i]<>'') echo '<tr><td>'.$jmeno[$i].'<td>'.$narozeni[$i].'<td>'.$druh[$i].'<td>'.$prukaz[$i].'<td>'.$ubytovani[$i].'</tr>';
 }
 echo '</table><br><br></tr>';
 echo '<tr><td>Název organizace: '.$org.'<br><br>';
 echo 'Ulice a č.p.: '.$ulice.'<br>';
 echo 'Město: '.$mesto.'<br>';
 echo 'PSČ: '.$psc.'<br><br>';
 echo 'IČO: '.$ico.'<br>';
 echo 'Bankovní spojení: '.$banka.'<br><br>';
 echo 'Fakturační údaje: '.$faktura.'<br><br>';
 echo 'Chcete nám něco sdělit?: '.$jine.'<br><br>';
 echo 'Telefon, fax: '.$telefon.'<br>';
 echo 'E-mail: '.$mail.'<br><br>';
 echo 'Vedoucí organizace: '.$vedouci.'<br>';
 echo 'Jméno další oprávněné osoby: '.$dalsi.'<br><br><hr width="630"><br><br></tr>';
 echo '<tr><td>V ............................ dne .........................';
 echo '<p align="right">Razítko a podpis ..........................................';
 echo '</tr></table>';
 exit;
}
?>
okolojdouci
Profil *
Všechno, s čím pracuješ jako s $odeslat apod, přepiš na $_POST["odeslat"].
petr 6
Profil
Nebo jednodušeji na začátku zapsat
$odeslat=$_POST["odeslat"];

atd.

(abys to nemusel přepisovat všechno)
Stano
Profil
alebo
extract($_POST);
to automaticky vytvorí premenné
Ján K.
Profil *
Stano:
Nie je
extract($_POST);
tak trocha bezpečnostné riziko? Nejaký zlomyseľný užívateľ by nám mohol prepísať iné dôležité premenné.
Trinity
Profil
Ahoj, nemohu ten formulář na register_globals on rozchodit. Změny mi nefungují.
Můžete mi prosím ukázat na výše uvedeném formuláři, kde mám ty změny konkrétně udělat?
Nevím přesně kam mám $_POST["odeslat"]. vložit ať to dám kamkoli tak mi formulář nefunguje.
Děkuji za rady.
panther
Profil
Trinity:
if (isset($_POST['odeslat'])) {
    if (empty($_POST['kurz']) {
        echo 'Prosím zvolte si termín kurzu.</body></html>';
        exit;
    }
    ...
    echo "<td>Vybraný kurz: ".$_POST['kurz']."<br><br><br></tr>";
    ...
}

Proměnné v POSTu jsou u všeho, co přišlo z 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:

0