Проблем със скрипт

ishkitiev

Registered
Здравейте значи правя един сайт със логин и сесии, след това реших да направя и лични съобщения. Значи тук ми дойдоха 2 грешки:
1-во когато от листа с потребителите кликна на някой от тях за да пратя писмо искам да ми извежда долу, че се праща съобщение до този потребител, но проблема е, че не ми го извежда.
2-ро искам да направя ми вкара името от сесията в дб като изпращач и маркираното името като получател.

Така ето какви полета имам в дб в таблица messages:
id subject text from to

А сега и най-важното скриптовете:
1-во скрипт за пращане:
Код:
<?php
include('db.php');
$table_name="users";
$username=$_GET['username'];
$sql="SELECT * FROM $table_name WHERE username";
$result=mysql_query($sql);
while ($rows=mysql_fetch_array($result)) {
	echo "Изпращане на съобщение до $rows[username]";
}
?>
<form method="POST" action="accept_send.php">
Заглавие: <input name="subject" type="text" id="subject"><br>
Текст:<textarea name="text" rows="4" cols="50"></textarea><br>
Потребител: <? echo $rows['username']; ?>
<input name="submit" type="submit" value="Send"> | <input type="reset" name="reset">
</form>
А сега и кода за обработка:
Код:
<?php
session_start();
if (isset($_SESSION["myusername"])) {
	if ($_POST['submit']) {
	include('db.php');
	$table_name="messages";
	$subject=$_POST["subject"];
	$text=$_POST["text"];
	$myusername=$_POST["from"];
	$username=$_POST["to"];
	$sql="INSERT INTO $table_name(subject, text, from, to)VALUES('$subject','$text','$myusername','$username')";
	$result=mysql_query($sql);
	if ($result) {
		echo "Събщението е успешно изпратено до $username!";
		echo "<a href='send.php'>Назад</a>";
	}
	else {
		echo "ERROR";
	}
	}
}
?>

Това е ще се радвам, ако някой може да ми помогне! Предварително благодаря на всички!
 
<?php
include('db.php');
$table_name="users";
$username=$_GET['username'];
$sql="SELECT * FROM $table_name WHERE username='$_GET[username]'";
$result=mysql_query($sql);
while ($rows=mysql_fetch_array($result)) {
echo "Изпращане на съобщение до $rows[username]";
}
?>
<form method="POST" action="accept_send.php">
Заглавие: <input name="subject" type="text" id="subject"><br>
Текст:<textarea name="text" rows="4" cols="50"></textarea><br>
Потребител: <? echo $rows['username']; ?>
<input name="submit" type="submit" value="Send"> | <input type="reset" name="reset">
</form>


<?php
session_start();
if (isset($_SESSION["myusername"])) {
if ($_POST['submit']) {
include('db.php');
$table_name="messages";
$subject=$_POST["subject"];
$text=$_POST["text"];
$myusername=$_SESSION["myusername"];
$username=$_POST["to"];
$sql="INSERT INTO $table_name(subject, text, from, to)VALUES('$subject','$text','$myusername','$username')";
$result=mysql_query($sql);
if ($result) {
echo "Събщението е успешно изпратено до $username!";
echo "<a href='send.php'>Назад</a>";
}
else {
echo "ERROR";
}
}
}
?>
 
Здравейте след промените които ми казахте да направя пак ми дава съобщението за грешка!
 
Променете
Код:
$result=mysql_query($sql);
на
Код:
$result=mysql_query($sql) or die(mysql_error());

и кажете каква грешка дава.
 
Значи изписва ми само "ERROR" на екрана ако искате и демо ще ви дам!

Грешката от MySQL-а:
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 'from, to)VALUES('fdsfsd','fsdfsd','SOKOBAN','')' at line 1
 
<?php
session_start();
if (isset($_SESSION["myusername"])) {
if ($_POST['submit']) {
include('db.php');
$table_name="messages";
$subject=$_POST["subject"];
$text=$_POST["text"];
$myusername=$_SESSION["myusername"];
$username=$_POST["to"];
$sql="INSERT INTO $table_name (`subject`,`text`,`from`,`to`) VALUES('$subject','$text','$myusername','$username')";
$result=mysql_query($sql) or die(mysql_error());
if ($result) {
echo "Събщението е успешно изпратено до $username!";
echo "<a href='send.php'>Назад</a>";
}
else {
echo "ERROR";
}
}
}
?>

Пробвайте така ;)
 
<?php session_start();
if (isset($_SESSION["myusername"])) {
if ($_POST['submit']) {
include('db.php');
$table_name="messages";
$subject=$_POST["subject"];
$text=$_POST["text"];
$myusername=$_SESSION["myusername"];
$username=$_POST["to"];
$sql="INSERT INTO $table_name(subject, text, from, to)VALUES('$subject','$text','$myusername','$username')";
$result=mysql_query($sql) or die(mysql_error());
if ($result) {
echo "Събщението е успешно изпратено до $username!";
echo "<a href='send.php'>Назад</a>";
}
else {
echo "ERROR";
}
}
}
?>
Така?
 
