ugrás a tartalomhoz

header(Location xxx.php) elvan már küldve

Anonymous · 2006. Feb. 25. (Szo), 01.39
Üdv!

Nos akad egy kis problémám atw-n lassan megcsináltam egy fórum szerűséget, és mihely rámegyek a belépés-re és belépne kiirja h már elvan külve a fejléc és h nemtudja módosítani, sok időmet fektettem az oldalba, most akkor dbhatom ki?

H tudnám ezt megoldani?
itt a login.php:

<?php
session_start();
include("config.inc");
$style_config_kiolvas = mysql_query("SELECT * FROM config WHERE config_name='style config'");
$style_config_kiolvas_kiir = mysql_fetch_assoc($style_config_kiolvas);
extract($style_config_kiolvas_kiir);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-2" />
<title>Final Destination | Belépés</title>
<link href="styles/<?php print $config_value; ?>/index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="menu">
<img src="images/logo/logo.jpg" width="100%" alt="Logó" title="Logó" />
<ul>
<li><a href="index.php"><img src="images/nav/home.gif" border="0" alt="Kezdőlap" title="Kezdőlap" />Kezdőlap</a></li>
<li><a href="gallery.php"><img src="images/nav/galery.gif" border="0" alt="Galéria" title="Galéria" />Galéria</a></li>
<li><a href="gyik.php"><img src="images/nav/faq.gif" border="0" alt="Gyakran Ismételt Kérdések" title="Gyakran Ismételt Kérdések" />Gy.I.K.</a></li>
<div class="nav">
<?php
if ($_SESSION[session_usr_login] != "yes") {
print '
<li><a href="login.php"><img src="images/nav/login.gif" border="0" alt="Belépés" title="Belépés" />Belépés</a></li>
<li><a href="register.php"><img src="images/nav/register.gif" border="0" alt="Regisztráció" title="Regisztráció" />Regisztráció</a></li>
';
}
elseif ($_SESSION[session_usr_login] == "yes") {
print '
<li><a href="/profile.php"><img src="images/nav/profile.gif" border="0" alt="Profil" title="Profil" />Profil</a></li>
<li><a href="logout.php"><img src="images/nav/logout.gif" border="0" alt="Kilépés" title="Kilépés" />';
$user_id_kiolvas = mysql_query("SELECT * FROM users WHERE user_id = '$_SESSION[session_usr_id]'");
$user_id_kiolvas_kiir = mysql_fetch_assoc($user_id_kiolvas);
extract($user_id_kiolvas_kiir, EXTR_OVERWRITE);
print 'Kilépés [ '.$name.' ]';
print '</a></li>
';
}
?>
</ul>
</div>
</div>
<br /><br /><br />
<?php
if ($_SESSION[session_usr_login] == "yes") {
print "<div class=\"tipikhiba\">Ahoz, hogy belépj egy felhasználóval, ki kell jelentkezned a mostanival!</div>";
}
elseif ($_SESSION[session_usr_login] != "yes") {
print '
<h1 class="hlog">Belépés</h1>
<br /><br />
<div align="center">
<table class="logintab">
<form action="login.php" method="post">
<tr><td>Felhasználónév:</td><td>
<input type="text" name="login_usr_usr" maxlength="20" size="25" class="textinp" value="'.$_POST[login_usr_usr].'" />
</td></tr>
<tr><td>Jelszó:</td><td>
<input type="password" name="login_usr_pass" maxlength="20" size="25" class="textinp" />
</td></tr>
<tr><td>&nbsp;</td><td><input type="submit" value="Belépés" class="subinp" name="login_usr_sub" /></td></tr>
</table>
</div>
<br />
';
}
?>
<?php
if (isset($_POST[login_usr_sub])) {
include("includes/login.inc");
if (!jelszoellenorzes("$_POST[login_usr_usr]", "$_POST[login_usr_pass]")) {
print "<div class=\"tipikhiba\">Rossz felhasználónév, vagy jelszó!</div>";
}
elseif (jelszoellenorzes("$_POST[login_usr_usr]", "$_POST[login_usr_pass]")) {
$usr_login_lekeres = mysql_query("SELECT * FROM users WHERE username = '$_POST[login_usr_usr]'");
$usr_login_lekeres_kiir = mysql_fetch_assoc($usr_login_lekeres);
extract($usr_login_lekeres_kiir, EXTR_OVERWRITE);
if ($deleted == "yes") {
print "<div class=\"tipikhiba\">A felhasználó törölve lett az oldalról, de adatai megmaradtak.<br />Visszavonásért keresd az adminisztrátort!</div>";
}
elseif ($deleted == "no") {
$_SESSION[session_usr_login] = "yes";
$_SESSION[session_usr_id] = $user_id;
$_SESSION[session_usr_level] = $user_level;
header("Location: index.php");
}
}
}
?>
<br /><br /><br />
<div class="footer">
<?php
print $page_site_footer;
?>
</div>
<br /><br />
</body>
</html>
Reméle tudtok nekem segíteni, előre is köszönöm.

Egy elsznát de szomorú weboldal szerkesztő.
 
1

Puffer

Anonymous · 2006. Feb. 25. (Szo), 02.35
A kimenet pufferelése kell neked.
2

három tanács

Anonymous · 2006. Feb. 25. (Szo), 10.55
Természetesen nem a kérdéshez tartozik, csak programozástechnikai tanács:

1. Érdemes úgy fejleszteni, hogy az error_reporting be van kapcsolva. Ekkor a php szépen kiírja, hogy hol vannak hibák.

2. A tömböket a
$_SESSION[session_usr_login]
forma helyett így írjuk:
$_SESSION['session_usr_login']
Az előbbi formát a php warning üzenettel jutalmazza, mivel az idézőjel nélküli "szavakat" a php konstans-nak tartja, session_usr_login nevő konstans viszont nincs.

3. Nem hasznos SELECT * FROM formában lekérdezni a mysql táblából az adatokat, két okból. Egyrészt lehet, hogy sokkal több adatot kérünk le, mint amire szükségünk van, másrészt nem tudjuk pontosan, milyen mezőnevek is vannak az eredményben. Főleg akkor válik ez kellemetlenné, ha valaki másnak kell folytatni, vagy javítani a programunkat.

Gyulus
3

BOM

Dualon · 2006. Feb. 25. (Szo), 11.13
Ha a kimenetet pufferelted, de még mindig nem jó, ráadásul valamilyen unicode kódolást használsz, érdemes figyelni a BOM-ra; egyes szerkesztőprogramok berakják.

Más: a jelszoellenorzo() függvényed tartalmát nem ismerjük, de figyelj rá, hogy ne lehessen benne biztonsági rés - épp most volt erről szó.

D.
http://e-arc.hu/
4

<Nincs cím>

Anonymous · 2006. Feb. 25. (Szo), 12.26

<?php

function jelszoellenorzes( $nev, $jelszo )
    {
    global $kapcs;
    $eredmeny = mysql_query( "SELECT username, password FROM users
                WHERE username='$nev' and password='$jelszo'",
                $kapcs );
    if ( ! $eredmeny )
       die ( "jelszoellenorzes hiba: ".mysql_error() );
    if ( mysql_num_rows( $eredmeny ) )
        return mysql_fetch_array( $eredmeny );
    return false;
    } 



?>
Ok, köszönöm a hasznos tanácsokat, majd megfogado őket, de akkor a select -bőlt h olvasok ki?, azért van az extract mert az mindent kiolvas, vagy nem tom mert én csak igy tudom az a baj...
5

<Nincs cím>

Anonymous · 2006. Feb. 25. (Szo), 15.04
de akkor a select -bőlt h olvasok ki?


Pont úgy, ahogy a jelszoellenorzes-nem csinálod:
SELECT mezo1, mezo2, mezo3 FROM tabla
Ha így csinálod, mindig fogod tudni, hogy $mezo1, $mezo2, $mezo3 változóid vannak. Még három év múlva is.
Egyébként ez az egész dolog nem annyira lényeges, csak egy kis módszertani adalék.

Gyulus