Неможе да запише за кога е съобщението

sianbg_s

Registered
Здравейте.
Това ми е кода, но когато избера за кого да е съобщението и дам изпрати ми дава грешка
Код:
<?php

echo '

<form action="" method="post">
Пиши на <select name="for">
<option value="sianbg">sianbg</option>
<option value="He3aBuCuM">He3aBuCuM</option>
</select> <br>
Заглавие: <br><input type="text" name="title" size="50"/>
<br />
Вашия Е-Майл: <br><input type="text" name="email" size="50"/>
<br />
Съобщение: <br><textarea name="message" cols="50" rows="10"></textarea> 
<br />
<input type="submit" name="submit" value="Изпрати" />
</form>';
if (isset($_POST["submit"])) {
$conn = mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");
mysql_select_db($dbn, $conn)or die(mysql_error());
if(!empty($_POST["for"])) $for = htmlspecialchars($_POST["for"]);
else $errMsg = "Не си избрал за кого да е съобщението!<br />";
if (!empty($_POST["title"])) $title = htmlspecialchars($_POST["title"]);
else $errMsg = "Не сте въвели заглавие!<br />";
if (!empty($_POST["email"])) $email = htmlspecialchars($_POST["email"]);
else $errMsg = "Не сте въвели Е-майл!<br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "Не сте въвели съобщение!<br />";
if (empty($errMsg)) {
$for = trim(strip_tags(addslashes($_POST['for']))); 
$insert = mysql_query("INSERT INTO contact(for, title, email, message) VALUES('$for', '$title', '$email', '$message')")or die(mysql_error());
echo 'Съобщението е изпратено успешно! ';
} else echo $errMsg;
mysql_close();
} 
?>

А това е и грешката
Код:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for, title, email, message) VALUES('sianbg', 'Zaglavie', 'Moqemail@abv.bg', 'Sao' at line 1
 
Заповядай :



<?php

echo '

<form action="" method="post">
Пиши на <select name="for">
<option value="sianbg">sianbg</option>
<option value="He3aBuCuM">He3aBuCuM</option>
</select> <br>
Заглавие: <br><input type="text" name="title" size="50"/>
<br />
Вашия Е-Майл: <br><input type="text" name="email" size="50"/>
<br />
Съобщение: <br><textarea name="message" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="submit" value="Изпрати" />
</form>';
if (isset($_POST["submit"])) {
$conn = mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");
mysql_select_db($dbn, $conn)or die(mysql_error());
if(!empty($_POST["for"])) $for = htmlspecialchars($_POST["for"]);
else $errMsg = "Не си избрал за кого да е съобщението!<br />";
if (!empty($_POST["title"])) $title = htmlspecialchars($_POST["title"]);
else $errMsg = "Не сте въвели заглавие!<br />";
if (!empty($_POST["email"])) $email = htmlspecialchars($_POST["email"]);
else $errMsg = "Не сте въвели Е-майл!<br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "Не сте въвели съобщение!<br />";
if (empty($errMsg)) {
$for = trim(strip_tags(addslashes($_POST['for'])));
$insert = mysql_query("INSERT INTO contact ('for', 'title', 'email', 'message') VALUES('$for', '$title', '$email', '$message')") or die(mysql_error());
echo 'Съобщението е изпратено успешно! ';
}
else
{
echo $errMsg;
mysql_close();
}
?>


Мисля че ще стане :)
 
Малко го преработих , но пробвай и кажи дали става :)



<?php
echo '
<form action="" method="post">
Пиши на <select name="for">
<option value="sianbg">sianbg</option>
<option value="He3aBuCuM">He3aBuCuM</option>
</select> <br>
Заглавие: <br><input type="text" name="title" size="50"/>
<br />
Вашия Е-Майл: <br><input type="text" name="email" size="50"/>
<br />
Съобщение: <br><textarea name="message" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="submit" value="Изпрати" />
</form>';
if (isset($_POST['submit']))
{
mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");
mysql_select_db($dbn)or die(mysql_error());
if (empty($_POST["for"])))
{
echo "Не си избрал за кого да е съобщението!";
}
elseif (empty ($_POST["title"])
{
echo "Не сте въвели заглавие!";
}
elseif (empty ($_POST["message"])
{
echo "Не сте въвели съобщение!";
}
else
{
$for = trim(strip_tags(addslashes($_POST["for"])));
$title = htmlspecialchars($_POST["title"]);
$message = htmlspecialchars($_POST["message"]);
$email = htmlspecialchars($_POST["email"]);
mysql_query("INSERT INTO contact ('for', 'title', 'email', 'message') VALUES('$for', '$title', '$email', '$message')") or die(mysql_error());
echo 'Съобщението е изпратено успешно! ';
}
?>

 


<?php
echo '
<form action="" method="post">
Пиши на <select name="for">
<option>sianbg</option>
<option>He3aBuCuM</option>
</select> <br>
Заглавие: <br><input type="text" name="title" size="50"/>
<br />
Вашия Е-Майл: <br><input type="text" name="email" size="50"/>
<br />
Съобщение: <br><textarea name="message" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="submit" value="Изпрати" />
</form>';
if (isset($_POST['submit']))
{
mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");
mysql_select_db($dbn)or die(mysql_error());
if (empty ($_POST["title"])
{
echo "Не сте въвели заглавие!";
}
elseif (empty ($_POST["message"])
{
echo "Не сте въвели съобщение!";
}
else
{
$for = trim(strip_tags(addslashes($_POST["for"])));
$title = htmlspecialchars($_POST["title"]);
$message = htmlspecialchars($_POST["message"]);
$email = htmlspecialchars($_POST["email"]);
mysql_query("INSERT INTO contact ('for', 'title', 'email', 'message') VALUES('$for', '$title', '$email', '$message')") or die(mysql_error());
echo 'Съобщението е изпратено успешно! ';
}
?>


Забелязах че няма как да НЕБЪДЕ изпран получате , но го забелязах чак сега..
а виж сега.
махнах проверката за неизбран получател , защото те като са 2ма няма как да не бъде избран нито 1 :)
я виж сега дали става ;]
 
Тук даде грешка
if (empty ($_POST["title"])
{
echo "Не сте въвели заглавие!";
}
elseif (empty ($_POST["message"])
{
echo "Не сте въвели съобщение!";
}
 


<?php
echo '
<form action="" method="post">
Пиши на <select name="for">
<option>sianbg</option>
<option>He3aBuCuM</option>
</select> <br>
Заглавие: <br><input type="text" name="title" size="50"/>
<br />
Вашия Е-Майл: <br><input type="text" name="email" size="50"/>
<br />
Съобщение: <br><textarea name="message" cols="50" rows="10"></textarea>
<br />
<input type="submit" name="submit" value="Изпрати" />
</form>';
if (isset($_POST['submit']))
{
mysql_connect($host, $user, $pass) or die("Сайтът не може да се свърже към базата данни1");
mysql_select_db($dbn)or die(mysql_error());
$for = trim(strip_tags(addslashes($_POST["for"])));
$title = htmlspecialchars($_POST["title"]);
$message = htmlspecialchars($_POST["message"]);
$email = htmlspecialchars($_POST["email"]);
if (empty($title))
{
echo "Не сте въвели заглавие!";
}
elseif (empty($message))
{
echo "Не сте въвели съобщение!";
}
else
{
mysql_query("INSERT INTO contact ('for', 'title', 'email', 'message') VALUES('$for', '$title', '$email', '$message')") or die(mysql_error());
echo 'Съобщението е изпратено успешно! ';
}
}
?>


Ахх малко съм разсеян тази вечер :) я виж вече трябва да стане. п.с. бях изпуснал скобите на няколко места ама може и от кавичктие да е било. виж сега :)
 
Всъщност грешката ти не е в синтаксиса , а просто ,че имаш поле , на което името е запазена дума за MySQL , а именно за колоната for.
За да избегнеш грешката или преименувай колоната , или обгради полетата с апострофи `for`.
 
ако го направя $_POST[for]
да приема го за функцията , но иначе не би трябвало да го приема за тази функция :)
 
Replace каза:
Всъщност грешката ти не е в синтаксиса , а просто ,че имаш поле , на което името е запазена дума за MySQL , а именно за колоната for.
За да избегнеш грешката или преименувай колоната , или обгради полетата с апострофи `for`.
Места стана :)
 

Горе