Първият код го направете така
Код:
<?php 
include('db.php'); 
$table_name="users"; 
$username=$_GET['username']; 
$sql="SELECT * FROM $table_name WHERE username='$_GET[username]'"; 
$result=mysql_query($sql); 
while ($rows=mysql_fetch_array($result)) { 
echo "Изпращане на съобщение до $rows[username]"; 
} 
?> 
<form method="POST" action="accept_send.php"> 
Заглавие: <input name="subject" type="text" id="subject"><br> 
Текст:<textarea name="text" rows="4" cols="50"></textarea><br> 
Потребител: <? echo $rows['username']; ?><input type="hidden" value="<?=$rows[username]?>" name="to">
<input name="submit" type="submit" value="Send"> | <input type="reset" name="reset"> 
</form>


За вторият код може ли структурата на таблицата messages?
 
Дава ми пак същотто съобщение за грешка!
 
Това ми е целият .sql файл:

Код:
-- phpMyAdmin SQL Dump
-- version 2.11.9.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 22, 2009 at 03:10 PM
-- Server version: 5.0.67
-- PHP Version: 5.2.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `micmouse_chatbg`
--

-- --------------------------------------------------------

--
-- Table structure for table `messages`
--

CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(11) NOT NULL auto_increment,
  `subject` varchar(255) collate cp1251_bulgarian_ci NOT NULL,
  `text` text collate cp1251_bulgarian_ci NOT NULL,
  `from` varchar(255) collate cp1251_bulgarian_ci NOT NULL,
  `to` varchar(255) collate cp1251_bulgarian_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=5 ;

--
-- Dumping data for table `messages`
--

INSERT INTO `messages` (`id`, `subject`, `text`, `from`, `to`) VALUES
(1, 'fsdf', 'fsdfsd', '', ''),
(2, 'fsdf', 'fsdfsd', '', ''),
(3, 'fsdf', 'fsdfsd', '', ''),
(4, 'fdsfsd', 'fsdfsd', '', '');
 
Пробвайте така

Код:
$sql="INSERT INTO $table_name VALUES('','$subject','$text','$myusername
','$username')";
 
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 ''subject','text','from','to')VALUESVALUES('','трет','дасдас','SOKOBAN ','')' at line 1
 
1-ви код
Код:
<?php 
include('db.php'); 
$table_name="users"; 
$username=$_GET['username']; 
$sql="SELECT * FROM $table_name WHERE username='$_GET[username]'"; 
$result=mysql_query($sql); 
while ($rows=mysql_fetch_array($result)) { 
echo "Изпращане на съобщение до $rows[username]"; 
} 
?> 
<form method="POST" action="accept_send.php"> 
Заглавие: <input name="subject" type="text" id="subject"><br> 
Текст:<textarea name="text" rows="4" cols="50"></textarea><br> 
Потребител: <? echo $rows['username']; ?><input type="hidden" value="<?=$rows[username]?>" name="to"> 
<input name="submit" type="submit" value="Send"> | <input type="reset" name="reset"> 
</form>

2-ри код
Код:
<?php 
session_start(); 
if (isset($_SESSION["myusername"])) { 
if ($_POST['submit']) { 
include('db.php'); 
$table_name="messages"; 
$subject=$_POST["subject"]; 
$text=$_POST["text"]; 
$myusername=$_SESSION["myusername"]; 
$username=$_POST["to"]; 
$sql="INSERT INTO $table_name VALUES ('','$subject','$text','$myusername ','$username')";
$result=mysql_query($sql) or die(mysql_error()); 
if ($result) { 
echo "Събщението е успешно изпратено до $username!"; 
echo "<a href='send.php'>Назад</a>"; 
} 
else { 
echo "ERROR"; 
} 
} 
} 
?>
 
То сатана ама сега е проблема, че не се записва до кой потребителл се изпраща :(
 
Код:
 Съобщението е изпратено до !

Нищо повече!
 
Можете ли да пейстнете source на файла за пращане на съобщението(1-вия)
 
Заповядай:

Код:
<?php
session_start();
if (isset($_SESSION["myusername"])) {
if ($_POST['submit']) {
include('db.php');
$table_name="messages";
$subject=$_POST["subject"];
$text=$_POST["text"];
$myusername=$_SESSION["myusername"];
$username=$_POST["to"];
$sql="INSERT INTO $table_name VALUES ('$subject','$text','$myusername ','$username')";
$result=mysql_query($sql) or die(mysql_error());
while ($rows=mysql_fetch_array($result)) {
if ($result) {
echo "Събщението е успешно изпратено успешно!";
echo "<a href='members.php'>Назад</a>";
}
else {
echo "ERROR";	
}
}
}
}
?>

аз си мислех да вкарам и заявката за username от таблицата users!
 

Back
Горе