Autor Zpráva
RobertH
Profil
Zdravim,

nevim jak zapsat do kodu aby mi probehla kontrola nekterych poli ve formulari pred odeslanim a popripadne neodeslat.
Hledal sem tady po diskusi, ale nenasel sem nic co by mi pomohlo nebo sem hledal spatne...

Nize zasilam kod pro predstavu:

<?php 


$max_att = 500000000000;

$emailadr = 'rhulek@volny.cz';


$charset = 'windows-1250';
if(!isset($_POST['submitter'])) exit('<h1>Error 1</h1>');
$hlavicka .= "Content-type: text/html; charset=windows-1250 \r\n";
$emailadr = "rhulek@volny.cz"; //Vaše e-mailová adresa
$predmet = "Objednávka razítek (WEB)"; //Předmět zprávy
$odKoho = $_POST['firm_email']; //E-mail ze kterého zpráva přišla

$line_1=$_POST['line_1'];
$line_2=$_POST['line_2'];
$line_3=$_POST['line_3'];
$line_4=$_POST['line_4'];
$line_5=$_POST['line_5'];
$line_6=$_POST['line_6'];

$name=$_POST['firm_name'];
$email=$_POST['firm_email'];
$phone=$_POST['firm_phone'];
$ic=$_POST['firm_ic'];
$dic=$_POST['firm_dic'];
$stamp_type=$_POST['stamp_type'];
$stamp_color=$_POST['stamp_color'];
$stamp_count=$_POST['stamp_count'];
$addr_invoice=$_POST['addr_invoice'];
$addr_correspond=$_POST['addr_correspond'];
$pay_type=$_POST['pay_type'];
$note=$_POST['note'];
$sum=$_POST['sum'];


$zprava .= "<html>\n";
$zprava .= "<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#666666;\">\n";

$zprava .= "<table width=\"500\" height=\"159\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >";
$zprava .="<tr>";
$zprava .="<td height=\"66\" colspan=\"4\" bgcolor=\"#CCCCCC\"></td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td width=\"1%\"></td>";
$zprava .="<td colspan=\"3\">&nbsp;</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td width=\"200\"><b>Text na razítko</b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_1</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b></b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_2</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b></b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_3</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b></b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_4</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b></b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_5</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td ><b></b></td>";
$zprava .="<td align=\"left\" >:</td>";
$zprava .="<td>$line_6</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td width=\"50\"><b></b></td>";
$zprava .="<td align=\"left\" ></td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td bgcolor=\"#e6e6e6\">&nbsp;</td>";
$zprava .="<td bgcolor=\"#e6e6e6\"><b>Název firmy (osoby)</b></td>";
$zprava .="<td bgcolor=\"#e6e6e6\">:</td>";
$zprava .="<td bgcolor=\"#e6e6e6\">$name</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td bgcolor=\"#e6e6e6\">&nbsp;</td>";
$zprava .="<td bgcolor=\"#e6e6e6\"><b>E-mail</b></td>";
$zprava .="<td bgcolor=\"#e6e6e6\">:</td>";
$zprava .="<td bgcolor=\"#e6e6e6\">$email</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td bgcolor=\"#e6e6e6\">&nbsp;</td>";
$zprava .="<td bgcolor=\"#e6e6e6\"><b>Telefon</b></td>";
$zprava .="<td bgcolor=\"#e6e6e6\">:</td>";
$zprava .="<td bgcolor=\"#e6e6e6\">$phone</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td bgcolor=\"#e6e6e6\">&nbsp;</td>";
$zprava .="<td bgcolor=\"#e6e6e6\"><b>IČ</b></td>";
$zprava .="<td bgcolor=\"#e6e6e6\">:</td>";
$zprava .="<td bgcolor=\"#e6e6e6\">$ic</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td bgcolor=\"#e6e6e6\">&nbsp;</td>";
$zprava .="<td bgcolor=\"#e6e6e6\"><b>DIČ</b></td>";
$zprava .="<td bgcolor=\"#e6e6e6\">:</td>";
$zprava .="<td bgcolor=\"#e6e6e6\">$dic</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Typ razítka</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$stamp_type</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Barva tisku razítka</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$stamp_color</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Počet ks</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$stamp_count</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Fakturační adresa</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$addr_invoice</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Korespondenční adresa</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$addr_correspond</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Způsob platby</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$pay_type</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Poznámka</b></td>";
$zprava .=
RobertH
Profil
... zbytek kodu:

