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. Каролина - 11 Мая, 2012 - 20:23:29 - перейти к сообщению
помогите исправить код
PHP:
скопировать код в буфер обмена
  1. <form action="<?PHP $_SERVER['PHP_SELF'] ?> method="post">
  2. Email<inpyt type="text" name="email">
  3. Пароль<inpyt type="password" name="pass">
  4. </form>
  5. <?PHP
  6. $pass=$_POST['pass'];
  7. $Email=$_POST['Email'];
  8. if(empty($Email) ||  empty($pass))
  9. {
  10. echo"вы не ввели Пароль или Email";
  11. }
  12. else
  13. {
  14. if($_SESSION['Email']=$Email or $_SESSION['pass']=$pass)
  15. echo"вы вошли";
  16. else
  17. echo"вы не правельно чот ввели";
  18. }
  19. ?>
2. Bio man - 11 Мая, 2012 - 20:43:17 - перейти к сообщению
= это присваивание. Сравнение == или ===
3. Symby - 11 Мая, 2012 - 20:46:54 - перейти к сообщению
А не лучше так?
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="<?PHP $_SERVER['PHP_SELF'] ?> method="post">
  3. Email<inpyt type="text" name="email">
  4. Пароль<inpyt type="password" name="pass">
  5. </form>
  6. <?php
  7.  
  8. $pass = $_POST['pass'];
  9. $Email = $_POST['Email'];
  10.  
  11. if (empty($Email) || empty($pass)) exit "вы не ввели Пароль или Email";
  12. if($_SESSION['Email'] == $Email || $_SESSION['pass'] == $pass) echo"вы вошли";
  13. else echo"вы не правельно чот ввели";
  14.  
  15. ?>
  16.  


И вообще, где вы сессию открываете? Вид вы проверяете в глобальном массиве сессий, там вид пусто.
4. Каролина - 11 Мая, 2012 - 20:51:30 - перейти к сообщению
у тя ошибка в 9строке
5. Green - 11 Мая, 2012 - 20:54:57 - перейти к сообщению
Вы, возможно, не поверите... Но тут все не правильно. Не понял

Начнем с того, что:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="<?PHP $_SERVER['PHP_SELF'] ?>
  3.  


Надо заменить на:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="<?PHP echo($_SERVER['PHP_SELF']); ?>"
  3.  

Не понял

Далее, после HTML формы, всё действие надо заключить в условие, которое проверяет, например, нажата ли вообще кнопка в форме. Читайте про isset().
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if($_SESSION['Email']=$Email or $_SESSION['pass']=$pass)
  3.  

Вообще не пойми что. Не понял

Следует заменить на:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if($_SESSION['Email'] == $Email or $_SESSION['pass'] == $pass)
  3.  

Но, "вы вошли" не отобразится никогда. Ибо таких сессий не существует вовсе.
Вы сделайте, чтобы если не пусты $pass и $Email, то в сессии записываются их значения.

Работать у Вас все равно ничего не будет. Все переписывать надо. Логически вообще все не верно построено.

И еще, не inpyt, а input.
6. Bio man - 11 Мая, 2012 - 20:55:17 - перейти к сообщению
Symby пишет:
А не лучше так?
Нет, так ничем не лучше.
Каролина пишет:
у тя ошибка в 9строке
Извините меня модераторы, но меня бесят такие посты. Данное сообщение не несет никакой смысловой нагрузки, так почему бы его не оформить как оффтоп или лучше вообще не писать?
7. sKaa - 11 Мая, 2012 - 21:02:03 - перейти к сообщению
Спойлер (Отобразить)
8. Symby - 11 Мая, 2012 - 21:02:55 - перейти к сообщению
Каролина пишет:
у тя ошибка в 9строке

Ошибка в том что не существуют такие данные в массиве пост, может сами найдете ошибку?
9. avtor.fox - 11 Мая, 2012 - 21:05:05 - перейти к сообщению
Bio man не кипятись Улыбка

Вообще что бы отправить форму саму на себя, достаточно


