первый мой скриптенг калькуля: PHP: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Калькулятор</title> </head> <body> <h3 align="center">Калькулятор</h3> <div align="center"> <form method="get"> <input name="ch1" type="text" size="15" maxlength="10" /> <input name="ch2" type="text" size="15" maxlength="10" /> <input type="submit" value="Считать" /> </form> <?php $ch1=$_GET['ch1']; $ch2=$_GET['ch2']; $summa=$ch1+$ch2; $raznitsa=$ch1-$ch2; $umnozhenie=$ch1*$ch2; $delenie= $ch1/$ch2; if ($ch2 == 0){ echo "Делить на ноль нельзя";} else { echo "Ваши числа: $ch1 и $ch2, их сумма $summa, разница $raznitsa, умножение $umnozhenie, деление $delenie"; } ?> <br /> <br /> </div> </body> </html> имеем ошибку вот тут $delenie=$ch1/$ch2; Warning: Division by zero in ... подскажите.... смотрел калькули на пхп, тоже тупо "переменная / переменная" пишут, а у мя ошибка но калькуль пашет справно
у тебя выдает ошибку деления на 0, сначала делай проверку, а потом уже выполняй действия а не наоборот ))
МОжешь попробовать такой код: PHP: <?php @$ch1=$_GET['ch1']; @$ch2=$_GET['ch2']; $summa=$ch1+$ch2; $raznitsa=$ch1-$ch2; $umnozhenie=$ch1*$ch2; if (!empty($ch2)) { @$delenie= $ch1/$ch2 or die('Ошибка деления'); }else die("Введите числа для подсчета"); echo "Ваши числа: $ch1 и $ch2, их сумма $summa, разница $raznitsa, умножение $umnozhenie, деление $delenie"; ?> Ну не советую т.к. портица HTML код =)
bul.666, отвыкай от собачек и пиши верный код PHP: <?php $ch1 = (isset($_GET['ch1'])) ? intval($_GET['ch1']) : '' ; ?>
Народ, сорр за тупость но уже 2 дня сижу над сесиями. Кто может, подправть код чтоб он запоминал одмина: PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <style type="text/css"> ...... </style> <title>NF AUTH System</title> </head> <body> <center> <h1>Log<font color='green'>In Admin</font></h1> </center> <fieldset><legend><font color='red'>HERE>></font></legend> <form method="post" action=""> <table class="form"> <tr> <th>Login<font color="red">*</font></th> <td><input type="text" size="40" name="Login" onblur="if(this.value=='')this.value='Your Login...';" onclick="if(this.value=='Your Login...')this.value='';" value="Your Login..." /></td> </tr> <tr> <th>Password<font color="red">*</font></th> <td><input type="password" size="40" name="Pass" value="" /></td> </tr> <tr><td><center><input type="submit" value=">>Enter<<" /></center></td></tr> </table> </form> </fieldset> <?php session_start(); error_reporting(1); $Login=$_POST[Login]; $Pass=$_POST[Pass]; $md5_pass=md5(md5($Pass)); IF(empty($Login) OR empty($Pass)){die();} if (!isset($_SESSION['login']) and !isset($_SESSION['password'])) echo("Admin's session isn't found!<br>"); include("config.php"); $Login=stripslashes(htmlspecialchars($Login)); if($_SESSION['password']!=$md5_pass){ if($md5_pass!=$admin_password){die("<font color='red'>Incorect Login or Password was entered!");}else{ $_SESSION['login']=$Login; $_SESSION['password']=$md5_pass; echo("Access granted"); echo"<center><font size=2>USER List</font></center>";} }else{ //connect db echo "<center>"; $link = mysql_pconnect("$server_db", "$user_db", "$pass_db") or die("<font color='red'>Could not connect: </font>" . mysql_error()); //select db if (mysql_select_db("$database")) { } else { printf ("<font color='red'>Error selecting database: %s\n</font>", mysql_error()); } $get_info=mysql_query("SELECT * FROM `auth`"); while($row = mysql_fetch_array($get_info)) { $login=$row['login']; $password=$row['password']; $ip=$row['ip']; $mail=$row['mail']; echo("<table width='100%'> <tr> <td width='15%'><div align=center>$login</div></td> <td width='26%'><div align=center>$password</center></td> <td width='29%'><div align=center>$ip</center></td> <td width='30%'><div align=center>$mail</center></td> </tr> </table>"); } } ?>
При логине у тебя 1 раз запонимаются сессии т.к. стоит код PHP: $_SESSION['login']=$Login; $_SESSION['password']=$md5_pass; Но смотря на код подумай сам что будет при новом обращении на страницу... Опять смотрим этот код PHP: $_SESSION['login']=$Login; $_SESSION['password']=$md5_pass; Тем временем PHP: $Login=$_POST[Login]; $Pass=$_POST[Pass]; А пост запросов у тебя не было и поэтому значения в 0.. Сессий нет...Вот так.. Переписывай
Ниче не понял... Надо розобратся. А то уже мозги кипят ... Добавлено: Понял.. но мыслей по поводу как написать лутше нет.
Убери сессии, делай на куках... //Перед записью в куки делай mysql_escape_string, и при проверке логина и пароля из кук через эту же функцию проводи...
HTML: <form method="post" enctype="multipart/form-data"> <table class="login"> <tr> <td>Логин</td> <td><input type="text" value="" name="login"></td> </tr> <tr> <td>Пароль</td> <td><input type="password" value="" name="password"></td> </tr> <tr> <td></td> <td><input type="button" name="sub" value="Войти" /></td> </tr> </table> </form> Остальной код: http://pastebin.x3k.ru/110
HTML: <form method="post" enctype="multipart/form-data"> <table class="login"> <tr> <td>Логин</td> <td><input type="text" value="" name="login" /></td> </tr> <tr> <td>Пароль</td> <td><input type="password" value="" name="password" /></td> </tr> <tr> <td colspan="2"><input type="button" name="sub" value="Войти" /></td> </tr> </table> </form> PHP: <?php $password = md5($_POST['password']); $error = ''; if (!get_magic_quotes_gpc()) { $_POST['login'] = mysql_escape_string($_POST['login']); } if(empty($_POST['login']) || empty($_POST['password'])) { $error .= 'Вы не ввели логин или пароль'; } if($error) { echo "<div align='center'><div class='error'>".$error."</div></div>"; } else { $query = "SELECT `login`, `pass` FROM `users` WHERE `login`='".$_POST['login']."' AND `pass`='".$password."'"; $result = mysql_query($query); if(mysql_num_rows($result)) { $row = mysql_fetch_array($result); setcookie('user', $row['login'], time() + 86400 * 30 * 12); setcookie('pass', $row['pass'], time() + 86400 * 30 * 12); echo "<div align='center'><div class='complete'>Вы успешно зашли</div></div>"; } else { echo "<div align='center'><div class='error'>Логин или пароль не верен.</div></div>"; } } ?> #Дальше определить админа так: PHP: <?php if (!get_magic_quotes_gpc()) { $_COOKIE['user'] = mysql_escape_string($_COOKIE['user']); $_COOKIE['pass'] = mysql_escape_string($_COOKIE['pass']); } $query = mysql_query("SELECT * FROM `users` WHERE `login`='".$_COOKIE['user']."' AND `pass`='".$_COOKIE['pass']."'"); if(mysql_num_rows($query)) $admin = 1; if($admin) echo 'Я админ'; ?>
я хочу автоматизировать просмотр acces.log на аномальность =) Стал искать скрипт с самого начала, нашел вот это от Dr.Frank: Code: <?php $t=file("1.txt"); $t=implode("\r\n",$t); $t=str_replace("\r\nFucken","",$t); $f=fopen("1.txt","w"); fwrite($f,$t); fclose($f); ?> Скрипт ищет в текстовом документе слово "Fucken" и удаляет его. Я хочу, чтобы программа выдирала аномальные запросы и сохраняла их в текстовый файл. Пытался подредактировать по типу: Code: <?php $t=file("acces.log"); $t=implode("\r\n",$t); $t=str_save("\r\nNull","",$t); $f=fopen("warn.txt","w"); fwrite($f,$t); fclose($f); ?> Соглашаюсь сразу - написал неправильно, лишь недавно стал изучать php и то по возможности, когда появляется свободное время... Как правильно? В чем тут ошибка?
Тот скрипт, который ты нашел - удаляет слово Fucken Чтобы найти что-то в файле и записать в файл - надо пользоваться регулярными выражениями
Macro, Мне бы до регулярных выражении дорасти. С константами разобраться не могу. мне нужна программа, которая сканирует файл access_log и выдирает из него подозрительные запросы. Вышеописанное он оставляет. А 127.0.0.1 - - [18/Jan/2008:20:47:24 +0300] "GET /123.php HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)" Или Он записывал в файл warn.txt. Главное, чтобы можно было самому добавлять в базу запросы, которые нужно искать.
PHP: <?php $file = file('access_log'); for($i = 0; $i < count('access_log'); $i++) { if(strpos('../', $file[$i]) !== false) { $fp = fopen('clear_access, 'w+'); fwrite($fp, $file[$i]); fclose($fp); } } ?> Что-то типа
PHP: <?php $array = array('union+select', '/*', '../'); $old_file_name = 'access.log'; $new_file_name = 'warn.txt'; $file = explode("\n", file_get_contents($old_file_name)); $newfile = array(); foreach($file as $str) { foreach($array as $string) { if(strpos($str, $string) === true) { $newfile[] = $str; break; } } } $file = fopen($new_file_name, 'w'); fwrite($file, implode("\n", $newfile)); fclose($file); ?> $array - массив с подозрительными значениями. Исис, о_О.