PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (5): « 1 2 [3] 4 5 »
Найдено сообщений: 67
McLotos
Отправлено: 27 Апреля, 2011 - 15:41:10 • Тема: Фиксация ошибок входа • Форум: Если скрипт не работает
Ответов: 2 Просмотров: 1609
Имеется значит табличка. Спойлер (Отобразить ) CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `Errors` (
`ip` varchar( 12) COLLATE utf8_unicode_ci NOT NULL ,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`col` int( 1) NOT NULL DEFAULT '0' ,
`login` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE= MyISAM DEFAULT CHARSET= utf8 COLLATE= utf8_unicode_ci;
В эту таблицу записываются данные о пользователе, который пытается войти, но вводит неверные данные, и если он 3 раза не вошёл, то его блочат на 15 минут.Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$ip = getenv ( "HTTP_X_FORWARDED_FOR" ) ; if ( empty ( $ip ) || $ip == 'unknown' ) { $ip = getenv ( "REMOTE_ADDR" ) ; } mysql_query ( "DELETE FROM Errors WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900" ) ; $result = mysql_query ( "SELECT col FROM Errors WHERE ip='$ip '" , $db ) ; if ( $myrow [ 'col' ] > 2) {
exit ( "Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки." ) ; }
$password = md5 ( $password ) ; $result = mysql_query ( "SELECT * FROM users WHERE login='$login ' AND password='$password '" , $db ) ; { $select = mysql_query ( "SELECT ip FROM Errors WHERE ip='$ip '" ) ; if ( $ip == $tmp [ 0] ) {
$result52 = mysql_query ( "SELECT col FROM Errors WHERE ip='$ip '" , $db ) ; $col = $myrow52 [ 0] + 1 ;
mysql_query ( "UPDATE Errors SET col=$col ,date=NOW() WHERE ip='$ip '" ) ; }
else {
mysql_query ( "INSERT INTO Errors (ip,date,col) VALUES ('$ip ',NOW(),'1')" ) ; } exit ( "Извините, введённый вами логин или пароль неверный." ) ; } else {
$_SESSION [ 'id' ] = $myrow [ 'id' ] ;
Код по идее должен работать идеально, он в принципе и работает, но как самостоятельный код, а когда я пытаюсь его добавить вСпойлер (Отобразить ) PHP:
скопировать код в буфер обмена
include_once $_SERVER [ 'DOCUMENT_ROOT' ] . '/db/config.php' ;
dbConnect( ) ;
if ( $_SESSION [ 'id' ] && ! isset ( $_COOKIE [ 'tzRemember' ] ) && ! $_SESSION [ 'rememberMe' ] ) { unset ( $_SESSION [ 'password' ] ) ; unset ( $_SESSION [ 'login' ] ) ; } if ( isset ( $_GET [ 'logoff' ] ) ) { unset ( $_SESSION [ 'password' ] ) ; unset ( $_SESSION [ 'login' ] ) ; } if ( $_POST [ 'submit' ] == 'Enter' ) {
if ( isset ( $_POST [ 'login' ] ) ) { $login = $_POST [ 'login' ] ; if ( $login == '' ) { unset ( $login ) ; } } if ( isset ( $_POST [ 'password' ] ) ) { $password = $_POST [ 'password' ] ; if ( $password == '' ) { unset ( $password ) ; } } $err [ ] = 'You did not enter all the information you fill in all fields' ;
$password = trim ( $password ) ; $password = md5 ( $password ) ; $result1 = mysql_query ( "SELECT * FROM users WHERE login='" . $login . "' AND password='" . $password . "'" ) ; if ( empty ( $myrow [ 'id' ] ) ) { $err [ ] = 'Sorry, you entered your username or password is incorrect.' ;
} else {
$_SESSION [ 'login' ] = $myrow [ 'login' ] ;
$_SESSION [ 'password' ] = $myrow [ 'password' ] ;
$_SESSION [ 'id' ] = $myrow [ 'id' ] ;
то он меня посылает далеко и надолго
McLotos
Отправлено: 27 Апреля, 2011 - 07:39:05 • Тема: Автоматический запуск скрипта PHP при записи в MySQL • Форум: Операционная система и системные вызовы
Ответов: 3 Просмотров: 3564
DeepVarvar Отжёг. Считается =)
Alt.F4
Смотря какой скрипт Вам нужно прицепить. Допустим нужно выводить всё содержимое БД, и если туда что-то добавили то это тоже нужно сразу вывести в общий список, без проблем. Делаеся примерно так:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$query = "SELECT * FROM Content order by date" ;
if ( $result )
$o [ ] = "<table bgcolor=gray border=0 width=100%><tr><td>Unique Identifier</td><td>Position</td><td>Limit</td></tr>" ;
{ $o [ ] = "<tr bgcolor=white>" ;
$o [ ] = "<td>{$myrow['date']} </td>" ;
$o [ ] = "<td>{$myrow['name']} </td>" ;
$o [ ] = "<td>{$myrow['content']} </td>" ;
$o [ ] = "</tr>" ; }
$o [ ] = "</table>" ; }
McLotos
Отправлено: 27 Апреля, 2011 - 07:24:55 • Тема: Форма добавления контента • Форум: HTTP и PHP
Ответов: 6 Просмотров: 3621
Одну часть проблемы решил. Установил в БД аттрибут U для одного из вводимых полей. Но один вопрос всё-равно остаётся - если поля формы пустые, и обновлять страницу, то в БД добавляются новые значения пустота. Как исправить этот глюк? В БД для всех полей стоит NOT NULL
McLotos
Отправлено: 26 Апреля, 2011 - 16:23:15 • Тема: Форма добавления контента • Форум: HTTP и PHP
Ответов: 6 Просмотров: 3621
Редирект не срабатывает. Начала появляться куча ошибок. Сначала матерился типа редирект уже есть. Хотя он там только 1 раз. Теперь ругается на класс, который там используется. А как кстати можно вообще избавиться от класса?Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP require_once 'includes/global.inc.php' ; ?>
<?PHP
$position_name = "" ;
$position_balance = "" ;
if ( isset ( $_POST [ 'submit-form' ] ) ) { $position_name = $_POST [ 'position_name' ] ;
$position_balance = $_POST [ 'position_balance' ] ;
$success = true ;
$Positions = new Positions( ) ;
if ( $success )
{ $data [ 'position_name' ] = $position_name ;
$data [ 'position_balance' ] = $position_balance ;
$newPositions = new Positions( $data ) ;
$newPositions -> save ( true ) ;
header ( 'Location: positions.php); }
}
$query="SELECT * FROM Posts order by position";
$result=mysql_query($query);
if($result)
{ $o=array();
$o[]="<table bgcolor=gray border=0 width=100%><tr><td>Unique Identifier</td><td>Position</td><td>Limit</td></tr>";
while($myrow = mysql_fetch_array($result))
{ $o[]="<tr bgcolor=white>";
$o[]="<td>{$myrow[' position']}</td>";
$o[]="<td>{$myrow[' position_name']}</td>";
$o[]="<td>{$myrow[' position_balance']}</td>";
$o[]="</tr>";}
$o[]="</table>";}
else
{print mysql_error();}?>
<html>
<body><center>
<table border=1 width=100%>
<tr><td>
<? echo implode ( '' , $o ) ; ?> </td>
<td><form name="posts" action="positions.php" method="post"><h3>Добавить позицию</h3>
<label for="position_name">Position</label><br>
<input type="text" value="<?PHP echo $position_name ; ?> " name="position_name" AUTOCOMPLETE=OFF /><br>
<label for="position_balance">Limit</label><br>
<input type="text" value="<?PHP echo $position_balance ?> " name="position_balance" AUTOCOMPLETE=OFF />
<button type="submit" value="Register" name="submit-form">Зарегистрировать</button>
</form></td></tr></table>
</html>
McLotos
Отправлено: 26 Апреля, 2011 - 14:35:31 • Тема: Форма добавления контента • Форум: HTTP и PHP
Ответов: 6 Просмотров: 3621
Есть форма, в ней 2 поля ввода, и кнопка (примитивная форма) =)
Через эту форму в БД добавляются данные, но если обновить страницу, поля формы не очищаются, а записываются в БД ещё раз, и ещё раз, короче если зажать F5 то данные будут в БД добавляться и добавляться... но это ещё не всё. Если поля очистить и опять-же обновить страницу, в таком случае в БД запишется пустое значение, и ему тоже присвоится id и т.д. Как исправить этот бред? Пробовал добавлять unset не помогло
McLotos
Отправлено: 12 Апреля, 2011 - 15:13:16 • Тема: Как создать кнопку • Форум: Программирование на PHP
Ответов: 2 Просмотров: 324
Зачастую приходится использовать телепатические шаманские способности, которыми меня наградили еще в прошлой жизни, когда я был канадским индейцем
Какой соседний файл?
Телепаты в отпуске.
McLotos
Отправлено: 12 Апреля, 2011 - 14:52:02 • Тема: Как создать кнопку • Форум: Программирование на PHP
Ответов: 2 Просмотров: 324
Как создать кнопку, которая запустит запрос типа SELECT * FROM Calls WHERE phone_number=$phone_number and recipient=(тут надо как-то обозвать второе окно.)
PHP:
скопировать код в буфер обмена
$query = "SELECT DISTINCT recipient AS field,recipient FROM Calls WHERE phone_number='$phone_number ' order by recipient" ;
echo ( '<div align="center">
<form name="form1">
<table width="200" border="0" color=#CECECE; cellspacing="0" cellpadding="4" style="text-align: center">
<tr>
<td><div align="center">
<nobr>All recipients (<font color=green id="list1_num"></font>)</nobr><br>
<select class="select" id="list1" style="width: 175px" size="8" multiple>' ) ;
{
echo ( '<option value=' . $row [ 'recipient' ] . '>' . $row [ 'field' ] . '</option>' ) ;
}
echo ( '</select>
</div></td>
<td valign="middle"><div align="center">
<input type="button" style="width:75 px" value=" >> " onClick="MoveItem(\'list1\',\'list2\');">
<br>
<input type="button" style="width:75 px" value=" << " onClick="MoveItem(\'list2\',\'list1\');">
</div></td>
<td><div align="center">
<nobr>Personal recipients (<font color=red id="list2_num"></font>)</nobr><br>
<select class="select" id="list2" style="width: 175px" name="list2" size="8" multiple>
</select>
</div></td>
<td valign="middle">
<input type="button" value="/\" onClick="MoveOpt(\'list2\',-1);">
<br>
<input type="button" value="\/" onClick="MoveOpt(\'list2\',1);">
</td>
</tr>
</table></td>
</tr>
</table>
</form>
</div>' ) ;
{
echo ( '<option value=' . $row [ 'recipient' ] . '>' . $row [ 'field' ] . '</option>' ) ;
}
echo ( '</select></td></tr></table>' ) ;
McLotos
Отправлено: 12 Апреля, 2011 - 09:34:50 • Тема: Множественный выбор данных в БД • Форум: SQL и Архитектура БД
Ответов: 11 Просмотров: 73
А можно привязать запрос прямо к кнопке? Или нужно каким-то образом проверять второе окно, типа если туда что-то добавили, то пробить эти данные по БД, найти соответствие и вывести все рещультаты? Или в любом случае нужно создавать дополнительную кнопку "Запрос"? И кстати как вообще искать то что отобрали? Я что-то не понимаю. Там же нет никаких переменных? А id в этой ситуации не поможет. Пример запроса в моём предыдущем сообщении.
McLotos
Отправлено: 12 Апреля, 2011 - 09:25:51 • Тема: Множественный выбор данных в БД • Форум: SQL и Архитектура БД
Ответов: 11 Просмотров: 73
Ещё немного подправил код. Всё заработало. А не подскажете как теперь добавить рядом ещё одно окно, в которое это всё бы перекидывалось? Т.е. второе пустое окно и две кнопочки между ними.Само окно я знаю как вставить, проблема как раз с кнопочками, и с запросами. А кстати реально сделать так чтобы всё что попало во второе окно сразу прогонялось через запросCODE (
SQL ):
скопировать код в буфер обмена
SELECT * FROM Calls WHERE phone_number== $phone_number AND recipient== ( кстати как присвоить сюда переменную?)
Чем дальше продвигаюсь, тем больше вопросов появляется.
PHP:
скопировать код в буфер обмена
$query = "SELECT DISTINCT recipient AS field,recipient FROM Calls WHERE phone_number='$phone_number ' order by recipient" ;
echo ( '<table><tr><td><select name="List" size=7 multiple>' ) ;
{
echo ( '<option value=' . $row [ 'recipient' ] . '>' . $row [ 'field' ] . '</option>' ) ;
}
echo ( '</select></td>' ) ;
McLotos
Отправлено: 11 Апреля, 2011 - 12:46:48 • Тема: Множественный выбор данных в БД • Форум: SQL и Архитектура БД
Ответов: 11 Просмотров: 73
С ошибкой я уже разобрался. Сделал вот так PHP:
скопировать код в буфер обмена
$query = ( 'SELECT DISTINCT(recipient) AS field,id_call FROM Calls WHERE phone_number=$phone_number' ) ;
echo ( '<select name="SELECT" multiple>' ) ;
{
echo ( '<option value=' . $row [ 'id' ] . '>' . $row [ 'field' ] . '</option>' ) ;
}
echo ( '</select>' ) ;
Только я не могу понять почему вместо окна со списком уникальных данных выводится окошко высотой 10 и шириной 3, естественно пустое.
McLotos
Отправлено: 11 Апреля, 2011 - 12:28:27 • Тема: Множественный выбор данных в БД • Форум: SQL и Архитектура БД
Ответов: 11 Просмотров: 73
Не совсем так, точнее совсем не так.
CODE (
html ):
скопировать код в буфер обмена
<select name = day size = 7 multiple>
<option value = 1 > Понедельник</ option >
<option value = 1 > Вторник</ option >
<option value = 1 > Среда</ option >
<option value = 1 > Четверг</ option >
<option value = 1 > Пятница</ option >
<option value = 1 > Суббота</ option >
<option value = 1 > Воскресенье</ option >
</ select
McLotos
Отправлено: 28 Марта, 2011 - 13:00:00 • Тема: Сумма выделенных Checkbox • Форум: Программирование на PHP
Ответов: 0 Просмотров: 184
Есть таблица, которая заполняется запросом
PHP:
скопировать код в буфер обмена
$query = "select t.* from calls t left outer join users u on t.phone_number=u.phone_number where u.id='$id ' ORDER BY t.recipient" ;
if ( $result )
{
{
$o [ ] = "<tr bordercolor=white bgcolor=white>" ;
$o [ ] = "<td bgcolor=70FF8A>{$myrow['phone_number']} </td>" ;
$o [ ] = "<td>{$myrow['date_of_call']} </td>" ;
$o [ ] = "<td>{$myrow['time_of_call']} </td>" ;
$o [ ] = "<td>{$myrow['duration']} </td>" ;
$o [ ] = "<td>{$myrow['recipient']} </td>" ;
$o [ ] = "<td>{$myrow['description']} </td>" ;
$o [ ] = "<td align=right>{$myrow['connection_type']} </td>" ;
$o [ ] = "<td align=center>{$myrow['volume']} </td>" ;
$o [ ] = "<td>{$myrow['rouming']} </td>" ;
$o [ ] = "<td bgcolor=#FF3700 align=right>{$myrow['cost']} </td>" ;
$o [ ] = "<td><input type=\" checkbox\" name=\" $id .calls\" /></td>" ;
$o [ ] = "</tr>" ;
}
$o [ ] = "</table>" ;
как сделать так чтобы считалась сумма значений полей Cost отмеченных строк? и чтобы эта сумма записывалась в какую-нибудь переменную, для каждого пользователя?!
Страниц (5): « 1 2 [3] 4 5 »
Powered by ExBB FM 1.0 RC1. InvisionExBB