sKaa, не чуди. Ты тоже решил <?PHP $_SERVER///;?> Однако
Просто ужасная проверка формы Ниндзя
10. Green - 11 Мая, 2012 - 21:06:05 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         if(isset($_SESSION["email"]) == TRUE AND isset($_SESSION["pass"]) == TRUE) {
  4.            exit("Вы уже выполниили вход в аккаунт!");
  5.         }
  6.    
  7.    if(isset($_POST["go"]) == TRUE) {
  8.        $email = $_POST["email"];
  9.        $pass  = $_POST["pass"];
  10.        
  11.        if(empty($email) == TRUE OR empty($pass) == TRUE) {
  12.            exit("Вы ничего не ввели!");
  13.        } else {
  14.            $_SESSION["email"] = $email;
  15.            $_SESSION["pass"] = $pass;
  16.        }
  17.    }
  18. ?>
  19. <form action="<?PHP echo($_SERVER["PHP_SELF"]); ?> method="POST">
  20.     <b>Email:</b> <br /> <input type="text" name="email">     <b>Пароль:</b> <br /> <input type="password" name="pass"> <br />     <button name="go">Войти >></button>
  21. </form>
  22.  

Вот накидал вариант. Однако

Печально. Форум испортил код чуток. Подмигивание
11. sKaa - 11 Мая, 2012 - 21:07:29 - перейти к сообщению
avtor.fox, че вы меня морозите, я бухой, даже внимания не обращаю на такие мелочи, и так да здравствует моя совесть, что я соизволил дримвейвер запустить, а не на коленке писать Улыбка
(Добавление)
Green, фигня, я предложил более гибкий вариант Улыбка Жаль ооп для каролины пока непостижим Улыбка
12. avtor.fox - 11 Мая, 2012 - 21:09:10 - перейти к сообщению

sKaa. Пьяным?! Да ещё и в "погоде-мечте"?! Да Вы батенька извращенец Улыбка
13. sKaa - 11 Мая, 2012 - 21:12:36 - перейти к сообщению

Я религиозный фанатик, меня редко обламывает скоротать вечерок за парой строчек кода, это только в последнее время я стал подкреплять мотивацию такого времяпрепровождения баночками пива, что часто пропорциональны строчечкам кода Улыбка, раньше такого я себе позволить не могу, а сейчас ..... бей посуду! - я плачу!!!.



Каролина ! Я те все волосы повыдергаю если ты мне спасибо не нажмешь!!!! ))) И всем остальным тоже кто проявлял внимание к твоим непонятным кусочкам полу-кода бл....ь!!!
14. Green - 11 Мая, 2012 - 21:18:31 - перейти к сообщению
sKaa пишет:
avtor.fox, че вы меня морозите, я бухой, даже внимания не обращаю на такие мелочи, и так да здравствует моя совесть, что я соизволил дримвейвер запустить, а не на коленке писать Улыбка
(Добавление)
Green, фигня, я предложил более гибкий вариант Улыбка Жаль ооп для каролины пока непостижим Улыбка

Улыбка Ну так я поэтому такой простой компактный вариант накидал, дабы ТС поняла как вообще это должно работать.

Я конечно же могу предоставить вариант, в котором учтены любые мелочи)
Но в таком случае, я уверен, ТС ничего не поймет в коде, и опять попытается свое написать)))) Улыбка

Я как бы написал на понятном ей стиле программирования, если можно так сказать. Улыбка
15. sKaa - 11 Мая, 2012 - 21:26:38 - перейти к сообщению
Green, мое мнение - плохие примеры кода еще больше подталкивают новичков к стилю кода "говнокод" или "индусский код" тут еще важно учитывать склад ума новичка по скольку оба эти стиля совершенно разные, и зависят не столько от задачи приложения, а от количества строк в нем или несуразных решений простых задач, но ничего хорошего в них обоих нету.
В том время как красивые и в тоже время простые примеры без лишних плясок с бубном мотивируют новичков на совершенствование навыков! - имхо!
(Добавление)
Немного дополнил свой код проверкой состояния сессий Улыбка
(Добавление)
И <? echo $_SERVER['PHP_SELF']; ?> легко можно заменить на <?=$_SERVER['php_self']?>, конечно это функция требует включенной директивы в пхп.ини (short_open_tag но могу ошибаться), обычно она включена если всякие денверы стоят.
(Добавление)
И вообще пока не пришла ТС и не занялась обыденным копи-пастом я заменил :
form action="<?=$_SERVER['php_self']?>"
на : так наверное будет самое лучшее решение, но необходимо всё-же тестить, у меня не установлены сейчас ни апач ни модуль пхп ессно к нему, пишу на холстах так сказать Улыбка
form action="<?='http://' . $_SERVER['HTTP_HOST'] . '/' . current(explode('?', $_SERVER['PHP_SELF']))?>"

 

Powered by ExBB FM 1.0 RC1