$zprava .="<td>:</td>";
$zprava .="<td>$note</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td>&nbsp;</td>";
$zprava .="<td><b>Celková cena</b></td>";
$zprava .="<td>:</td>";
$zprava .="<td>$sum</td>";
$zprava .="</tr>";
$zprava .="<tr>";
$zprava .="<td height=\"21\" colspan=\"4\" bgcolor=\"#CCCCCC\"></td>";
$zprava .="</tr>";
$zprava .="</table>";
$zprava .= "</body>\n";
$zprava .= "</html>\n";



$valid    = 1; 
$file_size = $_FILES['fileatt']['size']; 
$file_name = $_FILES['fileatt']['name']; 
$file_type = $_FILES['fileatt']['type']; 
if ($file_size > 0) $att_present = true; 

if($att_present) { 

    if($file_size > $max_att) { 
        $valid = 0; 
        $err_msg .= "<p>Příloha je větší než povolených $max_att bajtĹŻ"; 
    } 

    if ( 
        $file_type != 'text/plain'         // TXT 
    && $file_type != 'text/html'          // HTM 
    && $file_type != 'text/html'          // HTML 
    && $file_type != 'image/gif'          // GIF 
    && $file_type != 'image/jpeg'         // JPG JPEG 
    && $file_type != 'image/pjpeg'        // JPG JPEG 
    && $file_type != 'image/png'          // PNG 
    && $file_type != 'image/x-icon'       // ICO 
    && $file_type != 'application/msword' // DOC 
    && $file_type != 'application/excel'  // XLS 
    && $file_type != 'application/rtf'    // RTF 
    && $file_type != 'application/octet-stream' // DOC 
    && $file_type != 'application/x-zip-compressed' // ZIP 
    && $file_type != 'application/zip' // ZIP 
    && $file_type != 'application/pdf' // PDF 
    && $file_type != 'application/eps' // EPS
    && $file_type != 'application/ai' // AI
    && $file_type != 'application/cdr' // CDR
    && $file_type != 'application/postscript' // PS
    ) { // PDF 
        $valid = 0; 
        $err_msg .= "<p>Skript nepodporuje tento typ souboru $file_type"; 
    } 

    $dots = substr_count($file_name,'.'); 
    if($dots != 1) { 
        $valid = 0; 
        $err_msg .= "<p>Skript nepodporuje tento typ souboru. $dots"; 
    } 

    $extension = strtolower(strstr($file_name,'.')); 
    if ( 
    $extension != ".txt" 
    &&  $extension != ".htm" 
    &&  $extension != ".html" 
    &&  $extension != ".gif" 
    &&  $extension != ".jpg" 
    &&  $extension != ".jpeg" 
    &&  $extension != ".png" 
    &&  $extension != ".ico" 
    &&  $extension != ".doc" 
    &&  $extension != ".xls" 
    &&  $extension != ".rtf" 
    &&  $extension != ".zip" 
    &&  $extension != ".pdf" 
    &&  $extension != ".eps" 
    &&  $extension != ".ai" 
    &&  $extension != ".cdr" 
    ) { 
        $valid = 0; 
        $err_msg .= "<p>Skript nepodporuje extenzi $extension"; 
    } 
     
    $p = strlen($extension); 
    if($p != 4 && $p != 5) { 
        $valid = 0; 
        $err_msg .= "<p>Příloha má příliš dlouhý název. $p"; 
    } 
     
    if($valid == 1){ 
        $fileatt = $_FILES['fileatt']['tmp_name']; 
        $hlavicka = "From: $odKoho"; 
        if(is_uploaded_file($fileatt)) { 
          $file = fopen($fileatt,'rb'); 
          $data = fread($file,filesize($fileatt)); 
          fclose($file); 
          $semi_rand = md5(time()); 
          $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
          $hlavicka .= "\nMIME-Version: 1.0\n" . 
                      "Content-Type: multipart/mixed;\n" . 
                      " boundary=\"{$mime_boundary}\""; 
          $zprava = "This is a multi-part message in MIME format.\n\n" . 
                     "--{$mime_boundary}\n" . 
                     "Content-Type: text/html; charset=$chrset\n" . 
                     "Content-Transfer-Encoding: 7bit\n\n" . 
                     $zprava . "\n\n"; 
          $data = chunk_split(base64_encode($data)); 
          $zprava .= "--{$mime_boundary}\n" . 
                      "Content-Type: {$file_type};\n" . 
                      " name=\"{$file_name}\"\n" . 
                      "Content-Transfer-Encoding: base64\n\n" . 
                      $data . "\n\n" . 
                      "--{$mime_boundary}--\n"; 
        } 
        $zprava = StripSlashes($zprava); 
        $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
        if($sent) header("Location: razitka_objednavka_potvrzeni.html");
        else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
    } 
    if($valid!==1) { 
        echo "<h2>Chyba...</h2>$err_msg"; 
        echo "<p>Klikn?te na zp?t a zkuste znovu"; 
    } 
} 
else { //
    $zprava = StripSlashes($zprava); 
    $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
        if($sent) header("Location: razitka_objednavka_potvrzeni.html");
        else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
} 
?> 
</body> 
</html> 
Taps
Profil
RobertH
ten kod se mi nechce celý procházet tak ti poradím
kontrolu zda je pole prázdné

