Здравейте, приятели

webxaoz

Registered
От доста време се мъча да си направя една съвсем проста форма през, която да събирам желана от мен информация. Формата съм направил на прост HTML, с нея проблеми нямам. Но с PHP кода си скъсах нервите.
Кода принципно е верен поне аз така си мисля защото един път работи а друг път не иска. Проблема е че при попълнени всички задължителни полета не иска да направи записа. Моля Ви погледнете кода и ми кажете ако съм збъркъл някъде или съм пропуснал нещо. Защо не иска да направи записа.

Ето PHP кода:

<?
// Add text and Save in log "file.txt"
if (isset($_POST['submit']))
{
$ime=htmlspecialchars($_POST['ime']);
$prezime=htmlspecialchars($_POST['prezime']);
$familiq=htmlspecialchars($_POST['familiq']);
$address=htmlspecialchars($_POST['address']);
$street=htmlspecialchars($_POST['street']);
$number=htmlspecialchars($_POST['number']);
$post=htmlspecialchars($_POST['post']);
$city=htmlspecialchars($_POST['city']);
$country=htmlspecialchars($_POST['country']);
$area=htmlspecialchars($_POST['area']);
$tel=htmlspecialchars($_POST['tel']);
$mobil=htmlspecialchars($_POST['mobil']);
$email=htmlspecialchars($_POST['email']);
$tshirt=htmlspecialchars($_POST['tshirt']);
$tsize=htmlspecialchars($_POST['tsize']);
$date=date("D.F.Y / H:i:s A"); // Vzemame data i chas nd zapisa.


if (empty($ime) || empty($prezime) || empty($familiq) || empty($address) || empty($street) || empty($number) || empty($post) || empty($city) || empty($country) || empty($area) || empty($tel) || empty($mobil) || empty($email) || empty($tshirt)
|| empty($tsize))
{
echo "Всички полета са задължителни. Оставили сте празни полета!"; // Pokazva predopreditelno suobshtenie ako ima prazni poletata.
}
else
{
$file="../Log/log.txt";
if (!file_exists($file))
{
echo "Файла в който ще се записва информацията не съществува!"; // Ako nqma predvaritelno suzdaden prazen fail "log.txt".
}
else
{
$op=fopen($file, "a+");
fwrite($op, "Име: - $ime |
Презиме: - $prezime |
Фамилия: - $familiq |
Адрес: - $address |
Улица: - $street |
Номер: - $number |
Пощенски код: - $post |
Град: - $city |
Държава: - $country |
Област: - $area |
Тел. домашен: - $tel |
Служебен / gsm: - $mobil |
Е-поща: - $email |
№ на тениската която ви харесва: - $tshirt |
Размер на тениската: - $tsize |
Дата на регистрация: - $date

");
fclose($op);
echo "Поръчката ви е регистрирана успешно!. Системата ще ви върне писмо за потвърждение на заявката на посочения от вас валиден e-mail адрес.";
}
}
}
?>
 
файла съм го оставил само log.txt, той ще се създаде автоматично, ако не съществува, ще бъде в същата папка, в която ти се намира тоя файл с php

PHP:
<?
// Add text and Save in log "file.txt"
if (isset($_POST['submit']))
{
	$ime=addslashes($_POST['ime']);
	$prezime=addslashes($_POST['prezime']);
	$familiq=addslashes($_POST['familiq']);
	$address=addslashes($_POST['address']);
	$street=addslashes($_POST['street']);
	$number=addslashes($_POST['number']);
	$post=addslashes($_POST['post']);
	$city=addslashes($_POST['city']);
	$country=addslashes($_POST['country']);
	$area=addslashes($_POST['area']);
	$tel=addslashes($_POST['tel']);
	$mobil=addslashes($_POST['mobil']);
	$email=addslashes($_POST['email']);
	$tshirt=addslashes($_POST['tshirt']);
	$tsize=addslashes($_POST['tsize']);
	$date=date("D.F.Y / H:i:s A"); // Vzemame data i chas nd zapisa.
	
	
	if (
		(!isset($ime) && empty($ime)) || 
		(!isset($prezime) && empty($prezime)) || 
		(!isset($familiq) && empty($familiq)) || 
		(!isset($address) && empty($address)) || 
		(!isset($street) && empty($street)) || 
		(!isset($number) && empty($number)) || 
		(!isset($post) && empty($post)) || 
		(!isset($city) && empty($city)) || 
		(!isset($country) && empty($country)) || 
		(!isset($area) && empty($area)) || 
		(!isset($tel) && empty($tel)) || 
		(!isset($mobil) && empty($mobil)) || 
		(!isset($email) && empty($email)) || 
		(!isset($tshirt) && empty($tshirt)) || 
		(!isset($tsize) && empty($tsize))){
			echo "Всички полета са задължителни. Оставили сте празни полета!"; // Pokazva predopreditelno suobshtenie ako ima prazni poletata.
	}else{
		


		$file="log.txt";
		
		$zapis = "Име: - $ime |
		Презиме: - $prezime |
		Фамилия: - $familiq |
		Адрес: - $address |
		Улица: - $street |
		Номер: - $number |
		Пощенски код: - $post |
		Град: - $city |
		Държава: - $country |
		Област: - $area |
		Тел. домашен: - $tel |
		Служебен / gsm: - $mobil |
		Е-поща: - $email |
		№ на тениската която ви харесва: - $tshirt |
		Размер на тениската: - $tsize |
		Дата на регистрация: - $date
		
		"; 
		
		$fp = fopen($file, 'a+');
		fwrite($fp, $zapis);
		fclose($fp);
		echo "Поръчката ви е регистрирана успешно!. Системата ще ви върне писмо за потвърждение на заявката на посочения от вас валиден e-mail адрес.";
	}
}
?>
 
След, като тествах предложения от тебе вариант на кода се оказа, че:
1. Проверката за оставени (НЕ попълнени) празни полета НЕ работи.
Прави записа при оставени празни полета.
2. Не записва всичко което е въведено. Ето ти пример от лога

Име: - Ivan |
Презиме: - Petrov |
Фамилия: - Georgiev |
Адрес: - gr.Sofia |
Улица: - ul.Budapeshta |
Номер: - 555555555 |
Пощенски код: - 52658 |
Град: - gr.Sofia |
Държава: - Bulgaria |
Област: - Sofia |
Тел. домашен: - 02/5485758 |
Служебен / gsm: - 088/654468465484 |
Е-поща: - georgiev@mail.bg |
№ на тениската която ви харесва: - ? |
Размер на тениската: - ? |
Дата на регистрация: - Tue.August.2011 / 08:11:22
------------------------------------------------------------------------------
AMИме: - Ivan |
Презиме: - Petrov |
Фамилия: - Georgiev |
Адрес: - gr.Sofia |
Улица: - ul.Budapeshta |
Номер: - 555555555 |
Пощенски код: - 52658 |
Град: - gr.Sofia |
Държава: - Bulgaria |
Област: - Sofia |
Тел. домашен: - 02/5485758 |
Служебен / gsm: - 088/654468465484 |
Е-поща: - georgiev@mail.bg |
№ на тениската която ви харесва: - ? |
Размер на тениската: - XXl |
Дата на регистрация: - Tue.August.2011 / 08:11:38 AM
-----------------------------------------------------------------------------------
 
<form action="PHP/savelog.php" method="POST">
<table width="660" border="0">
<tr>
<td width="285">Име: *</td>
<td width="365"><input type="text" name="ime" size="30" /></td>
</tr>
<tr>
<td>Презиме: *</td>
<td><input type="text" name="prezime" size="30" /></td>
</tr>
<tr>
<td>Фамилия: *</td>
<td><input type="text" name="familiq" size="30" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Адрес: *</td>
<td><input type="text" name="address" size="50" /></td>
</tr>
<tr>
<td>Улица: *</td>
<td><input type="text" name="street" size="50" /></td>
</tr>
<tr>
<td>Номер: *</td>
<td><input type="text" name="number" size="5" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Пощенски код: *</td>
<td><input type="text" name="post" size="15" /></td>
</tr>
<tr>
<td>Град: *</td>
<td><input type="text" name="city" size="30" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Държава: *</td>
<td><input type="text" name="country" size="40" /></td>
</tr>
<tr>
<td>Област: *</td>
<td><input type="text" name="area" size="40" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Тел / домашен *</td>
<td><input type="text" name="tel" size="35" /></td>
</tr>
<tr>
<td>Служебен / gsm: *</td>
<td><input type="text" name="mobil" size="35" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Е-поща: *</td>
<td><input type="text" name="email" size="40" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>№ на тениската която ви харесва: *</td>
<td><input type="text" name="number" size="20" /></td>
</tr>

<td></td>
<td></td>

<tr>
<td>Размер на тениската: *</td>
<td><input type="text" name="tsize" size="25" /></td>
</tr>
</table>

<br />
<input type="submit" name="submit" value="Изпрати поръчката"/>
<input name="reset" type="reset" value="Изчисти" />
</form>
 
В самата HTML форма имаш 2 полета които се казват "number" и PHP кода ти не може да разбере какво е $_POST['tshirt'] защото няма такова поле в самата форма, това е причината и поради която не го записва във файла.
 

Back
Горе