PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (9): « 1 2 3 4 5 6 7 [8] 9 »

> Найдено сообщений: 128
Конструктор Отправлено: 06 Апреля, 2011 - 13:12:22 • Тема: проверка ввода числового значения • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 168
Так нельзя?
if (is_numeric ( (double) $a) )
else ...

А что значит фильтровать? проверять в цикле?
Конструктор Отправлено: 06 Апреля, 2011 - 13:01:34 • Тема: проверка ввода числового значения • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 168
EuGen пишет:
Целые is_int
вещественные is_float

Тоесть мне можно написать так:



Это и будет проверкой что переменная $a - действительное число без символов?
Конструктор Отправлено: 06 Апреля, 2011 - 12:50:50 • Тема: проверка ввода числового значения • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 168
Пробую написать функцию PHP проверяющую ввод числового значения.
Пока не понял как это реализовать. В С++ я б наверное взял указатель на строку и в массиве перебрал бы все элементы..(не знаю насколько это было бы правильно..)
А как это сделать в PHP?
Нужно проверить что в поле введено число , а не символ или строка.
Пока нашел что нужно использовать регулярные выражения:
PHP:
скопировать код в буфер обмена
  1. // Если номер не соответствует шаблону ..
  2. if(!preg_match("|^[\d]*$|", $_POST['num']))
  3. {
  4.  // .. останавливаем скрипт и выводим на монитор сообщение
  5.  exit("Не верен формат числа.");    
  6. }

А как еще можно это сделать?
Регулярные выражения это лучший способ?

Вот куда хочу вставить функцию..
(проверяются ввод в поля a, b, c)
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Решение квадратного уравнения</title>
  4. </head>
  5. <body>
  6. &radic<span style="text-decoration: overline;">  34&emsp</span>
  7. <div style="position: absolute; width: 400px; top: 100px; left: 350px; background-color: #fc0" align="center";>
  8. <?PHP
  9. /*надо добавить функцию проверки чисел
  10. */
  11. if(!preg_match("|^[\d]*$|", $_GET['a']))
  12. {
  13.  // .. останавливаем скрипт и выводим на монитор сообщение
  14.  exit("Не верен формат числа.");    
  15. }
  16. $a = $_GET['a'];
  17. $b = $_GET['b'];
  18. $c = $_GET['c'];
  19. echo '<form action="index.php" metod="GET">';
  20. echo '<input type="text" size="7" value="'.$a.'"; name="a">x<sup>2</sup> + ';
  21. echo '<input type="text" size="7" value="'.$b.'"; name="b">x + ';
  22. echo '<input type="text" size="7" value="'.$c.'"; name="c"> = 0 ;';
  23. echo '<p><input type=submit value="Решение"></p></form>';
  24.  
  25. echo "a = $a,<br> b= $b,<br> c = $c;<br>";
  26.  
  27. $d = $b * $b - 4 * $a * $c;
  28. echo "Дискриминант равен $d,<br>";
  29.  
  30. switch (true)
  31. {
  32.         case ($d<0): echo 'следовательно действительных решений нет <br>';
  33.                         break;
  34.        
  35.         case ($d==0): echo 'следовательно существует 1 решение:<br>';
  36.                 $x = (-$b )/2/$a;
  37.                         echo "x=$x.<br>"; break;
  38.        
  39.         case ($d>0): echo 'следовательно существуют 2 решения:<br>';
  40.                 $x1 = ((-$b + sqrt ($d))/2/$a);
  41.                         echo "x<sub>1</sub>=$x1;<br>";
  42.                
  43.                 $x2 = ((-$b - sqrt ($d))/2/$a);
  44.                         echo "x<sub>2</sub>=$x2.<br>"; break;
  45. }
  46. ?>
  47.        
  48. </div>
  49.  
  50. </body>
  51. </html>
Конструктор Отправлено: 05 Апреля, 2011 - 20:21:04 • Тема: Конструкция switch-case или elseif лучше? • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 85
valenok пишет:
Она сравнивает аргумент $d с тем, что написано в скобочках.

Понятно , вроде работает как надо..

Тоесть если логические варианты нужно в скобках писать true,
а если варианты - числа, то будет-->
switch $x
{
case 1: ..;
case 34: ..;
case 5878: ..;
}

И всеже хотел еще спросить что эффективнее работает? или серверу все равно?
Пока прихожу к выводу что если варианты числа то надо - switch - case..
если логика - то if.. elseif...;
это так? и если ли еще аргументы в пользу какого-то способа?
Конструктор Отправлено: 05 Апреля, 2011 - 20:01:54 • Тема: Конструкция switch-case или elseif лучше? • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 85
Всем добрый утро..
Есть 2 вопроса:
1. Почему при $d=0 , скрипт выводит следующее-->
Дискриминант равен 0
действительных решений нет
x1=-2
x2=-2
почему он думает что $d<0?

2. И еще вопрос в чем отличие этой конструкции switch() case:..
от elseif?
В каких случаях что лучше использоваь?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $a = 2;
  3. $b = 8;
  4. $c = 5;
  5. //$d = $b * $b - 4 * $a * $c;
  6. $d=0;
  7.  
  8. echo "Дискриминант равен $d <br>";
  9.  
  10. switch ($d)
  11. {
  12.         case ($d<0): echo 'действительных решений нет <br>'; break;
  13.        
  14.         case ($d==0): echo 'решение 1 <br>'; break;
  15.        
  16.         case ($d>0): echo 'существуют 2 решения <br>'; break;
  17. }
  18. $x1 = (-$b + sqrt ($d))/2/$a;
  19. echo "x1=$x1 <br>";
  20.  
  21. $x2 = (-$b - sqrt ($d))/2/$a;
  22. echo "x2=$x2 <br>";
  23. ?>
Конструктор Отправлено: 22 Марта, 2011 - 15:49:23 • Тема: Передача данных из формы методом Get • Форум: Программирование на PHP

Ответов: 8
Просмотров: 1266
Пока все предыдущие вопросы решены, всем спасибо..
Но появляются новые )..
Теперь скрипт может передавать данные из формы в базу данных и выводить их в таблицу.
Но если обновить страницу после отправки данных, она повторяет ввод последней строки...например >>
CODE (htmlphp):
скопировать код в буфер обмена
  1. адресная строка после отправки данных -> http://test1.ru/index.php?FullName=Pushkin+A&Email=push%40lit.ru&age=500

Если обновить эту страницу, добавится копия последней отправленной строки..
Теперь если жму кнопку отправить, после проверки пустых значений ничего не происходит,
А как решить проблему с обновлением (F5)? Можно как то обнулять переменные?

PHP:
скопировать код в буфер обмена
  1. <html><body>
  2.  
  3. <table width=100% height=50%>
  4. <tr><td align=center>
  5. <h2 align=center><a href="">Это файл /home/test1.ru/www/index.html.</a></h2>
  6. </td></tr>
  7. </table>
  8.  
  9. <?PHP
  10. $con = mysql_connect("localhost","root","");
  11. if (!$con)
  12.   {
  13.   die('Could not connect: ' . mysql_error());
  14.   }
  15.  
  16. if (mysql_query("CREATE DATABASE my_db",$con))
  17.   {
  18.   echo "Database created";
  19.   }
  20. else
  21.   {
  22.   echo "Error creating database: " . mysql_error();
  23.   }  
  24.  
  25. // Create table
  26. mysql_select_db("my_db", $con);
  27. $sql = "CREATE TABLE Persons
  28. (
  29. FullName varchar(15),
  30. Email varchar(15),
  31. Age int
  32. )";
  33. // Execute query
  34. mysql_query($sql,$con);
  35.  
  36. //Запись данных  
  37.   if(isset($_GET['FullName']) and $_GET['FullName'] !=''){  
  38. $sql=" INSERT INTO Persons
  39. (FullName, Email, Age)
  40. VALUES ('$_GET[FullName]','$_GET[Email]','$_GET[age]') ";
  41. mysql_query($sql,$con) or die (mysql_error());
  42. }
  43. //Вывод базы в таблице html
  44. $zapros="SELECT * FROM Persons";
  45. $result = mysql_query($zapros) or die (mysql_error());
  46. echo '<table>';
  47. while ( $row = mysql_fetch_array($result) ) {
  48.         echo '<tr>';
  49.                 echo '<td>'.$row[0].'</td>.
  50.                         <td>'.$row[1].'</td>.
  51.                         <td>'.$row[2].'</td>.
  52.                         <td>'.$row[3]."</td>";
  53.         echo '</tr>';
  54. }
  55. echo '</table>';
  56. mysql_close($con);  
  57. ?>
  58. <form action="index.php">
  59. Введите полное имя или Nickname: <input type=text name="FullName"><br>
  60. Введите E-Mail: <input type=text name="Email"><br>
  61. Введите возраст: <input type=text name="age"><br>
  62. <input type=submit value="Отправить!">
  63. </form>
  64.  
  65. </body></html>
Конструктор Отправлено: 22 Марта, 2011 - 14:04:35 • Тема: Передача данных из формы методом Get • Форум: Программирование на PHP

Ответов: 8
Просмотров: 1266
Спасабо, теперь первый раз вывод не происходит..
Но как сделать чтоб вывода не было каждый раз при нулевом вводе?
PHP:
скопировать код в буфер обмена
  1. <html><body>
  2. <?PHP
  3. if(isset($_GET['name']))
  4. {
  5. echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
  6. }
  7. ?>
  8.  
  9. <form action="index.php">
  10. Введите имя: <input type=text name="name"><br>
  11. Введите возраст: <input type=text name="age"><br>
  12. <input type=submit value="GO!">
  13. </form>
  14. </body></html>
Конструктор Отправлено: 22 Марта, 2011 - 12:41:30 • Тема: Передача данных из формы методом Get • Форум: Программирование на PHP

Ответов: 8
Просмотров: 1266
Разбираюсь в передаче данных из формы.
Рассматриваю код от сюда: http://www.php.su/phphttp/forms/?scrint
Там есть скрипт для обработки 2х переменных:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "Привет, $_GET['name'] ! Вам $_GET['age'] лет !";
  3. ?>

Но у меня о работает если убрать кавычки ' ', то есть так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "Привет, $_GET[name] ! Вам $_GET[age] лет !";
  3. ?>

Нужны ли эти кавычки или нет? или может иногда нужны? или это от чего зависит?
(Добавление)
В уроке также описывается 2 файла:
1 - страница с формой.
2 - скрипт на который ссылается 1я страница и который обрабатывает пришедшие данные.
А ведь можно их объединить?

Я вот попробовал
PHP:
скопировать код в буфер обмена
  1. <html><body>
  2. <?PHP
  3. While ($name=$_GET[name])
  4. {
  5. echo "Привет, $name ! Вам $_GET[age] лет !";
  6. }
  7. ?>
  8.  
  9. <form action="index.php">
  10. Введите имя: <input type=text name="name"><br>
  11. Введите возраст: <input type=text name="age"><br>
  12. <input type=submit value="GO!">
  13. </form>
  14. </body></html>


Почему то у меня получается рекурсия ... на странице бесконечный вывод, а вообще прикольно..)
Если кто подскажет корректный способ проверки нулевых значений буду благодарен.
Конструктор Отправлено: 22 Марта, 2011 - 11:18:50 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
Ничего не пойму, удалил вручную в PhpAdmin свою базу с таблицей, и теперь этот же код не работает..
выдает ошибку : Error creating database: Can't create database 'my_db'; database existsTable 'my_db.persons' doesn't exist
1я понятно - база создается , значит еще раз нельзя.. а вторая почему? (Table 'my_db.persons' doesn't exist)
Код тот же.. :
PHP:
скопировать код в буфер обмена
  1. <html><body>
  2.  
  3. <table width=100% height=100%>
  4. <tr><td align=center>
  5. <h2 align=center>Это файл /home/test1.ru/www/index.html.</h2>
  6. </td></tr>
  7. </table>
  8.  
  9. <?PHP
  10. $con = mysql_connect("localhost","root","");
  11. if (!$con)
  12.   {
  13.   die('Could not connect: ' . mysql_error());
  14.   }
  15.  
  16. if (mysql_query("CREATE DATABASE my_db",$con))
  17.   {
  18.   echo "Database created";
  19.   }
  20. else
  21.   {
  22.   echo "Error creating database: " . mysql_error();
  23.   }
  24.  
  25.  
  26. // Create table
  27. mysql_select_db("my_db", $con);
  28. $sql = "CREATE TABLE Persons
  29. (
  30. FirstName varchar(15),
  31. LastName varchar(15),
  32. Age int
  33. )";
  34.  
  35. // Execute query
  36. mysql_query($query,$con);
  37.  
  38. $query=" INSERT INTO Persons
  39. (FirstName,LastName,Age)
  40. VALUES ('Владимир','Путин','49') ";
  41. mysql_query($query,$con) or die(mysql_error());
  42.  
  43. $query=" INSERT INTO Persons
  44. (FirstName,LastName,Age)
  45. VALUES ('Александр','Пушкин','35') ";
  46. mysql_query($query,$con) or die (mysql_error());
  47.  
  48.  
  49.  
  50. ?>
  51.  
  52. </body></html>


Извиняюсь, уже нашел ошибку: для запросов я менял переменную $sql на $query, и в одном месте забыл поменять.
(Добавление)
Кстати вопрос,
для SQL запроса всегда лучше создавть переменную $sql и передавать ее в запрос,
или может лучше все прописать именно в запросе?

PHP:
скопировать код в буфер обмена
  1. $sql=" INSERT INTO Persons
  2. (FirstName,LastName,Age)
  3. VALUES ('Александр','Пушкин','35') ";
  4. mysql_query($sql,$con) or die (mysql_error());


Ведь на лишнюю переменную наверное лишняя память тратится?
Как это с точки зрения оптимизации?
Конструктор Отправлено: 21 Марта, 2011 - 19:56:57 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
PHP:
скопировать код в буфер обмена
  1. $zapros="SELECT * FROM Persons";
  2. $result = mysql_query($zapros) or die (mysql_error());
  3. echo '<table>';
  4. while ( $row = mysql_fetch_array($result) ) {
  5.         echo '<tr>';
  6.                 echo '<td>'.$row[0].'</td>.
  7.                         <td>'.$row[1].'</td>.
  8.                         <td>'.$row[2].'</td>.
  9.                         <td>'.$row[3]."</td>";
  10.         echo '</tr>';
  11. }
  12. echo '</table>';


спасибо, попровил "table" на мою таблицу "Persons"
все вывелось в табличном виде.
Хотел спросить а как цикл while (...){} можно описать на словах?
Пока копируются строки, вывести 3 столбца текущей строки? А каков алгоритм перебора строк?
$row = mysql_fetch_array($result) - возвращает значение "true"?
Конструктор Отправлено: 21 Марта, 2011 - 18:03:40 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
Добавил пару строк,
а как теперь вывести содержимое ячеек таблицы MySql в таблицу Html?
Конструктор Отправлено: 21 Марта, 2011 - 15:29:15 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
Одну из ошибок нашел:
PHP:
скопировать код в буфер обмена
  1. $sql=" INSERT INTO Persons
  2. (FirstName,LastName,Age)
  3. VALUES ('Владимир','Путин','49') ";
  4.  


FirstName,LastName,Age - все переменные были в кавычках.. ' '
После удаления запись добавилась,
Если есть еще ошибки, буду рад увидеть их..
(Добавление)
Конструктор пишет:
У Вас были лишние одинарные кавычки.

похоже одновременно писали,
но все же спасибо..!
Конструктор Отправлено: 21 Марта, 2011 - 15:24:01 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
Код дополнил , но по прежнему запись не создается может я не так в PhpAdmin смотрю?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $con = mysql_connect("localhost","root","");
  3. if (!$con)
  4.   {
  5.   die('Could not connect: ' . mysql_error());
  6.   }
  7. if (mysql_query("CREATE DATABASE my_db",$con))
  8.   {
  9.   echo "Database created";
  10.   }
  11. else
  12.   {
  13.   echo "Error creating database: " . mysql_error();
  14.   }  
  15. // Create table
  16. mysql_select_db("my_db", $con);
  17. $sql = "CREATE TABLE Persons
  18. (
  19. FirstName varchar(15),
  20. LastName varchar(15),
  21. Age int
  22. )";
  23. // Execute query
  24. mysql_query($sql,$con);
  25. $sql=" INSERT INTO Persons
  26. ('FirstName','LastName','Age')
  27. VALUES ('Владимир','Путин','49') ";
  28. mysql_query($sql,$con);  
  29. mysql_close($con);  
  30. ?>
Конструктор Отправлено: 21 Марта, 2011 - 14:57:37 • Тема: Создание таблицы MySql, и запись значений • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 103
Пробую изучать создание базы , таблиц и запись значений в таблицу..
База данных MySql, сервер - Denwer

Написал следующий код, но почему то он не создает запись, прошу помочь найти ошибки..

CODE (html):
скопировать код в буфер обмена
  1. <html><body>
  2.  
  3. <table width=100% height=100%>
  4. <tr><td align=center>
  5. <h2 align=center>Это файл /home/test1.ru/www/index.html.</h2>
  6. </td></tr>
  7. </table>
  8.  
  9. <?php
  10. $con = mysql_connect("localhost","root","");
  11. if (!$con)
  12.  {
  13.  die('Could not connect: ' . mysql_error());
  14.  }
  15.  
  16. if (mysql_query("CREATE DATABASE my_db",$con))
  17.  {
  18.  echo "Database created";
  19.  }
  20. else
  21.  {
  22.  echo "Error creating database: " . mysql_error();
  23.  }
  24.  
  25.  
  26.  
  27. // Create table
  28. mysql_select_db("my_db", $con);
  29. $sql = "CREATE TABLE Persons
  30. (
  31. FirstName varchar(15),
  32. LastName varchar(15),
  33. Age int
  34. )";
  35.  
  36. // Execute query
  37. mysql_query($sql,$con);
  38.  
  39. mysql_query (" INSERT INTO Persons
  40. ('FirstName','LastName','Age')
  41. VALUES ('Владимир','Путин','49') ");
  42.  
  43.  
  44. mysql_close($con);
  45.  
  46. ?>
  47.  
  48. </body></html>
Конструктор Отправлено: 16 Июня, 2010 - 21:10:16 • Тема: Не работают серверы на компе • Форум: Apache и другие веб-серверы

Ответов: 4
Просмотров: 402
EuGen пишет:
127.0.0.1 localhost
Остальное не нужно
Для того чтобы узнать занят ли порт есть команда netstat


опять проверил, денвер заработал, в файле ets\hosts перед включением денвера вроде теперь одна строка..
Не знаю может установка апача исправила.. А вообще где можно почитать об этом файле "hosts" и где и как он используется в системе?

Страниц (9): « 1 2 3 4 5 6 7 [8] 9 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB