|
|
|
| Как такое может быть:
<?php
...
print "$usern = $name[$sname] && $userp = $pass[$sname]<br>"; //
if($usern == $name['$sname'] && $userp == $pass['$sname'])
...
?>
|
Выводит :
123 = 123 && 123 = 123
Но проверку не проходит.
А если так:
<?php
...
print "$usern = $name[$sname] && $userp = $pass[$sname]<br>"; //
if($usern == $name[$sname] && $userp == $pass[$sname])
...
?>
| То в любом случае проверку проходит. | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 14:38)
| | В одинарных кавычках переменные PHP не интерполируются, а просто пишуются как есть $sname. Подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=130. | |
|
|
|
|
|
|
|
для: cheops
(28.03.2006 в 14:49)
| | А в двойных, так же само работает как и в одинарных, не когда не проходит проверку,
а выводит:
123 = 123 && 123 = 123 | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 15:12)
| | Что значит $name[$sname] ? | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2006 в 15:22)
| | Это массив. | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 15:28)
| | Массив нельзя индексировать им же самим. | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2006 в 15:32)
| | разве $sname одно и то же что $name ? | |
|
|
|
|
|
|
|
для: isset
(28.03.2006 в 16:54)
| | упс.... прошу прощения. Недоглядел. | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 15:12)
| | $name массив одномерный или двумерный? | |
|
|
|
|
|
|
|
для: cheops
(28.03.2006 в 22:21)
| | одномерный | |
|
|
|
|
|
|
|
для: Новый-чек
(30.03.2006 в 17:09)
| | а как ты определяешь что проверка не прошла?
в двойных кавычках должно работать.
может быть забыл {} поставить? | |
|
|
|
|
|
|
|
для: kasmanaft
(30.03.2006 в 18:29)
| | Не, не забыл. | |
|
|
|
|
|
|
|
для: Новый-чек
(30.03.2006 в 18:31)
| | все-таки как ты проверяешь что проверка не прошла? (можешь привести участок кода побольше)
вот, посмотри. это работает
<?php
$usern = 123;
$name["$sname"] = 123;
$userp = 123;
$pass["$sname"] = 123;
print "$usern = $name[$sname] && $userp = $pass[$sname]<br>";
if($usern == $name["$sname"] && $userp == $pass["$sname"])
echo "da";
else
echo "net";
?>
|
то есть ошибка где то в другом месте | |
|
|
|
|
|
|
|
для: kasmanaft
(30.03.2006 в 18:39)
| | Вот:
<?php
$name = file("rname.txt");
$pass = file("rpass.txt");
$sname = count($name);
while ($sname >= 0)
{
print "$usern = $name[$sname] && $userp = $pass[$sname]<br>";
if($usern == $name["$sname"] && $userp == $pass["$sname"])
{
...
}
$sname -=1;
}
?>
|
А в файлах rname.txt и rpass.txt, записано только 123. | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 14:38)
| | Дать ещё более большой кусок кода? | |
|
|
|
|
|
|
|
для: Новый-чек
(30.03.2006 в 18:57)
| | можно :))
я же просил то что внутри if'a :)
здесь все правильно вроде. | |
|
|
|
|
|
|
|
для: kasmanaft
(30.03.2006 в 19:19)
| | Если учесть, что на первой же итерации цикла идет обращение к несуществующим элементам массива, то правильно именно вроде. | |
|
|
|
|
|
|
|
для: kasmanaft
(30.03.2006 в 19:19)
| | То что внутри if'а работает, я помню что работало, и я не чего там не менял. | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 14:38)
| | Вот это все что над if'ом:
<form method="get" action="index.php">
<p>ник:</p>
<input type="text" name="usern">
<br>
<p>пароль:</p>
<input type="password" name="userp">
<br>
<input type="submit" value="войти">
</form>
<?php
$name = file("rname.txt");
$pass = file("rpass.txt");
$sname = count($name);
while ($sname >= 0)
{
if (empty($usern) || empty($userp))
{
?>
<h3>
<?php
print "Введите ник И пароль.";
?>
</h3>
<?php
}
else
{
print "$usern = $name[$sname] && $userp = $pass[$sname]<br>";
if($usern == $name["$sname"] && $userp == $pass["$sname"])
{
...
}
?>
|
Ну вот, после такого кода, если ввести в обе формы "123", тогда все равно проверку не пройдёт. | |
|
|
|
|
|
|
|
для: Новый-чек
(30.03.2006 в 19:30)
| | я имел ввиду "ошибка не здесь" :))
по-моему ничего страшного не произойдет из-за обрещения к несущ. элементам...
конечно можно попробовать вот так (вернее так будет правильнее)
$sname = count($name) - 1;
к тому же можно вот этот кусок кода:
if (empty($usern) || empty($userp))
{
?>
<h3>
<?php
print "Введите ник И пароль.";
?>
</h3>
<?php
}
else ...
|
заменить вот этим
if (empty($usern) || empty($userp))
print "<h3> Введите ник И пароль</h3>.";
else ...
|
по-моему так удобнее :)
попробуй написать вот так
...
if($usern == $name["$sname"] && $userp == $pass["$sname"])
{
echo 'работает';
}
...
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(30.03.2006 в 19:55)
| | попробуй написать вот так
...
if($usern == $name["$sname"] && $userp == $pass["$sname"])
{
echo 'работает';
}
...
|
Ну а я как написал? | |
|
|
|
|
|
|
|
для: Новый-чек
(30.03.2006 в 19:30)
| | Извините, не выдержал. Нервов не хватило.
<?php
session_start();
$login = ''; $usern = ''; $userp = '';
if(isset($_REQUEST['logout']) && $_REQUEST['logout'] == '1')
{
if(isset($_COOKIE['userp']))
setcookie ("userp", "", time() - 3600);
header("Location: ?logout=0");
exit();
}
if( isset($_REQUEST['usern'])
&& isset($_REQUEST['userp'])
&& !empty($_REQUEST['usern'])
)
{
$usern = trim($_REQUEST['usern']);
$userp = $_REQUEST['userp'];
if(get_magic_quotes_gpc())
{
$usern = stripslashes($usern);
$userp = stripslashes($userp);
}
}
if($usern != '')
{
$namelist = file("rname.txt");
$passlist = file("rpass.txt");
foreach($namelist as $i => $name)
{
$name = trim($namelist[$i]);
$pass = trim($passlist[$i]);
if($name == $usern && $pass == $userp)
{
$login = $name;
break;
}
}
if($login == '')
$userp = '';
}
if($login == '')
{
if(isset($_COOKIE['userp']))
setcookie ("userp", "", time() - 3600);
?>
Введите ник и пароль:
<form method=post >
<p>ник:</p>
<input type="text" name="usern" value = "<?php echo $usern; ?>">
<br>
<p>пароль:</p>
<input type="password" name="userp">
<br>
<input type="submit" value="войти">
</form>
<?
}
else
{
setcookie('usern', $usern);
setcookie('userp', $userp);
echo "Привет, $usern!</br>";
echo "Если тебе надоело здесь, нажми на <a href=?logout=1>выход</a>!</br></br>";
echo "<a href=?>обновить</a>!</br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 21:00)
| | Мне надо что бы вы мне поправили мой скрипт, а не создали новый. | |
|
|
|
|
|
|
|
для: Новый-чек
(31.03.2006 в 17:26)
| | Так не кто не знает? | |
|
|
|
|
|
|
|
для: Новый-чек
(28.03.2006 в 14:38)
| | Неужели нет разумного ответа на мой вопрос? | |
|
|
|
|
|
|
|
для: Новый-чек
(03.04.2006 в 22:21)
| | Замените Вашу строку
if($usern == $name["$sname"] && $userp == $pass["$sname"])
|
на
if($usern == trim($name["$sname"]) && $userp == trim($pass["$sname"]))
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(03.04.2006 в 23:33)
| | Большое спасибо, теперь всё работает.
А что делает trim? | |
|
|
|
|
|
|
|
для: Новый-чек
(04.04.2006 в 15:57)
| | trim() удаляет начальные и конечные пробельные символы в строке... | |
|
|
|
|
|
|
|
для: cheops
(04.04.2006 в 22:41)
| | Спасибо | |
|
|
|