Помощ с Аякс и PHP

UmriWe

Registered
Здравейте, може ли някой да ми каже как мога да направя така, че самият Аякс да взема името от $_SESSION['username'] ?! Ето и кода :
Код:
			function sendChatText() {
				if(document.getElementById('txt_message').value == '') {
					alert("You have not entered a message");
					return;
				}
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendReq.onreadystatechange = handleSendChat; 
					var param = 'message=' + document.getElementById('txt_message').value;
					param += '&name= вземаме от сесията ';
				        param += '&chat=1';
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}
Зора ми е на param += '&name= ?!?!?!?!?!?! ';
Моля помогнете ако сте ме разбрали :)
 
Код:
$name=$_SESSION['username'];

function sendChatText() {
            if(document.getElementById('txt_message').value == '') {
               alert("You have not entered a message");
               return;
            }
            if (sendReq.readyState == 4 || sendReq.readyState == 0) {
               sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
               sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
               sendReq.onreadystatechange = handleSendChat;
               var param = 'message=' + document.getElementById('txt_message').value;
               param += '&name=<? $name; ?>';
               param += '&chat=1';
               sendReq.send(param);
               document.getElementById('txt_message').value = '';
            }                     
         }

ако не стане така го напиши така

param += '&name=<? print $name; ?>';
 
не си пропуснал да сложиш това най-горе нали
Код:
$name=$_SESSION['username'];

я пробвай така

param += '&name="<? print $name; ?>"';

param += '&name="$name"';

param += '&name="<? $name; ?>"';
 
Код:
param += '&name=' <?=$name ?> ';
или
Код:
 param += '&name='<?=$name ?';
и някъде трябва да укажеш на какво да е равно $name.
Код:
$name = $_SESSION['name'];
примерно или там както ти е
 
param += '&name='.$name;

Тука ми се струва, че като цяло кода омазва. Я пробвай така. Ако не става дай кода на цялата страница да видим може да е от подредбата на нещата ти.
 
Ето ми го целия чат .. Ако може помогнете
ajax_chat.js
Код:
			var sendReq = getXmlHttpRequestObject();
			var receiveReq = getXmlHttpRequestObject();
			var lastMessage = 0;
			var mTimer;

			function startChat() {
				document.getElementById('txt_message').focus();
				getChatText();
			}		
			function getXmlHttpRequestObject() {
				if (window.XMLHttpRequest) {
					return new XMLHttpRequest();
				} else if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} else {
					document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
				}
			}
			function getChatText() {
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
					receiveReq.open("GET", 'getChat.php?chat=1&last=' + lastMessage, true);
					receiveReq.onreadystatechange = handleReceiveChat; 
					receiveReq.send(null);
				}			
			}
			
			$name=$_SESSION['username']; 
			function sendChatText() {
				if(document.getElementById('txt_message').value == '') {
					alert("You have not entered a message");
					return;
				}
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendReq.onreadystatechange = handleSendChat; 
					var param = 'message=' + document.getElementById('txt_message').value;
					param += '&name='.$name; 	
					param += '&chat=1';
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}
			function handleSendChat() {
				clearInterval(mTimer);
				getChatText();
			}
			function handleReceiveChat() {
				if (receiveReq.readyState == 4) {
					var chat_div = document.getElementById('div_chat');
					var xmldoc = receiveReq.responseXML;
					var message_nodes = xmldoc.getElementsByTagName("message"); 
					var n_messages = message_nodes.length
					for (i = 0; i < n_messages; i++) {
						var user_node = message_nodes[i].getElementsByTagName("user");
						var text_node = message_nodes[i].getElementsByTagName("text");
						var time_node = message_nodes[i].getElementsByTagName("time");
						chat_div.innerHTML += user_node[0].firstChild.nodeValue + ' ';
						chat_div.innerHTML += '<font class="chat_time">' + time_node[0].firstChild.nodeValue + '</font><br />';
						chat_div.innerHTML += text_node[0].firstChild.nodeValue + '<br />';
						chat_div.scrollTop = chat_div.scrollHeight;
						lastMessage = (message_nodes[i].getAttribute('id'));
					}
					mTimer = setTimeout('getChatText();',2000); // 2 seconds 
				}
			}
			function blockSubmit() {
				sendChatText();
				return false;
			}
			function resetChat() {
				if (sendReq.readyState == 4 || sendReq.readyState == 0) {
					sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
					sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					sendReq.onreadystatechange = handleResetChat; 
					var param = 'action=reset';
					sendReq.send(param);
					document.getElementById('txt_message').value = '';
				}							
			}
			function handleResetChat() {
				document.getElementById('div_chat').innerHTML = '';
				getChatText();
			}
getChat.php
Код:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); 
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); 
header("Cache-Control: no-cache, must-revalidate" ); 
header("Pragma: no-cache" );
header("Content-Type: text/xml; charset=utf-8");

require('chat-functions.php');

if(isset($_POST['message']) && $_POST['message'] != '') {
	$sql = "INSERT INTO message(chat_id, user_id, user_name, message, post_time) VALUES (" . 
			db_input($_GET['chat']) . ", 1, '" . db_input($_POST['name']) . 
			"', '" . db_input($_POST['message']) . "', NOW())";
	db_query($sql);
}
if(isset($_POST['action']) && $_POST['action'] == 'reset') {
	$sql = "DELETE FROM message WHERE chat_id = " . db_input($_GET['chat']);
	db_query($sql);
}
$xml = '<?xml version="1.0" ?><root>';
if(!isset($_GET['chat'])) {
	$xml .='Your are not currently in a chat session.  <a href="">Enter a chat session here</a>';
	$xml .= '<message id="0">';
	$xml .= '<user>Admin</user>';
	$xml .= '<text>Your are not currently in a chat session.  <a href="">Enter a chat session here</a></text>';
	$xml .= '<time>' . date('h:i') . '</time>';
	$xml .= '</message>';
} else {
	$last = (isset($_GET['last']) && $_GET['last'] != '') ? $_GET['last'] : 0;
	$sql = "SELECT message_id, user_name, message, date_format(post_time, '%h:%i') as post_time" . 
		" FROM message WHERE chat_id = " . db_input($_GET['chat']) . " AND message_id > " . $last;
	$message_query = db_query($sql);
	while($message_array = db_fetch_array($message_query)) {
		$xml .= '<message id="' . $message_array['message_id'] . '">';
		$xml .= '<user>' . htmlspecialchars($message_array['user_name']) . '</user>';
		$xml .= '<text>' . htmlspecialchars($message_array['message']) . '</text>';
		$xml .= '<time>' . $message_array['post_time'] . '</time>:';
		$xml .= '</message>';
	}
}
$xml .= '</root>';
echo $xml;
?>
chat.php
Код:
<?php
require "functions.php";
my_header("IcyFire - Chat Room");
include "include/left.php";
?>
		<td width="3" valign="top"> 
</td>
<td width="600" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="600" style="text-align:left;">
<tr>
<td width="600" height="62" background="images/main/content-top-home.gif" style="background-repeat:no-repeat;">
</td>
</tr>
<tr>
<td background="images/main/content-mid.gif" style="width:600px;background-repeat:repeat-y;">
<div style="width:600px;">
<table border="0" cellpadding="0" cellspacing="0" width="479" align="center">
<tr>
<td width="479" height="52" valign="top" background="images/main/account_page_top.png" style="background-repeat:no-repeat;"
<table width="460" align="center" height="50">
<tr>
<td valign="top" align="left" style="padding-top:5px;">
<span style="color:#FFFFFF; font-size:16px;"><b>Chat Room</b></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="479" height="6" valign="top" background="images/main/account_page_mid.png" style=" width:479px; background-repeat:repeat-y;">
<table border="0" cellpadding="0" cellspacing="0" width="420" align="center">
<tr>
<td onload="javascript:startChat();" style="padding: 12px 0pt;" valign="top">

<?php
$ip = "85.196.150.129";
if($_SERVER['REMOTE_ADDR'] == $ip)
{
if($_SESSION['username'])
{
?>
<div id="div_chat" style="height: 300px; width: 415px; overflow: auto; background-color: #000; border: 1px solid #555555;">
</div>
<form id="frmmain" name="frmmain" onsubmit="return blockSubmit();"><br />
<input type="text" id="txt_message" name="txt_message" style="width: 355px;" />
<input type="button" name="btn_send_chat" id="btn_send_chat" value="Send" onclick="javascript:sendChatText();" /><br /><br />
<input type="button" name="btn_get_chat" id="btn_get_chat" value="Refresh Chat" onclick="javascript:getChatText();" />
</form>
<?php
}
else
{
	echo "<span class='alert'>You must be logged in to chat!</span>";
}
}
else
{
	echo "<span class='alert'>The Chat Room is under construction !</span>";
}
?>
<br />
<br />
</td>
</tr>
</table>
<br />
</div>
</td>
</tr>
</table> 
</div>

                                   
									</td>
                           	 	</tr>
                            <tr>
                            	<td height="30"><img src="images/main/content-bottom.gif" width="600" height="35" alt='Bottom' /></td>
                            </tr>
                        	</table>
       					</td>
        
        				<td width="3" valign="top"> 
                        
        				</td>
						                        
        				<td width="240" valign="top">
          					<table width="240" border="0" cellpadding="0" cellspacing="0">
              					<tr>
                  					<td height="196" align="center" valign="top" style="background-repeat:no-repeat;" background="images/main/statistics.gif">
                      					<table width="240" height="196" border="0" cellpadding="0" cellspacing="0">
                          					<tr>
                              					<td valign="top" style="padding-top:47px;">
<?php
include "include/right.php";
footer()
?>
 
Направи един
Код:
<input type="hidden" name="name" id="name" value="'.$_SESSION['username'].'">
Това да бъде във формата за пращане и съответно param където ти е ще стане така...

Код:
param += '&name=' + document.frmmain.name.value;

Това с param да отиде в js файла на мястото на param += '&name='.$name;
 

Back
Горе