if($_POST['nazev']==""){
echo "hodnota je prázdná"
}

nebo

if(empty($_POST['nazev'])) echo "polozka je prázdná";
RobertH
Profil
diky za odpoved, jen jestli jeste muzu kam mam umistit ten kod? kdyz sem to nekam dal, tak se mi email normalne odesle i s nevyplnenym polem.

pouzil sem tu druhou variantu:
if(empty($_POST['firm_email'])) echo "polozka je prázdná";
pEeLL
Profil
proste tam kde mas
$name=$_POST['firm_name'];

pridas podminku
if (isset($_POST['firm_name']) && $_POST['firm_name'] != "")
$name=$_POST['firm_name'];
else
$stop = 1;


a pak pred odeslanim na mail zkontrolujes $stop
if ($stop != 1) 
 mail()
else
 asi zobrazit formular a rict co je potreba dolnit/zmenit
RobertH
Profil
podminku jsem pridal, ale mam problem s tim zkontrolovam stop pred odeslanim

davam to sem:
        } 
        if ($stop != 1); 
		 mail();
		else  echo "asi zobrazit formular a rict co je potreba dolnit/zmenit";
        $zprava = StripSlashes($zprava); 
        $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
        if($sent) header("Location: razitka_objednavka_potvrzeni.html");
        else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
    } 
    if($valid!==1) { 
        echo "<h2>Chyba...</h2>$err_msg"; 
        echo "<p>Klikn?te na zp?t a zkuste znovu"; 
    } 
} 
else { // není příloha 
    $zprava = StripSlashes($zprava); 
    $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
        if($sent) header("Location: razitka_objednavka_potvrzeni.html");
        else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
} 
?> 
</body> 
</html> 


ale pise mi to chybu: Parse error: syntax error, unexpected T_ELSE in /web/htdocs/rhdesigncz/www/test/mailer.php on line 287

Nevis co s tim? V PHP jsem zacatecnik a kod sem sestavoval z ruznych tutorialu, tak proto ty "priblbly" otazky.
pEeLL
Profil
if ($stop != 1){
     $zprava = StripSlashes($zprava); 
     $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
     if($sent) header("Location: razitka_objednavka_potvrzeni.html");
     else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
}
else {
   echo "asi zobrazit formular a rict co je potreba dolnit/zmenit";
}


budes se muset naucit alespon ty if/else
RobertH
Profil
Tak uz sem z toho jelen, ted mi to hazi chybu: Parse error: syntax error, unexpected $end in /web/htdocs/rhdesigncz/www/test/mailer.php on line 305 Coz je uplne posledni radek "?>"

        } 
		if ($stop != 1){
		     $zprava = StripSlashes($zprava); 
		     $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
 		    if($sent) header("Location: razitka_objednavka_potvrzeni.html");
 		    else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
		}
		else {
		   echo "asi zobrazit formular a rict co je potreba dolnit/zmenit";
} 
    if($valid!==1) { 
        echo "<h2>Chyba...</h2>$err_msg"; 
        echo "<p>Klikn?te na zp?t a zkuste znovu"; 
    } 
} 
else { // není příloha 
    $zprava = StripSlashes($zprava); 
    $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); 
        if($sent) header("Location: razitka_objednavka_potvrzeni.html");
        else      echo "<h1>Formulář se nezdařilo odeslat</h1>"; 
} 
?> 
pEeLL
Profil
nekde jsi zapomnel asi ukoncit if/ else zkontroluj si {}
RobertH
Profil
Super, diky moc! Uz to vsechno beha jak ma. Je videt, ze se mam jeste hodne co ucit.
Jeste jednou diky...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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