Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: что же здесь не так??
Форумы портала PHP.SU » » Вопросы новичков » что же здесь не так??

Страниц (2): [1] 2 »
 

1. просто даня - 01 Апреля, 2012 - 14:39:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include 'data/conf/config.php';
  3. if(!isset($_GET['user'])) {
  4. echo 'Все учетные записи:';
  5. foreach ($user as $up) {
  6. echo '<br><a href="?user='.$up[0].'">'.$up[0].'</a>';
  7. } }
  8. elseif(isset($_GET['user'])) {
  9.  
  10. if(in_array($_GET['user'], $user[0]) || in_array($_GET['user'], $user[1]) || in_array($_GET['user'], $user[2])) {
  11. echo 'Существование учетной записи '.$_GET['user'].' подтверждено. Вы как главный администратор можете управлять учетной записью пользователя.';
  12. if(in_array($_GET['user'], $user[0])) {
  13. echo '
  14. <form action="?operation=edit_account" method="post">
  15. <input type="hidden" name="login" value="'.$user[0][0].'">
  16. <b>login:</b><br><input type="text" name="newlogin" value="'.$user[0][0].'"><br>
  17. <input type="hidden" name="pass" value="'.$user[0][1].'">
  18. <b>password:</b><br><input type="text" name="newpass" value="'.$user[0][1].'"><br>
  19. <input type="submit" value="Изменить">
  20. </form>
  21. ';
  22. }
  23.  
  24. if(in_array($_GET['user'], $user[1])) {
  25. echo '
  26. <form action=?operation=edit_account method=post>
  27. <input type=hidden name=login value='.$user[1][0].'>
  28. <b>login:</b><br><input type=text name=newlogin value='.$user[1][0].'><br>
  29. <input type=hidden name=pass value='.$user[1][1].'>
  30. <b>password:</b><br><input type=text name=newpass value='.$user[1][1].'><br>
  31. <input type=submit value=Изменить>
  32. </form>
  33. ';
  34. }
  35.  
  36. if(in_array($_GET['user'], $user[2])) {
  37. echo '
  38. <form action=?operation=edit_account method=post>
  39. <input type=hidden name=login value='.$user[2][0].'>
  40. <b>login:</b><br><input type=text name=newlogin value='.$user[2][0].'><br>
  41. <input type=hidden name=pass value='.$user[2][1].'>
  42. <b>password:</b><br><input type=text name=newpass value='.$user[2][1].'><br>
  43. <input type=submit value=Изменить>
  44. </form>
  45. ';
  46. }
  47.  
  48. } else {
  49. echo 'Учетная запись '.$_GET['user'].' не существует';
  50. }
  51. }
  52. elseif($_GET['operation'] == "edit_account") {
  53.  
  54. $pass = $_POST["pass"];
  55. $newpass = $_POST["newpass"];
  56.  
  57. $files = file('data/conf/config.php');
  58. foreach ($files as $key=>$value)
  59. {
  60. $files[$key]=str_replace($pass, $newpass, $value);
  61. }
  62.  
  63. $f = fopen("data/conf/config.php","w+");
  64. foreach ($files as $keys=>$values)
  65. {
  66. fwrite($f,$values);
  67. }
  68. fclose($f);
  69.  
  70. echo "<h2>Пароль " . $pass . " пользователя " . $_POST["login"] . ", был изменен на " . $newpass . "</h2>";
  71.  
  72. $login = $_POST["login"];
  73. $newlogin = $_POST["newlogin"];
  74.  
  75. $files = file('data/conf/config.php');
  76. foreach ($files as $key=>$value)
  77. {
  78. $files[$key]=str_replace($pass, $newlogin, $value);
  79. }
  80.  
  81. $f = fopen("data/conf/config.php","w+");
  82. foreach ($files as $keys=>$values)
  83. {
  84. fwrite($f,$values);
  85. }
  86. fclose($f);
  87.  
  88. echo "<h2>Логин " . $login . " , был изменен на " . $newlogin . "</h2>";
  89. }
  90. ?>



что то здесь не так, не знаю где ошибка но логин и парол не изменяет, поправьте пожалуйста что здесь не так, я уже по частям все както сам собрал, почти все написано мною, помогите пожплуйста, ошибок не выдает но неработает в чем ошибка я так понять и не могу...
2. tato - 01 Апреля, 2012 - 14:52:03 - перейти к сообщению
Формы отсылают пост запросы ( $_POST ).
3. просто даня - 01 Апреля, 2012 - 14:53:56 - перейти к сообщению
спасибо Кеп) Это и ежу понятно)
4. tato - 01 Апреля, 2012 - 15:02:24 - перейти к сообщению
Я к тому, что лучше сделать так:

PHP:
скопировать код в буфер обмена
  1. if( isset( $_POST['pass'] ) )
  2. {
  3.     ...
  4. }


У тебя получается, что если $_GET['operation'] == "edit_account", то идет смена пароля,
а не факт, что $_POST['pass'] и $_POST['newpass'] вообще существуют.
То же самое с логином.
5. просто даня - 01 Апреля, 2012 - 15:07:01 - перейти к сообщению
так дело не в том, почему то не меняет логин и пароль. Подправьте пожалуйста, чтоб правильно работало) я буду только рад за помощь, а то не зря же я столько настрочил кода, из которого одна трития не работает, а если и работает то не правильно, помогите плиз, если найдете ошибки то исправьте их, пожалуйста...
6. tato - 01 Апреля, 2012 - 15:09:51 - перейти к сообщению
Вот это вообще шедевр:
PHP:
скопировать код в буфер обмена
  1.  
  2.     $pass    = $_POST["pass"];
  3.     $newpass = $_POST["newpass"];
  4.    
  5.     $files = file( 'data/conf/config.php' );
  6.    
  7.     foreach ( $files as $key=>$value )
  8.     {
  9.         $files[$key] = str_replace( $pass, $newpass, $value );
  10.     }
  11.    
  12.     $f = fopen( "data/conf/config.php", "w+" );
  13.    
  14.     foreach ( $files as $keys=>$values )
  15.     {
  16.         fwrite( $f, $values );
  17.     }
  18.    
  19.     fclose( $f );
  20.  


Что за файл? что в нем? а точно ли то, что задуманно? А так ли все загрузилось, как Мы хотели?
7. просто даня - 01 Апреля, 2012 - 15:19:48 - перейти к сообщению
этот кусок кода работает отлично, мне его кагдато давно дали на этом форуме, так что не надо на этот скрипт сваливать) дело в моих кривых руках но где эти руки ошибку сделали даже я не знаю)
8. OrmaJever - 01 Апреля, 2012 - 15:25:32 - перейти к сообщению
http://www.phpfaq[dot]ru/debug
9. просто даня - 01 Апреля, 2012 - 15:28:17 - перейти к сообщению
блин я попросил мне помочь отладить этот скрипт а не давать ссылки на сайта со статьями.

Мне кажется, или здесь не кто не знает как сделать чтоб этот скрипт стал нормально работать? Судя по всему опять не кто не поможет?? да?
10. tato - 01 Апреля, 2012 - 15:28:45 - перейти к сообщению
просто даня, Ты меня извини канечно, но Тебе буквально на днях тоже скрипт дали, и он тоже сработал отлично.
(Добавление)
файл дай посмотреть data/conf/config.php
11. просто даня - 01 Апреля, 2012 - 15:33:27 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $user = array (
  3. "0" => array("administrator", "bita98"),
  4. "1" => array("ml.admin", "select11"),
  5. "2" => array("moderator", "argument19")
  6. );
  7. ?>
12. tato - 01 Апреля, 2012 - 15:43:32 - перейти к сообщению
Вот он прям так и выглядет?
(Добавление)
Если да, то в foreach попадает:

PHP:
скопировать код в буфер обмена
  1.  
  2. Array
  3. (
  4.     [0] => <?
  5.     [1] => $user = array (
  6.     [2] => "0" => array("administrator", "bita98"),
  7.     [3] => "1" => array("ml.admin", "select11"),
  8.     [4] => "2" => array("moderator", "argument19")
  9.     [5] => );
  10.     [6] => ?>
  11. )
  12.  
13. OrmaJever - 01 Апреля, 2012 - 15:48:26 - перейти к сообщению
просто даня пишет:
блин я попросил мне помочь отладить этот скрипт а не давать ссылки на сайта со статьями.

Мне кажется, или здесь не кто не знает как сделать чтоб этот скрипт стал нормально работать? Судя по всему опять не кто не поможет?? да?

Без вопросов 5$ и скрипт будет летать. Мы не индусы что бы исправлять такие скрипты за просто так. Мы здесь помогаем разобратся, а не правим за всеми. Когдай найдёте ошибку и сократите вопрос до 2-3 строчек кода - пишите, а сейчас я думаю помочь нечем.
14. просто даня - 01 Апреля, 2012 - 15:53:55 - перейти к сообщению
я знаю что происходит с файлом при функции file да и разница то в этом, изменяет только одно слово функцией str_replace не вижу здесь нечего противоистественного.

OrmaJever а 5$ не много ли?? за эту помощь и 2$ будет достаточно...
15. snikers987 - 01 Апреля, 2012 - 16:05:10 - перейти к сообщению
просто даня пишет:
я знаю что происходит с файлом при функции file да и разница то в этом, изменяет только одно слово функцией str_replace не вижу здесь нечего противоистественного.

OrmaJever а 5$ не много ли?? за эту помощь и 2$ будет достаточно...


Ну вот и мануалы тебе в руки, научишься - будешь всем помогать за 2$, лично я за такие "деньги" даже твой "код" не стал бы разбирать. имхо конечно.

 

Powered by ExBB FM 1.0 RC1