Показать полную графическую версию : Общие вопросы по коду
Страниц :
1
2
3
4
5
6
7
8
9
10
11
12
13
[
14]
15
16
17
18
19
20
21
22
не заню как даже задать вопрос в google
<form action="conectBD.php" method="post">
<? $online = mysql_connect("localhost", "root", "");
$connect = "<input type="submit" name="connect" value="подключиться к серверу MySQL" />";
$disconect = "<input type="submit" name="disconnect" value="отключиться от сервера MySQL" />";
if (!isset($online)) {$button = $connect;} else {$button = $disconnect;}
echo $button ; ?>
</form>
проблемы с переменными $connect и $disconect
помогите
grat1, экранируйте кавычки \" (rtm (http://docs.php.net/manual/ru/language.types.string.php))
вместо isset используйте empty, ибо $online определена.
спасибо :) заработала
тогда какая разница между ними
?№2 как читать isset ?
?№3 как читать empty ?
if (!empty($online))
из googla
Функция empty —определяет, установлена ли переменная.
Функция isset —Функция определяет, установлена ли переменная
empty (http://docs.php.net/manual/ru/function.empty.php) учитывает пустоту переменной.
if (empty($online))
т.е. вместо if (!isset($online)) {$button = $connect;} else {$button = $disconnect;} »
лучше так
$button = (empty($online)) ? $connect : $disconnect;
<? $online = mysql_connect("localhost", "root", "");
$connect = "<input type=\"submit\" name=\"connect\" value=\"подключиться к серверу MySQL\" />"; $disconect = "<input type=\"submit\" name=\"disconnect\" value=\"отключиться от сервера MySQL\" />";
$button = (!empty($online))||(isset($_POST['connect'])) ? $connect and header ("refresh");die() : $disconnect; $button = (empty($online))||(isset($_POST['disconnect'])? $disconnect and header ("refresh");die() : $connect;
?>
<head>
<title>Untitled Document</title>
</head>
<body>
<form action="q123.php" method="post"> <? echo $button ;?>
</form>
</body>
</html>
sham помоги не получается создать кнопку выкл вкл MySQL
$button = (!empty($online))||(isset($_POST['connect'])) ? $connect and header ("refresh");die() : $disconnect; $button = (empty($online))||(isset($_POST['disconnect'])? $disconnect and header ("refresh");die() : $connect; »
это не будет работать, тут для ясности лучше обычную конструкцию if(){....}else{....} с несколькими строками.
header ("refresh") »
а это откуда? В протоколе HTTP не видел такого. Для перегрузки может быть примерно это
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
ааа вешаюсь уже не знаю что придумать
кнопка включения и выключения MySQL php
<? $online = mysql_connect("localhost", "root", "");
$connect = "<input type=\"submit\" name=\"connect\" value=\"подключиться к серверу MySQL\" />";
$disconect = "<input type=\"submit\" name=\"disconnect\" value=\"отключиться от сервера MySQL\" />";
if (!empty($online))
{$button = $connect;}
elseif(empty($online))
{$button = $disconnect;}
elseif (isset($_POST['connect']))
{header ("http://www.my.ru/we12.php"); $button = $disconnect; }
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="we12.php" method="post">
<? echo $button ;?>
</form>
</body>
</html>
почему ????после того как нажмешь подключиться не показывает кнопку отключиться
у меня такое ощущение что во всем виновата header()
или с логикой мышления у меня проблемы :(
<?php
$online = mysql_connect("localhost", "root", "");
$connect = "включено";
$disconnect = "выключено";
if (!empty($online)) {$button = $disconnect;}
elseif(empty($online)) {$button = $disconnect;}
else { die(mysql_error());}
if (isset($_POST['connect']))
{ //header ("refresh") ;
//header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
header ("Location: q123.php");
}
?>
<head>
<title></title>
</head> <body>
<form action="q123.php" method="post">
<table border="1" >
<tr>
<th><?php echo $button; ?></th>
</tr>
<tr>
<td>
<input type="submit" name="connect" value="подключиться к серверу MySQL" />
</td>
<td>
<input type="submit" name="disconnect" value="отключиться от сервера MySQL" />
</td>
</tr>
</table>
</form>
</body>
</html>
я уже замучился подскажите кто нибудь
думаю опять на header
как обновить страницу в php без header ?
http://en.wikipedia.org/wiki/Meta_refresh
считается нежелательным, но браузеры поддерживают.
<meta http-equiv="refresh" content="0" /> можно еще через window.location
Но у вас непонятно, зачем перегружать то.
grat1, что-то мне кажется ты чушью занимаешся.
Здравствуйте. Никак немгоу понять почему preg_replace экранирует символы, а preg_match нет. Вот пример:
$string="O' yes";
preg_match("/^(.*)$/i",$string,$array);
print_r($array);, выведет Array ( [0] => O' yes [1] => O' yes ) ,но если написать
$string="O' yes";
preg_replace("/^(.*)$/ei","\$array=\"$1\"",$string);
print_r($array);, выведет O\' yes
Я могу конечно использовать preg_match, но мне в качестве входящих паттернов, и строк массивы, так что кроме preg_replace, больше ничего не подходит. Экранирование в php.ini отключено, все три директивы (
magic_quotes_qpc,magic_quotes_runtime,magic_quotes_sybase) выключены. Помогите пожалуйста.
"/^(.*)$/ei" »
флаг e необязателен, и разберитесь с кавычками...
preg_replace('/^(.*)$/i', $array . '="${1}"', $string);
$array*.*'="${1}"' »
ваш пример почему-то у меня не сработал((
В preg_replace я использую модификатор "e", для того чтобы вывести данные из круглых скобок в внешнею переменную. Например в своем приведенном примере выше я переменной array дал значение того что было у круглых скобках ("\$array=\"$1\""). Если вы знаете другой способ вывести информацию та что была в круглых скобках в переменную в preg_replace, то напишите пожалуйста.
По-моему я нашел еще одну свою ошибку.
$string="O\' yes";
$string2 = print_r($string,true);
echo $string2; - это выведет так как и должно быть, то есть O\' yes , но если написать вместо print_r var_export, то оно выведет 'O\\\' yes' , почему оно экранирует?
JON4, здраствуйте. С такими запросами лучше на фриланс-биржу.
1 Можно, форум ставится отдельно.
2 Это более конкретно, но я не могу дать конкретный совет. А примерно, - нарисовать заранее нужные цвета. Потом их подкладывать.
я использую модификатор "e", для того чтобы вывести данные из круглых скобок в внешнею переменную »
Это другое дело. Ваш вариант не прокатит, ибо при флаге "e" совпадение регулярного выражение в тексте заменяется на тот текст, что возвратится в результате выполнения кода в строке замены. В вашем случае это true/false (результат присвоения переменной), т.е. пустая строка - текст удалится. Чтобы было как надо, нужно сделать функцию, которая выполняет этот код, и возвращает текст обратно. Например.
function test($text)
{
global $array;
$array = $text;
return $text;
}
$string = preg_replace('/^(.*)$/ie', 'test(\'${1}\')', $string);
Код для примера, и так не делается. Для присвоения всех совпадений переменной служит preg_match_all (http://docs.php.net/manual/ru/function.preg-match-all.php)
, но если написать вместо print_r var_export, то оно выведет
Код:
'O\\\' yes' »
var-export (http://docs.php.net/manual/ru/function.var-export.php) - выдает PHP-код, т.е. с экранами служебных символов. Дополнительные слеши нужны для экранирования экрана кавычки.
Я могу конечно использовать preg_match, но мне в качестве входящих паттернов, и строк массивы, так что кроме preg_replace, больше ничего не подходит. »
для массивов существует foreach
Спасибо!Ваш вариант не прокатит, ибо при флаге "e" совпадение регулярного выражение в тексте заменяется на тот текст, что возвратится в результате выполнения кода в строке замены. В вашем случае это true/false (результат присвоения переменной), т.е. пустая строка - текст удалится. » - да, вы правы, но у меня почему-то так работало.... А так вообщем уже разобрался, огромное спасибо!!!
Igor_I -согласен -пока что учимя
учу php на простых примерах
после прочтения статьи Тонкости boolean FALSE и конструкции die() в php (http://www.wiadw.ru/?id=5)
у меня появился ? как проверить подключение
<?php
$onlineBD = mysql_connect("localhost", "root", "");
//mysql_close($onlineBD);
?>
<html>
<head><title></title>
</head>
<body>
<?php
if (!empty($onlineBD)){
die("ошибка подключения к MySQL");
}
else {echo "подключенно";
}
?>
</body>
</html>
mysql_close - закрываю открываю одно и то же сообщение выходит
- да, вы правы, но у меня почему-то так работало.... »
preg_replace("/^(.*)$/ei","\$array=\"$1\"",$string); » работает только присвоение переменной (не замена текста), но если есть флаг e, то для строк лучше использовать одинарные кавычки (они не парсятся), тогда экраны не нужны, и совпавший текст будет экранироваться правильно перед вставкой в строку замены.
работает только присвоение переменной (не замена текста) »
Аааа, теперь понял. Мне от входящий строки ничего не нужно, нужно только то что остается в переменной.
А теперь такой вопрос, если я часто использую паттерн(допустим такой:
$pattern='/(?<=header"><a HREF=")[a-zA-Z\/_]*.[0-9]*\/">([-`#^\[\];|№_~+=!?{}«»@$%&*()\/"\':.,a-zа-яёіїєґ0-9\s]+)(?=<\/a>)/i'; ), то имеет ли смысл использовать модификатор "S" - вот его описание: "В случае, если планируется многократно использовать шаблон, имеет смысл потратить немного больше времени на его анализ, чтобы уменьшить время его выполнения. В случае, если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для фиксированных шаблонов, не содержащих переменных ссылок."
???
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC