Autor Zpráva
Meda
Profil
čauves, narazil jsem na problém s kterým si nevím vůbec rady...

u scriptu pro Přihlášení používám $_SESSION
ten script vypadá že jede dobře, ale nedokáže mě to přesměrovat na další stránku, pomocí PHP_SELF a header.
možná to dělá způsob jakým načítám obsah stránky...


Script 1 => Přihlášení:
<?php

if (isset($_POST['odeslat'])) {

$message = NULL;
if (empty($_POST['user_name'])) {
$n = FALSE;
$message .= '<p>Nebylo zadáno uživatelské jméno!</p>';
}

if (empty($_POST['user_password'])) {
$p = FALSE;
$message .= '<p>Nebylo zadáno heslo!</p>';
}

if ($n && $p) {

$dotaz = "SELECT id_user, user_name FROM user WHERE user_name=$n AND user_password=$p;";
$vysledek = @mysql_query ($dotaz);
$radek_session = @mysql_fetch_array ($vysledek, MYSQL_NUM);

if ($radek_session) {
sesion_name('id_user');
ini_set ('session.use_cookies', 0);
session_start();
$_SESSION['user_name'] = $radek_session[1];
$_SESSION['id_user'] = $radek_session[0];
header ("Location: http://www.wm-kaiser.czechian.net/index.php?page=31?". SID);
exit();

} else {
$message = '<p>Kombinace uživatelského jména a hesla neodpovídá uloženým záznamům.</p>';
}
}
}

if (isset($message)) {
echo '<font face='. $font_face .' size='. $font_size_text .' color='. $font_color_0 .'><b>'. $message .'</b></font>';
}
?>

Script 2 => Načítání obsahu stránek:
foreach($_REQUEST as $ind => $val)
{
$val=addslashes($val);
eval("$".$ind."=\"".$val."\";");
}
if($page=="") $page=1;
$pointer = fopen("main/cz/include/page.php","r");
$pole = fread($pointer, filesize("main/cz/include/page.php"));
fclose($pointer);
$pole = explode ("\n", $pole);
$clanek = $pole[$page];
include(Trim($clanek));

moc děkuji za rady!
Majkl578
Profil
problem s php_self neni, jelikoz jej nepouzivas ocividne.

prvni problem je toto: header ("Location: http://www.wm-kaiser.czechian.net/index.php?page=31?". SID);
SID je konstanta? pokud ne, je to spatne. ten druhy otaznik je tez spatne. asi by bylo nejlepsi udelat toto:
header ("Location: http://www.wm-kaiser.czechian.net/index.php?page=31&id_user"; . session_id());

druha vec:
foreach($_REQUEST as $ind => $val)
{
$val=addslashes($val);
eval("$".$ind."=\"".$val."\";");
}

k cemu je to dobre? nevidim vyznam, ale kdyz uz, tak mnohem lepsi je pouzit extract(), viz http://cz.php.net/extract
Meda
Profil
když to upravím, tak po zadání informací pro přihlášení mě to odkáže na index.php a ne na index.php?page=31.... vůbec nevím proč jestli to náhodou nedělá header...

vrací mě to u všeho zpět, i když zadám špatné jméno a když nezadám heslo opět mě to vratí na index.php...

když zruším PHP_SELF tak mi to jede v pohodě, háže to chyby když něco nezadám, ale nepřesměruje mě to na index.php?page=31 :-/

formulář pro přihlášení:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<legend><?php echo "<font face=$font_face size=$font_size_text color=$font_color_0><b>Přihlášení:</b></font>"; ?></legend>
<p><?php echo "<font face=$font_face size=$font_size color=$font_color_0><b>Uživatelské jméno:</b></font>"; ?> <input type="text" name="user_name" size="20" maxlength="30" value="<?php if (isset($_POST['user_name'])) echo $_POST['PHP_SELF']; ?>"/></p>
<p><?php echo "<font face=$font_face size=$font_size color=$font_color_0><b>Heslo:</b></font>"; ?> <input type="password" name="user_password" size="20" maxlength="30" /></p>
<p><input type="submit" name="odeslat" value="Přihlásit" /></p>
</fieldset>
</form>
Majkl578
Profil
pred funkci header() nesmi byt zadny vystup na stranku (zadny text apod)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0