[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите найти ошибку в switch
XoxMa
Всем привет,

Помогите мне найти ошибку! Когда я загружаю index.php, то страница долго загружается и пишет, что её невозможно отобразить.
Думаю, тут будет понятно, что в config.php хранится только несколько переменных о бд. Этот скрипт предназначен для регистрации пользователей, вход, выход..

Код
<?php

switch(page)
{
    case true:
    true();
    break;

    case check:
    check();
    break;

    case account:
    account();
    break;

    case logout:
    logout();
    break;

    default:
    login();
}

    function login()
    {
    session_start();

if (isset($_SESSION['myusername']))
    {
    header ("Location: index.php?page=account");
    }
else {
    echo "

<html><body>
<table width='300' border='0' align='center' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
<tr>
<form name='form1' method='post' action='index.php?page=check'>
<td>
<table width='100%' border='0' cellpadding='3' cellspacing='1' bgcolor='#FFFFFF'>
<tr>
<td colspan='3'><strong>Member Login</strong>
</td>
</tr>
<tr>
<td width='78'>Username</td>
<td width='6'>:</td>
<td width='294'><input name='myusername' type='text' id='myusername'></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name='mypassword' type='text' id='mypassword'></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type='submit' name='Submit' value='Login'></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</body></html>

";
}
    }

    function true()
    {
    session_start();

// if(!session_is_registered(myusername)) {

if (!isset($_SESSION['myusername'])) {
header("location:index.php");
}
    else {
    echo 'вы успешно зашли как '.$_SESSION['myusername'];
//    $usercookie = $_SESSION['myusername'];
//    setcookie("myusername", $usercookie, time() + 600);
}
    }

    function check()
    {
require_once ("config.php");

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");

session_start();

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from signup form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM $table WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if ($count == 1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
// session_register("myusername");
// session_register("mypassword");
$_SESSION['myusername'] = "$myusername";
$_SESSION['mypassword'] = "$mypassword";
header("location:index.php?page=true");
}
else {
echo "неправильный юзер или пароль";
}
    }

    function account()
    {
    session_start();

if (isset($_SESSION['myusername']))
    {
    echo 'эта инфа только для зарегиных пользователей. привет, '.$_SESSION['myusername'];
}
else {
    echo "вы не зарегины";
}
    }

    function logout()
    {
    session_start();
    session_destroy();
    echo "вы вышли";
    }
?>




Спустя 1 час, 26 минут, 43 секунды (16.02.2008 - 20:04) Sylex написал(а):
Где ты стырил этот скрипт? Понятно, что у тебя так... ты посмотри:

Код
case true:
    true();
    break;


true надо брать в кавычки - "true" и все другие значения.wink.gif
У тебя запускается функция true(); и вызывает бесконечный редирект:
Код
header("location:index.php");


Спустя 10 минут, 10 секунд (16.02.2008 - 20:14) XoxMa написал(а):
Ну вообще-то там не может быть бесконечного редиректа, потому что:
Код
if (!isset($_SESSION['myusername'])) {
header("location:index.php");
}

если нет сессии, то пользователь идёт на страницу входа на сайт.

Поставил визде так:

case true:
"true()";
break;

А всё равно не работает, но зато уже просто белая страница.
И код я писал сам.

Спустя 56 минут, 32 секунды (16.02.2008 - 21:10) set_rus написал(а):
Цитата(XoxMa @ 16.2.2008, 23:14) [snapback]33827[/snapback]
Ну вообще-то там не может быть бесконечного редиректа, потому что:
Код
if (!isset($_SESSION['myusername'])) {
header("location:index.php");
}

если нет сессии, то пользователь идёт на страницу входа на сайт.

Поставил визде так:

case true:
"true()";
break;

А всё равно не работает, но зато уже просто белая страница.
И код я писал сам.


smile.gif верим что сам тока не
case true:
"true()";
break;

а
case "true":
true();
break;

Спустя 10 минут, 4 секунды (16.02.2008 - 21:20) Sylex написал(а):
Цитата(XoxMa @ 16.2.2008, 23:14) [snapback]33827[/snapback]
Ну вообще-то там не может быть бесконечного редиректа, потому что:
Код
if (!isset($_SESSION['myusername'])) {
header("location:index.php");
}

если нет сессии, то пользователь идёт на страницу входа на сайт.

Поставил визде так:

case true:
"true()";
break;

А всё равно не работает, но зато уже просто белая страница.
И код я писал сам.


А этот файл не называется разве index.php ?? И писать надо так:
Код
case "true":
    true();
    break;


Спустя 27 минут, 40 секунд (16.02.2008 - 21:48) XoxMa написал(а):
О, спасибо, наконец-то заработало..!


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.