Autor Zpráva
archimaper
Profil *
Zdravím všechny šikovný hlavy tu. Hned z počátku bych chtěl poděkovat za tento web. Je super ... ale k věci. Jsem velký začátečník a furt se učím. php by se dalo říct, že skoro vůbec nerozumím, umím ho naimplementovat do html a jen lehce poupravit již hotové věci. Také jsem tak učinil v případě php maileru na webu www.archiamo.eu zde jsou kódy formuláře a maileru:
<?php

$max_att  = 4000000;
$to = 'mujmail@seznam.cz';
$charset = 'windows-1250';
if(!isset($_POST['submitter'])) exit('<h1>Error 1</h1>');
$subject   = 'Priloha z webu';
$from      = $_POST['Odesilatel'];

$message .= 'Odesláno ze stránky: ' . $_SERVER['HTTP_REFERER'] . "\r\n";
while (list($name, $value) = each($_POST)) {
	if ($name == 'MAX_FILE_SIZE' || $name == 'charset' || $name == 'submitter') {
	}
	elseif (gettype($value) == 'array') { // TAG SELECT MULTIPLE
		$cnt = count($value);
		for ($i=0; $i < $cnt; $i++) {
			$message .= "$name: $value[$i]r\\n";
		}
	}
	else { // OSTATNÍ ELEMENTY
		$message .= "$name $value\r\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;
$message .= "' /> VELIKOST PŘÍLOHY: $file_size bytes\r\n\n";
if($att_present) {
	if($file_size > $max_att) {
		$valid = 0;
		$err_msg .= "<p>Příloha je větąí neľli povolených $max_att bajtů";
	}
	if (
       $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/x-zip-compressed' // ZIP
	) { 
		$valid = 0;
		$err_msg .= "Skript nepodporuje tento typ souboru $file_type";
	}
	$dots = substr_count($file_name,'.');
	if($dots != 1) {
		$valid = 0;
		$err_msg .= "Příloha má nepovolený počet extenzí $dots";
	}
	$extension = strtolower(strstr($file_name,'.'));
	if (
        $extension != ".gif"
	&&  $extension != ".jpg"
	&&  $extension != ".jpeg"
	&&  $extension != ".png"
	&&  $extension != ".ico"
	&&  $extension != ".zip"
	) {
		$valid = 0;
		$err_msg .= "Skript nepodporuje extenzi $extension";
	}
	$p = strlen($extension);
	if($p != 4 && $p != 5) {
		$valid = 0;
		$err_msg .= "Příloha má neplatnou délku extenze $p";
	}
	if($valid == 1){
		$fileatt = $_FILES['fileatt']['tmp_name'];
		$headers = "From: $from";
		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";
		  $headers .= "\nMIME-Version: 1.0\n" .
		              "Content-Type: multipart/mixed;\n" .
		              " boundary=\"{$mime_boundary}\"";
		  $message = "This is a multi-part message in MIME format.\n\n" .
		             "--{$mime_boundary}\n" .
		             "Content-Type: text/plain; charset=$charset\n" .
		             "Content-Transfer-Encoding: 7bit\n\n" .
		             $message . "\n\n";
		  $data = chunk_split(base64_encode($data));
		  $message .= "--{$mime_boundary}\n" .
		              "Content-Type: {$file_type};\n" .
		              " name=\"{$file_name}\"\n" .
		              "Content-Transfer-Encoding: base64\n\n" .
		              $data . "\n\n" .
		              "--{$mime_boundary}--\n";
		}
		$message = StripSlashes($message);
		$sent = @mail($to, $subject, $message, $headers);
		if($sent) echo "Formulář byl úspěąně odeslán";
		else      echo "Formulář se nezdařilo odeslat";
	}
	if($valid!==1) {
		echo "<span>Chyba...</span>$err_msg";
		echo "<span>Klikněte na Zpět a zkuste znovu";
	}
}
else { // není příloha
	$message = StripSlashes($message);
	$sent = @mail($to, $subject, $message, $headers);
		if($sent) echo "<span>Formulář byl úspěąně odeslán, děkuji za Váą zájem.</span> <br> <span> <a href=vlozitstavbu.html style= color:#393939 > vloľit daląí stavbu </a></span> ";
		else      echo "Formulář se nezdařilo odeslat";
}
?>

<form enctype="multipart/form-data" method="post" action="mailer.php">

<input type="hidden" value="stavby@archimap.eu" name="Odesilatel" type="text" style="width:150px;">
<div style="width:650px; height:20px; margin: 0px auto;"></div>
<!-- name -->
<div style="width:650px; margin: 0px auto;">
<div id="aktual" style="height:50px;">
<div style="width: 315px; float:right;">
<div style="width: 295px; margin: 0px auto; height:20px;">
<div id="h_aktual">Váš e-mail</div>
<div id="date">
<a href="proc.html" style="color:#979797; text-decoration:none;" onclick="window.open('proc.html', '_blank', 'width=250,height=500'); return false">???</a>
</div>
</div>
<div style="width:295px; margin: 0px auto;">
<input id="input_t" name="mail uživatele" type="text" style="width:290px;">
</div>
</div>
<div style="width: 315px; float:left;">
<div style="width: 295px; margin: 0px auto; height:20px;">
<div id="h_aktual">NÁZEV STAVBY</div>
</div>
<div style="width:295px; margin: 0px auto;">
<input id="input_t" name="<marker name='" type="text" style="width:290px;">
</div>
</div>
</div>
</div>
<div style="width:650px; height:15px; margin: 0px auto;"></div>
<div style="width:650px; height:10px; margin: 0px auto;">
<!-- GPS -->
<div style="width:315px; float:left;">
<div id="aktual" style="width:315px; height:65px;">
<div style="width: 295px; margin: 0px auto; height:20px;">
<div id="h_aktual">GPS souřadnice</div>
<div id="date">
<a href="gps.html" style="color:#979797;" onclick="window.open('gps.html', '_blank', 'width=290,height=630'); return false">help?</a>
</div>
</div>
<div style="width:295px; margin: 0px auto;">
<div style="width:295px; margin: 0px auto;">
<div style="float:left;">
<span id="text_clas">Lat</span><br>
<input id="input_t" name="' lat='" type="text" style="width:135px;">
</div>
<div style="position:relative; left:16px; ">
<span id="text_clas">Lng</span><br>
<input id="input_t" name="' lng='" type="text" style="width:135px;">
</div>
</div>
</div>
</div>
</div>
<!-- WWW -->
<div style="width:315px; float:right;">
<div id="aktual" style="width:315px; height:65px;">
<div style="width: 295px; margin: 0px auto; height:20px;">
<div id="h_aktual">Odkaz na podrobné informace</div>
</div>
<div style="width:295px; margin: 0px auto;">
<div style="float:left;">
<span id="text_clas">www adresa ve tvaru http://www.archimap.eu</span><br>;
<input id="input_t" name="' url='" type="text" value="http://" style="width:290px;">
</div>
</div>
</di
archimaper
Profil *
mám překlep v adrese je to www.archimap.eu
archimaper
Profil *
Nikdo neví, nebo sem to blbě zformuloval?
tiso
Profil
archimaper: pochválil si sa tu nejakým kódom, na nič si sa nepýtal, tak neviem, čo máme vedieť?
archimaper
Profil *
aj sorry, nějak sem si nevšiml, že mi vypadla část s dotazama, co byla vložená až za kódem. Pokusím se to zformulovat ještě jednou. Jde mi o následující: formulář mi přijde na mail asi v této podobě:

Odesláno ze stránky: http://www.archimap.eu/vlozitstavbu.html
Odesilatel: stavby@archimap.eu
<marker_name=': Kostel svaté Kateřiny
'_Lat=': 49.590329
'_Lang=': 17.25405
'_url=': http://cs.wikipedia.org/wiki/Kostel_svat%C3%A9_Kate%C5%99iny_(Olomouc)
'_autor=':
'_spoluautor=':
'_adresa=': Olomouc, Kateřinská
'_state=': Česká republika
'_groupIDs=': 1
,: _
,_: 12
'_rok=': 1360 - 1363
' /> VELIKOST PŘÍLOHY: 53204 bytes

No a jde mi o to:
1. jsetli se dá někde nastavit, aby se formulář vypsal bez dvojteček (což je oddělení jména imputu a zadané hodnoty uživatelem).
2. jestli by se jména imputu mohly vypsat s klasickýma mezerama (tak jak josu zadaný v formuláři), mezery se mi totiž nahrazují spodníma podtržítkama
3. aby se vypsaly všechny hodnoty do jednoho řádku, teď se to odřádkuje za každým vypsaným jménem imputu s vloženou hodnotou.

tisco: omlouvám se a zároveň dík za upozornění, úplně mi to uniklo
archimaper
Profil *
dívám se, že ani ten kód formuláře není vložený celý, nějak sem to vkládání dotazu zmastil. Kdyby to bylo potřba vložím ho znovu, ale myslím že pro moje dotazy týkající se php maileru by to nemělo vadit.
Darker
Profil
archimaper:
1. a 2. str_replace (popř. preg_replace)
3. trim.
archimaper
Profil *
díky, odřádkování je vyřešené. Dvojtečku jsem našel přímo v maileru tak jsem ji oddělal, ale nemohu se zbavit spodního podtřžítka v názvu imputů. Ono to podtřítko tam totiž v html není, ale php ji vypíše zkoušel jsem toto:
$_POST=str_replace('_',' ',$_POST);
ale funguje to jenom na hodnoty imputů, ne na name. preg_replace se mi nepodařilo zprovoznit, asi dělám někde chybu. Věděl by někdo prosím

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0