[PHP] PHP_AUTH_USER werkt niet

Pagina: 1
Acties:
  • 1.583 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 05:32
Beste mensen,

Mijn provider is overgestapt naar PHP5 en MySQL5 alleen ik heb hier een site die gemaakt is in de tijd van PHP3. Sinds de overgang krijg ik een Server Error dus heb ik een .htaccess bestand aangemaakt zodat de site geparsed wordt als PHP4 (totdat de nieuwe site af is). Hier wordt gebruik gemaakt van PHP_AUTH_USER om een gebruikersnaam en wachtwoord af te vangen. Echter als ik hier iets invul dan blijf ik het inlogscherm steeds weer krijgen ongeacht wat ik invul.
Ik heb al vanalles wat in mijn macht lag geprobeerd, error reporting op zijn hoogst, de PHP site nagekeken, her en der wat code aangepast maar het gaat gewoon niet werken. Hebben jullie enig idee waar het aan zou kunnen liggen? (Het liefst geen opmerkingen over eventuele ranzige code, ik heb het niet gemaakt en er komt een nieuwe site, alleen dit laat nog even op zich wachten)

Knip en plak uit de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
<?php //CONTENT MAIN SCRIPT  Version 1.05
//Inkomende variabelen (mogelijk)
//$protected : 1 als gebruiker in gelogd is/wil inloggen -> altijd controleren.
//$_SERVER('$PHP_AUTH_USER'), $_SERVER('$PHP_AUTH_PW'): login credentials die nodig zijn als $protected=1
//$link: string met opgevraagde link.
//$hf: geeft aan of header/footer moet worden weergegeven
//$ct: Een indicatie-string voor evt. control operaties 
//  ->changepass: extra vars: $oudpass, $nieuwpass, $nieuwpasscheck

$dbDatabase = "****";
$dbServer = "****";
$dbUserName = "****";
$dbPassword = "****";

$Authenticated = 0; //Switch om authenticatie te bepalen
$moder = 0; //Switch om moderator-prop. van een user te bepalen
$vgse = 0;  //Switch om de vgse-prop van een user te bepalen

$Voornaam = "registered"; //Gegevens ingelogde user.
$Achternaam = "User";
$Visits = 1;

function pg_fetch_row( $cn, $rw ) 

{   mysql_data_seek($cn, $rw);
    return mysql_fetch_row($cn);    
}

function maaklink ($lnk, $prot, $hf, $ctrl=0) {
    $str = "\"content.php?protected=" . $prot . "&hf=" . $hf . "&ct=" . $ctrl. "&link=" . $lnk . "\"";
    return $str;    
}
function maaklinkbase ($lnk, $prot, $hf, $ctrl=0) {
    $str = "content.php?protected=" . $prot . "&hf=" . $hf . "&ct=" . $ctrl. "&link=" . $lnk;
    return $str;    
}
function run_query() {  //Voert sql queries uit $sql uit
    global $sql, $conn, $numRows, $numCols, $resultSet, $resultArray;
    $ips=0;
    do {
        $ips++;
        $resultSet = mysql_db_query("7046vgse", $sql);
        $poep=0;
        if (!$resultSet) { 
            schrijflog(mysql_error(), "errorlog", $Authenticated);
            $poep=1;
            verbind();
        }
    } while ($poep==1 && $ips < 10); //blijf even proberen.
    if (!$resultSet)
    {
        print "Scriptfout in SQL. SQL query incorrect of DB offline. Neem contact op met de VGSE. <A HREF=\"mailto:bestuur@vgse.nl\">bestuur@vgse.nl</A>.";
        exit;
    }
    $numRows = @mysql_numrows($resultSet);
    $numCols = @mysql_numfields($resultSet);
}

function authenticate() { //Vraagt gebruiker zich (opnieuw) te authenticeren
        Header("WWW-Authenticate: Basic realm=\"VGSE\"");
        Header("HTTP/1.0 401 Unauthorized");
        include("sys/errorpage.php");
        exit;
}

function protwrite($protstring, $alternative) {

//Schrijft $protstring als user authenticated is, anders $alternative

    global $Authenticated;

    if ($Authenticated) {
        print $protstring;
    } else {
        print $alternative;
    }

}

function schrijflog($tekst, $bestand, $gebr) {
    global $Voornaam, $Achternaam, $_SERVER('$PHP_AUTH_USER');
    if ($bestand=="sitelog") {
        $host = getenv("REMOTE_HOST");
        $ip = getenv("REMOTE_ADDR");
        $log=fopen("log/sitelog.html", "a");
        $outstring =  date("l dS of F Y, H:i:s ->");
        if ($gebr==1) {
            $outstring .= $Voornaam . " " . $Achternaam;  
        } else {
            $outstring .= "Onbekende Gebruiker";
        }
        $outstring .= "<br>Host/IP: $host, $ip";
        $outstring .= " " . $tekst;
        $outstring .="<br>\n";
    }
    if ($bestand=="updatelog") {
        $log=fopen("log/updatelog.html", "a");
        $outstring =  date("l dS of F Y, H:i:s ->");
        if ($gebr==1) {
            $outstring .= $Voornaam . " " . $Achternaam;  
        } else {
            $outstring .= "Vreemd!";
        }
        $outstring .= "<br>\n" . $tekst;
        $outstring .="<br><hr><br>\n";
    }
    if ($bestand=="userlog") {
        $log=fopen("log/userlog.html", "a");
        $outstring =  date("l dS of F Y, H:i:s ->");
        if ($gebr==1) {
            $outstring .= $Voornaam . " " . $Achternaam;  
        } else {
            $outstring .= "Gastgebruiker";
        }
        $outstring .= " " . $tekst;
        $outstring .="<br>\n";
    }
    if ($bestand=="errorlog") {
        $log=fopen("log/errorlog.html", "a");
        $outstring =  date("l dS of F Y, H:i:s ->");
        if ($gebr==1) {
            $outstring .= $Voornaam . " " . $Achternaam;  
        } else {
            $outstring .= "Gebruiker onbekend, PHP_AUTH_USER: $_SERVER('$PHP_AUTH_USER')";
        }
        $outstring .= "<br>\n    Melding: " . $tekst;
        $outstring .="<br>\n";
    }
    if ($log) {
        fwrite($log, $outstring);
        fclose($log);
    }
}

function verbind() {
    global $conn, $dbDatabase, $dbServer, $dbUserName, $dbPassword;
    $conn = mysql_pconnect($dbServer, $dbUserName, $dbPassword );
    if (!$conn) { //Connection error
    $conn = mysql_pconnect($dbServer, $dbUserName, $dbPassword );
    }
    if (!$conn) { //Connection error
    $conn = mysql_pconnect($dbServer, $dbUserName, $dbPassword );
    }
    if (!$conn) { //Connection error
        print "Database niet toegankelijk. De VGSE-site is tijdelijk niet beschikbaar. 
Probeer later nog eens.";
        exit;
    } 
}

//begin mainprog
error_reporting(5); //GEEN warnings naar user

//Verbinden met database
//verbind();
if ($protected) {
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        authenticate();
        } else { //Een Login is gegeven!
        $sql = "SELECT password, mod, vgse, nummer, numsessions FROM leden  WHERE loginnaam='" . $_SERVER['PHP_AUTH_USER'] . "'";
        run_query();

        if ($numRows > 0) {
            $resultArray = mysql_fetch_row($resultSet);
            if ($resultArray[0]==$_SERVER('$PHP_AUTH_PW')) {
                //Ingelogd!
                $Authenticated=1;
                if ($resultArray[1]=='t') $moder=1; //moderator
                if ($resultArray[2]=='t') $vgse=1; //VGSE-bestuurder
                $AantalSessies = $resultArray[4] + 1;

                $sql="SELECT voornaam, achternaam FROM ledeninfo WHERE nummer=$resultArray[3]";
                run_query();
                if ($numRows > 0) {
                    $gegArray = mysql_fetch_row($resultSet);
                    $Voornaam = $gegArray[0];
                    $Achternaam = $gegArray[1]; 
                    $Lidnummer = $resultArray[3];
                    $Visits = $resultArray[4];      
                }
            } else { //Password niet correct
                schrijflog("Login failed: $_SERVER('$PHP_AUTH_USER') gaf verkeerde pass.", "sitelog", 0);
                authenticate(); //forceer nieuwe login
                exit;
            }
            
        } else { //User niet gevonden
                schrijflog("Login failed: user $_SERVER('$PHP_AUTH_USER') bestaat niet.", "sitelog", 0);
                authenticate(); //forceer nieuwe login
                exit;
        }  
       }
} else {
    $moder=0;
    $vgse=0;
}

//Eigenlijke invulling site volgt vanaf hier:

if (!$ct) {
    if (!isset($link)) {
        schrijflog("logt in.", "sitelog", $Authenticated);
        if ($Authenticated==1) {
            $sql="UPDATE leden SET numsessions=$AantalSessies WHERE loginnaam='$_SERVER('$PHP_AUTH_USER')'";
            run_query();
        }
        echo '
    <html>
        
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1">
    <title>
    ';

    protwrite("
    VGSE domein van $Voornaam $Achternaam",
    "VGSE domein voor gasten"); 
    
    echo '
    </title>
    <base target="MAIN">
    <!-- Frame Set -->
    </head>
    
    <frameset cols="10,160,*" border="0">
        <frame name="LINE" noresize scrolling="NO" marginheight="0" 
    ';
    print "    marginwidth=\"0\" src=" . maaklink("line", $Authenticated, 0) . ">\n";
    echo '    <frame name="BUTLEFT" noresize scrolling="NO" 
    ';
    print "    marginheight=\"0\" marginwidth=\"0\" src=" . maaklink("butleft", $Authenticated, 0) . ">\n";
    echo '    <frame name="MAIN" marginheight="0" marginwidth="0" 
    ';
    print "    src=" . maaklink("main", $Authenticated, 0) . ">\n";
    
    echo'    <noframes>
        <body>
        <p>&nbsp; </p>
        </body>
        </noframes>
        </frameset> 

    </html> ';
    } else { //link is gegeven
         //zoek uit welke link en return die;
        $sql = "SELECT location FROM inventory WHERE link='" . $link ."'";
        run_query();
        include("sys/head.php"); //Header van document
        if (!$numRows) { //link bestaat niet
            include("sys/linknotfound.html"); 
        } else { //link gevonden    
            $resultArray = mysql_fetch_row($resultSet);
            include($resultArray[0]); //geeft gewenste page terug
        }
        include("sys/foot.php"); //Footer van document
    }
} else { //er is een control operatie aangevraagd
    include("sys/head.php");  //Header van document
    switch ($ct) {
        case "changepass":
            Include("sys/veranderpass.php");
            break;
        case "siteupdate":
            $uptekst=nl2br($updatetekst);
            schrijflog($uptekst, "updatelog", $Authenticated);
            Include("log/updatelog.html");
            break;
        default:
            print "Niet toegestane operatie. (Controlfout)\n";
    }
    include("sys/foot.php"); //Footer van document
}

//Afsluiten database en resultsets

if ($conn) mysql_close($conn); 

?>

[ Voor 58% gewijzigd door Carpenter op 11-06-2006 23:23 . Reden: nog wat code toegevoegd ]


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:21

TeeDee

CQB 241

offtopic:
wat een zalige variabele namen. $poep :) verder kan ik je niet helpen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Doe eens print_r($_SERVER)? Als daar geen PHP_AUTH_USER in staat, dan heb je waarschijnlijk hiermee te maken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 84120

Carpenter schreef op vrijdag 09 juni 2006 @ 11:57:

...Ik heb al vanalles wat in mijn macht lag geprobeerd, error reporting op zijn hoogst...
Knip en plak uit de code:
PHP:
1
2
//begin mainprog 
error_reporting(5); //GEEN warnings naar user 


Kijk eens of hij zonder die regel wel foutmeldingen geeft? Want ik gok op een headers already send op het moment.

