Avatar billede butcher Nybegynder
08. oktober 2003 - 12:01 Der er 10 kommentarer og
1 løsning

Fejl på server men ikke på lokal pc

Får følgende fejl:

Fatal error: Call to undefined function: ob_flush() in /home/.sites/22/site31/web/login.php on line 201

Koden det drejer sig om er fra siden login.php:

<?php
session_start();

if ($_SESSION['status'] == "nobrugerpass") {
print("    <font face='verdana' size='2' color='#ff0000'>
    <b>Du SKAL indtaste et Brugernavn OG et Password!!!</b></font>");
}

if ($_SESSION['status'] == "fejl") {
print("    <font face='verdana' size='2' color='#ff0000'>
    <b>Der var noget galt med enten dit Brugernavn
    eller dit Password!!!</b></font>");
}

if ($_SESSION['status'] == "nobruger") {
print("    <font face='verdana' size='2' color='#ff0000'>
    <b>Du SKAL indtaste et Brugernavn!!!</b></font>");
}

if ($_SESSION['status'] == "nopass") {
print("    <font face='verdana' size='2' color='#ff0000'>
    <b>Du SKAL indtaste et Password!!!</b></font>");
}
else
{
print("");
}
ob_flush();
?>

og der er en:

<?
ob_start();

?>

i toppen!!

Det "sjove" ved det her, er at det virker på min egen lokale server, men ikke pc'en.

Koden her bruges i forbindelse med en login side, og når data i den overstående formular udfyldes, bliver det sendt til en ny side der ser sådan her ud:

<?php
session_start();


if ($_POST['bruger'] == "" AND $_POST['pass'] == "") {
        $_SESSION['status'] = "nobrugerpass";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

elseif ($_POST['bruger'] == "") {

        $_SESSION['status'] = "nobruger";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

elseif ($_POST['pass'] == "") {

        $_SESSION['status'] = "nopass";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

else

{
$con = mysql_connect("localhost", "driedflowers", "rtyfgh");
mysql_select_db("driedflowers");
$query = "SELECT id, user, pass FROM adminlogin WHERE user = '".$_POST['bruger']."' AND pass= '".$_POST['pass']."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$log = mysql_fetch_array($result);

if (mysql_num_rows($result)) {

        $_SESSION['status'] = "adminlogin";
        $_SESSION['navn'] = $_POST['bruger'];
    print("    <script language='javascript'>
        location.href='admin.php';
        </script>");
}
else
{
        $_SESSION['status'] = "fejl";
    print("    <script language='javascript'>
        location.href='login.php';
        </script>");

}
}
?>

Det virker så ikke... man bliver bare smidt tilbage til login.php, dette virker også fint på min lokale server :/
Avatar billede squashguy Nybegynder
08. oktober 2003 - 12:08 #1
prøv at lave en phpversion() på serveren

ifølge www.php.net kræver ob_flush() PHP 4 >= 4.2.0
Avatar billede olebole Juniormester
08. oktober 2003 - 12:12 #2
<ole>

ob_flush() blev indført i PHP 4.2.0 ... mon ikke din version er for gammel?
Du kan checke dit versionsnummer med en fil, hvori du skriver:

<?

  phpinfo();

?>

/mvh
</bole>
Avatar billede butcher Nybegynder
08. oktober 2003 - 12:17 #3
arrrgh han kører med PHP Version 4.0.6, nok derfor :S
Avatar billede butcher Nybegynder
08. oktober 2003 - 12:27 #4
nu læser jeg inde på php.net på følgende side:

http://dk.php.net/manual/en/function.ob-flush.php

As far as I can tell the only way to mimic ob_flush()'s behaviour on PHP < 4.2.0 is calling ob_end_flush() followed by ob_start().

jeg har prøvet en:

ob_end_flush();
ob_start();

der kommer heller ikke nogle fejlmeddelser, men login scriptet virker bare ikke, nogle der kender til en løsning på en gammel 4.0.6 server :)
Avatar billede olebole Juniormester
08. oktober 2003 - 12:45 #5
Yups ... du kan ikke bruge $_SESSION og $_POST. Du skal bruge $HTTP_POST_VARS - henholdsvis $HTTP_SESSION_VARS.
Kik evt. her:
  http://www.php.net/manual/en/reserved.variables.php

Og hvis det er en udbyder, bør du nok bede ham få opdateret  ;o)
/mvh
Avatar billede butcher Nybegynder
08. oktober 2003 - 14:36 #6
jo jo men det vil han ikke, så nu bliver der skiftet ;)

Kan ikke rigtigt få den til at virke, selv om jeg bruger $HTTP_POST_VARS og $HTTP_SESSION_VARS .. den sender ikke status = login vidre i session til den "beskyttet" side.
Avatar billede olebole Juniormester
08. oktober 2003 - 14:41 #7
Er du sikker på, du husker at starte din session på den anden side?
I øvrigt behhøver du ikke skifte side med JavaScript. Du kan lave en redirect med PHP:
  Header( "Location: login.php" );
/mvh
Avatar billede butcher Nybegynder
10. oktober 2003 - 11:08 #8
hmm ja det vil jeg mene, nå gider ikke lave det om, får opdateret php delen.

Så hvis olebole smider et svar får han points.
Avatar billede olebole Juniormester
10. oktober 2003 - 15:29 #9
:)
Avatar billede butcher Nybegynder
12. oktober 2003 - 23:58 #10
han kom trods alt med løsningen på $_SESSION og $_POST , mange tak for det, det løste også mit problem med $_GET :) grrr gamle lorte version :p
Avatar billede olebole Juniormester
13. oktober 2003 - 00:48 #11
... takker  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester