Star_s проверьте еще раз как первый так и второй ваши варианты, чудес, знаете ли, не бывает. Куда именно вы дописали код? Почему вы вписали текст "Error: '".mysql_error()."'"; а выводится "E:"? Вряд ли дело в этом, но попробуйте mysql_error($conn); Плюс попробуйте вывести какого типа переменная $r: var_dump($r);
вписал в фунуцию querry() сюда: PHP: ... if( $select == 0 ) { $ar = mysql_affected_rows($r); echo "Err: '".mysql_error($conn)."'"; mysql_close($conn); return $ar; } ... var_dump($r): И вот, что странно - решил проверить что возвращает функция mysql_query($querry, $conn) - дописал: PHP: ... $r = mysql_query($querry, $conn); var_dump($r); это в коде функции querry. И оказывается, mysql_query возвращает bool(true), а ведь в документации написано: то есть она должна возвращать ресурс. но, начав читать дальше, я узнал что Ясно. Но как тогда пользоваться mysql_affected_rows(, если ей в качестве параметра нужно указывать resource link_identifier, а не bool? Вот что ещё в доке написано: Почему-то кажется, что у меня выскакивает ошибка именно поэтому. Что такое транзакция и что такое подтверждение? Знающие люди, объясните пожалуйста!
Я всё понял! Ошибка выскакивает и в том и в другом случае, просто в первом случае была проверка была такая (сразу редирект и ошибку не видно): PHP: if( ($r = querry('INSERT INTO `testtable` VALUES (222, "'.$title.'", "'.$text.'")', 0)) == -1 ) $content .= "\t\t\tОшибка в базе данных."; else header('Location: /admin/?module=papers'); То есть, я проверял, не вернула ли функция mysql_affected_rows() значение -1 (что означает, что запрос был неудачным). Но запрос был удачным и она возвращала FALSE, т.к. от mysql_query ей в качестве параметра передавался не указатель на ресурс, а TRUE. И если запрос с INSERT, то mysql_query будет всегда возвращать только TRUE или FALSE, а не указатель на ресурс. Потому что всегда изменяется (добавляется) только одна строка! Можно только узнать удачный был запрос или нет!
Star_s с помощью одного INSERT можно добавлять произвольное количество строк. Все, я увидел, где у вас ошибка. http://php.net/mysql_affected_rows - читаем какой параметр принимает функция. Вы передаете ей результат функции mysql_query, а функция принимает указатель на _соединение_, а не на ресурс. То есть должно быть: PHP: $ar = mysql_affected_rows($conn); Функция mysql_affected_rows возвращала False не потому, что запрос удачен, а потому что передаваемый параметр ошибочен, возбуждалась ошибка и функция возвращала False.
restart_05 функция gen - генерирует ключ для заданного логина, функция check - проверяет ключ данному логину и возвращает True - если ключ правилен, и False - в другом случае. Переменная $rand_str - произвольная длинная строка для обеспечения безопасности генератора PHP: $rand_str = '2jt9vjs045@_u8j%^E#smv889475^%'; function gen($login) { global $rand_str; for ($i=0;$i<7;$i++) $login = md5($rand_str.$login,$i % 2); return md5($login); } function check($login, $key) { global $rand_str; for ($i=0;$i<7;$i++) $login = md5($rand_str.$login,$i % 2); if (md5($login)===$key) return True; return false; }
restart_05 Если хотите продавать свой скрипт и выдавать лицензии на домен - то ionCube, без внешних модулей это будет трата времени. И не наглейте, "подскажите" и "сделайте все вместо меня, со свистелками и прочим, как мне надо" - на античате прокатывает редко
Я же не говорю сделайте, подталкните на мысль, дальше я сам. Мне просто нужно получать ключ в формате xxxx-xxxx-xxxx-xxxx.
ну попробуй вместо переменной $login использовать 4 переменные и выводить их в том формате, какой тебе нужен. Основную мысль тебе подсказали - экспериментируй.
И что нового ты открыл мне ??? Выводи в том формате в каком тебе нужно )) Я и спрашиваю как мне вывести...
П****ц, программисты. explode() ? for () ? while() ? preg_match() ? Мало ф-ций и конструкций языка? 1.Можно разделить explode(); 2.Можно в цикле обойти и пихать нужное кол-во символов в массив. 3.Можно с регекспами поработать, только в данном случае с експлоде() будет легче. Например, делаешь разделитель и все. Домен узнаешь через parse_url(); => host Или через те же регулярки. http://php.net/manual/en/function.parse-url.php // Gifts: здесь не матерятся
руками, используя интерпретатор. PHP: $text = '1234567890ABCDEF'; echo implode('-',str_split($text,4)); Моя функция выводит 32 символа, дарю еще одну функцию http://php.net/substr Теперь у вас есть все что вам нужно
Есть файл вида loginass:email . Нужно оставить вида loginass , Как сделать? Знаю, что можно использовать explode(), но не могу допереть что то как это всё в цикл запихнуть) Напишите код плиз) Чтобы на выходе новый файл был.
PHP: preg_replace("#(.+?):(.+?):(.+?)#im","$matches[1]:$matches[2]",$login_pass_email,$matches); либо PHP: //$array - массив с login:pass:email foreach($array as $key => $value) { list($login,$pass,$email) = explode(:,$value); echo "$login : $pass"; }
PHP: <? $x = @file_get_contents('file.txt'); $x = explode("\n", $x); foreach($x as $v) { $s = explode(":", $v); @file_put_contents('out.txt', $s[0] . $s[1] . "\r\n", FILE_APPEND); } #если нужно, чтобы в этот файл писалось убираем append и пишем изначальное имя file.txt ?>