[ Voor 17% gewijzigd door Anoniem: 84120 op 09-06-2006 12:09 ]


Acties:
  • 0 Henk 'm!

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 05:32
-NMe- schreef op vrijdag 09 juni 2006 @ 12:06:
Doe eens print_r($_SERVER)? Als daar geen PHP_AUTH_USER in staat, dan heb je waarschijnlijk hiermee te maken.
Die staat er inderdaad niet tussen. Dan moet ik waarschijnlijk maar contact opnemen met de hoster...

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 06-06 09:54
? Als een query niet lukt, probeer je het nog tien keer? Mafmafmaf... Als het de eerste keer niet werkt, werkt het de tweede keer ook niet en was je query stuk.

Acties:
  • 0 Henk 'm!

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 05:32
Skaah schreef op vrijdag 09 juni 2006 @ 12:22:
? Als een query niet lukt, probeer je het nog tien keer? Mafmafmaf... Als het de eerste keer niet werkt, werkt het de tweede keer ook niet en was je query stuk.
(Het liefst geen opmerkingen over eventuele ranzige code, ik heb het niet gemaakt en er komt een nieuwe site, alleen dit laat nog even op zich wachten)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Sowieso zie ik nog een paar keer oude globals gebruikt worden. $PHP_AUTH_USER bestaat niet meer, en $PHP_AUTH_PW ook niet. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 05:32
-NMe- schreef op vrijdag 09 juni 2006 @ 12:39:
Sowieso zie ik nog een paar keer oude globals gebruikt worden. $PHP_AUTH_USER bestaat niet meer, en $PHP_AUTH_PW ook niet. ;)
Ik had ook alles al veranderd in $_SERVER("PHP_AUTH_USER"). Maar goed als ik onderstaande code gebruik dan werkt het wel gewoon....

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
   echo 'Text to send if user hits Cancel button';
   exit;
  } else {
   echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
   echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your
password.</p>";
  }
?> 

Hmmm, als ik alles in PHP5 draai dan krijg ik helemaal geen pagina meer, zelfs geen login... Snap er echt niets meer van 8)7

[ Voor 19% gewijzigd door Carpenter op 09-06-2006 12:45 ]


Acties:
  • 0 Henk 'm!

  • Carpenter
  • Registratie: December 2002
  • Laatst online: 05:32
Schopje....

Is er iemand die snapt waarom ik helemaal geen pagina meer krijg als ik gewoon http://www.domein.ext/content.php?protected=1 gebruik (en gebruik maak van PHP5)

Acties:
  • 0 Henk 'm!

  • Upsal
  • Registratie: Mei 2005
  • Laatst online: 27-08-2024
Hoe zit het met de error_reporting en register_globals in php.ini, in php5 staan ze vaak anders dan in php4. Om deze te raadplegen, probeer eens phpinfo();.

[ Voor 49% gewijzigd door Upsal op 11-06-2006 23:34 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:24

crisp

Devver

Pixelated

$_SERVER is natuurlijk geen functie dus $_SERVER('PHP_AUTH_USER') is syntactisch niet correct, je dient daar blokhaken te gebruiken
Verder is $_SERVER een superglobal dus die hoef je in functies niet expliciet als global te definieren.

[ Voor 29% gewijzigd door crisp op 11-06-2006 23:34 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Probeer je nou pg_fetch_row te herdefineren om met mysql een rij te fetchen? :X

Verder zou ik sterk overwegen om naast de superglobals, geen globals te gebruiken. Vraag ze gewoon als parameter, eventueel als reference als je de waarde wilt wijzigen.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
(Het liefst geen opmerkingen over eventuele ranzige code, ik heb het niet gemaakt en er komt een nieuwe site, alleen dit laat nog even op zich wachten)
Je plempt hier wel alle 279 regels neer en je kan dan ook commentaar verwachten op de 270 niet relevante regels.

Als we geen commentaar op die overige regels mogen hebben, rest me alleen nog maar om te zeggen dat dat nieuwe script gauw mag komen. ;)

{signature}

Pagina: 1