|
|
|
|
<?php include_once("bd_connect.php");
date_default_timezone_set('Europe/Moscow');
?>
<html>
<head>
<title>Главная</title>
<center><h3>САЙТ</h3></center>
</head>
<body>
<p> <small> <form action=".php" method="post">
<p> <a href="registration.php">Регистрация </a> Логин: <input type="text" name="Login" size="12">
Пароль:<input type="text" name="Password" size="12"> <input type="submit" value="Вход" />
</form></p>
<h4 style="background-color:#FFAFA0;"><a href="Index.php"> ФОРУМ </a>
<a href="dating.php">ЗНАКОМСТВА</a> <a href="personal.php">ЛИЧНЫЙ КАБИНЕТ </a>
<a href="search.php">ПОИСК </a> <a href="rules.php">ПРАВИЛА </a></h4>
<br>
<form method="post">
<textarea name="text"></textarea>
<input type="submit" value="Отправить" />
</form>
<?php
$date = date('Y-m-d H:m:s');
$strSQL1 = "SELECT * FROM userinfo WHERE id=" .$_GET["id"];
$strMSG="INSERT INTO messages (text,writer,reader,date) VALUES (";
// Выполнить запрос (набор данных $rs содержит результат)
$rs1 = mysql_query($strSQL1) or die(mysql_error());;
// Цикл по $rs
while($row1 = mysql_fetch_array($rs1)) {
// Записать данные человека
echo "<br><p></p><p class=i>" . $row1["name"] . " " . $row1["lname"] ." ".$row1["login"]. "<br>
Возраст: " . $row1["age"] . "<br>
Страна: " . $row1["country"] . "<br>
Город: ". $row1["city"] . "<br>
Образование: ". $row1["education"] . "<br>
О себе: ". $row1["info"] . "<br>
Зарегистрирован: " . $row1["regdate"] . "</p>";
if (isset($_POST['text']) && trim($_POST['text'])){
$strMSG = $strMSG."'".$_POST['text']."', '".$login."', '".$row1["login"]."', '".$date."')";
mysql_query($strMSG) or die(mysql_error());
header("Location: userpaige.php");
}
}
//mysql_close();
echo $strSQL1;
echo $strMSG;
echo $date;
?>
</body>
</html>
|
Как тут обойтись без header location? При его использовании редирректом на эту же страницу или на другие, у меня падает сессия и не распознается айди в строке
$strSQL1 = "SELECT * FROM userinfo WHERE id=" .$_GET["id"];
| . | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 16:30)
| | без header location можно обойтись если отправлять форму через ajax. не понятно только, как это у вас "падает сессия", если вы сессию нигде не стартуете. и код очень плохой, даже при включенном режиме magic_quotes_gpc будет уязвим к sql-инъекциям | |
|
|
|
|
|
|
|
для: psychomc
(24.02.2014 в 16:49)
| | Стартую в подключаемом файле "BD-connect.php". Содержимое файла:
<?php
error_reporting(E_ALL);
session_start();
date_default_timezone_set('Europe/Moscow');
mysql_connect("localhost", "root", "2230200") or die (mysql_error());
mysql_select_db("mainsite2");
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$id_user = $_SESSION['id'];
?>
|
Код плохой только с точки зрения безопасности? Я пока в качестве кодов не разбираюсь. Совсем новичок. | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 16:59)
| | не только. тут нужно читать литературу | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 16:30)
| | Заголовки должны отправляться до любого вывода в браузер, а у вас целый блок html-кода в начале. | |
|
|
|
|
|
|
|
для: confirm
(24.02.2014 в 16:50)
| | Простите мою неосведомленность, но что имеется ввиду под заголовками? | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 17:01)
| | header("Location: userpaige.php"); - это передача заголовка, а перед их передачей не должно быть никаких выводов в браузер, даже до РНР-тега не должно быть пробелов и прочего лишнего! А у вас структура кода такова, что изначально выводится целый блок в браузер, а значит не переход будет, а ошибка. И после перехода нужно заканчивать работу скрипта - exit;
Если грамотно написать структуру кода, то не будет проблем и с переходом. | |
|
|
|
|
|
|
|
для: confirm
(24.02.2014 в 17:11)
| | Я не понял) можно на примере? У меня наглядное мышление. | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 17:50)
| | Мышление у вас должно быть логическое, но основываться на знании языка, на котором вы пытаетесь писать. У вас так:
<?php include_once("bd_connect.php"); //это РНР-код
date_default_timezone_set('Europe/Moscow');
?>
//а это уже html-код, и это непосредственный вывод в браузер
<html>
<head>
.....
<input type="submit" value="Отправить" />
</form>
<?php
$date = date('Y-m-d H:m:s');
//тут опять блок РНР, и вот в нем передача заголовка
header("Location: userpaige.php");
//ее обязательно надо заканчивать выходом, то есть после этой строки должно быть:
exit;
//иначе могут быть глюки
|
Чтобы подружит передачу заголовка и вывод, существуют две возможности - 1. буферизация, 2. передача заголовков до вывода в браузер
Показать вам конкретный пример чего? Например, ваш сценарий (я не имею ввиду код, я имею ввиду логику работы этого кода, что и как, по каким условиям он должен выполнять) позволяет сделать проверку условия до вывода в браузер, то эта проверка должна быть в самом начале кода вашего. То есть прием формы, проверка ее значений и принятие решения - этот блок кода должен быть первым, тогда и переход не вызовет проблемы. | |
|
|
|
|
|
|
|
для: confirm
(24.02.2014 в 19:22)
| | Тьфу, перепутал, наглядное восприятие у меня.
Переход не вызовет проблемы в том смысле, что переменные сессии, находящиеся в подключаемом файле, и $_GET[id], не будут опустошаться? | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 20:15)
| | Какая сессия, если у вас собственно никакого перехода не произойдет по причине описанной выше?
Если грамотно написать структуру кода, то ничего не отвалится, не опустошится и т.д., и т.п. | |
|
|
|
|
|
|
|
для: ramundo
(24.02.2014 в 20:15)
| |
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$id_user = $_SESSION['id'];
|
интересно а в сессию они как попали то ?) | |
|
|
|