Гиперссылка в php

levi-de

Новичок
Гиперссылка в php

У меня файл index.php. Как бы это не звучало глупо, не получается сделать из него гиперссылку на 5.php

<?php
if (!$ok)
{
print ("Кнопка OK не нажата");
}
else

{
if ($pass == "12345")
{
ссылка на 5.php
}
else
{
echo "<font color='#FF0000' face='Arial'><Small><Center>Неверный пароль</Center></Small></font>";
}


}
?>
<form action="1.php" method="post">
<input type="password" name="pass" size="20">
<input type="submit" value="ok" name="ok">
</form>


Нельзя меня action, потому, что сообщение о том, что пароль не верный должно появляться именно на странице index.php и в том случае, если пароль равен 12345 - перекинуть пользователя на 5.php в этом же окне.
 

Саня

Guest
Ставь action="index.php" или $_SERVER['PHP_SELF'] или даже оставляй его пустым, затем в случае правильного пароля используй то, что написал SiMM.
Если хочешь, посмотри ещё http://www.php.net/manual/en/function.exit.php
 

levi-de

Новичок
У меня action и есть index.php. И через location пробовал, но 5.php не полностью замещаемт страницу index.php. То есть страница выводится в том месте, где находится php скрипт <?php ... ?> А мне нужно, что бы всё это дело работала как обчная ссылка. Ну можно же сделать как то!!!!

-~{}~ 21.03.04 12:06:

Почитал книжечки... Вроде понял. Только что такое

Warning: Cannot add header information - headers already sent by (output started at c:\projekte\neue\handel.php:2)

Это связано с header, или?
 

IBSN

Новичок
=\ не буду посылать в мануал т.к. ссылку забыл =)))
Короче header() надо помещать в самый верх кода, перед всеми заголовками, пусть он хоть будет самый первой строчкой в коде...
 

levi-de

Новичок
Ну, самой первой строчкой - работает...
А в моём случае - нет.

<Html>
<!--
куча програмного кода
---->

<?php
if (!$enter)
{
echo "Вход в систему";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login = '$login'");
if(!$result || !mysql_num_rows($result))
{
echo Этот пользователь не зарегистрирован";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login='$login' AND passwort='$passwort'");

if(!$result || !mysql_num_rows($result))
{
echo "неверный пароль";
}
else
{
print ("Эта чёртова ссылка");
}
}
}
?>

<!--
куча програмного кода
---->
</Html>



Как бы мне более разумно поступить, что бы ссылка работала? Подскажите пожалуйста, а то уже всё на сайте готово, а только эта мелочь осталась без которой вся красота теряется.
Заранее благодарен.
 

Demiurg

Guest
levi-de
приведи, пожалуйста реальный код.
 

levi-de

Новичок
index.php


<?php
include ("dbase.php"); \\ подключение к базе
?>
<Html>
<Body>
<?php
if (!$enter)
{
echo "Кнопка не "Войти" нажата";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login = '$login'");
if(!$result || !mysql_num_rows($result))
{
echo "Этот пользователь не зарегистрирован";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login='$login' AND passwort='$passwort'");

if(!$result || !mysql_num_rows($result))
{
echo "неверный пароль";
}
else
{
print ("ссылка на файл 10.php");
}
}
}
?>
<form action="index.php" method="post">
Login :<input type="text" size="12" name="login">
<br>
Password: <input type="password" size="12" name="passwort">
<br>
<input type="submit" value=" Войти " name="enter">
</form>
</Body>
</Html>


Задача сделать так, чтобы сообщения об ошибках при вводе логина и пароля выводились на том месте, где расположен php скрипт, а при вводе правильнго логина и пароля перенапраить пользователя на страницу 10.php.

Основная проблемма в том, что я ни как не могу понять, как разместить header ("location: 10.php") в середине скрипта. А очень нужно......
 

fixxxer

К.О.
Партнер клуба
сохранять состояние в переменных.
выводить html после всех условий - в зависимости от того что в переменных.
 

levi-de

Новичок
Подождите секундочку. О каких переменных идёт речь и как сохранять их состояние? Может на моём примере покажете, как это делать? Плиз, помогите! А то уже хостинг купил, время идёт и денежки капают, а сайт вместо того, что бы приносить прибыль, пока вводит в одни убытки...
 

Макс

Старожил PHPClub
А то уже хостинг купил, время идёт и денежки капают, а сайт вместо того, что бы приносить прибыль, пока вводит в одни убытки...
закажи сайт у профессиональной веб-студии.

Странно что тебя еще не послали на http://faq.phpclub.net/headers

Весь основной ПХП-код (работа с БД, header("Location: ...") и т.д.) выноси вверх, чтобы перед ним не было никакого вывода (никакого ХТМЛ-кода).
Вот пример обработки формы:
http://phpclub.ru/talk/showthread.php?s=&threadid=43521
это наиболее правильный для начинающих пример обработки формы (в том числе и в плане размещения ПХП-кода и ХТМЛ)
 

levi-de

Новичок
Так, ребятки, разобрался в header. Только вот первую строчку всё равно влепить обязательно!!! Короче, что бы происходила логическая обработка скрипты, нужно стартануть базу данных MySQL. При чём она должна быть именно перед скриптом, иначе он не будит работать.

include ("dbase.php");
а потом всё остальное, так как в логической обработке задейстованны mysql запросы

dbase.php

<?php
$dbname="users";
mysql_connect ( "localhost" );
@mysql_select_db($dbname);
?>
 

crocodile2u

http://vbolshov.org.ru
Ну - проблему-то решил?
Или еще что-то осталось ? :)

ЗЫ: почитай про то, как отделять пхп-код от хатэмээл
 

valager

Guest
нормально работает этот код:

echo "<script>location.href('5.php');</script>";
 

Breeze

goshogun
Команда форума
Партнер клуба
valager
особенно если отключить JavaScript
 

levi-de

Новичок
Всё, ребятки, разобрался. Всё там просто с помощью header сделать, только ошибка была в том, что я подключал базу через include
 

-=GogA[qwe]=-

Guest
levi-de, напиши адрес, протестить и ... :p :p

Скажу честно (незнаю, почему все молчат) :
PHP:
<?php
if (!$enter)
{
echo "Вход в систему";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login = '$login'");
if(!$result || !mysql_num_rows($result))
{
echo Этот пользователь не зарегистрирован";
}
else
{
$result = mysql_query("SELECT login FROM users WHERE login='$login' AND passwort='$passwort'");

if(!$result || !mysql_num_rows($result))
{
echo "неверный пароль";
}
else
{
print ("Эта чёртова ссылка");
}
}
}
?>
Так вот, в этом коде, если конечно не успел поправить и привел как есть, a страница почти не изменилась с 21.03.04 21:54, одна дырка есть :p :p ... Скажи, хоть проект-то серьёзный и на сколько...

зы. Советую почитать умные статьи по безопастности... поверь их много...
 

levi-de

Новичок
Код я переделал, работает теперь как часы. А проект по крайней мере для меня очень серьёзный. Скоро будит доступен по адресу http://www.link-wd.de
Там сейчас написано release date 22 марта(менять вломы, думал, что успею), но числу к 25 - 27 всё загружу на сервер. Непредвиденные трудности с этим чёртовым location и переводом на немецкий язык.
 
Сверху