Problemer med logind system

Tags:    html php mysql

<< < 12 > >>
Hej.

Jeg er stødt ind i en fejl på mit logind system. Det sjove ved det er, at det virkede tidligere, men idag kom den så med en fejl.

Den skriver følgende:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 18 Warning: Cannot modify header information - headers already sent by (output started at /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php:18) in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 46

Logind.php
Fold kodeboks ind/udPHP kode 


EDIT: Jeg fandt selv ud af det. Jeg skulle bare tømme browseren for dens historie osv.



Indlæg senest redigeret d. 09.10.2011 00:10 af Bruger #14776
11 svar postet i denne tråd vises herunder
7 indlæg har modtaget i alt 20 karma
Sorter efter stemmer Sorter efter dato
Husk altid af dræbe videre afvikling af php når du skal redelegere browsere.

Header('location: *'); stop ikke automatisk afvikling af php, når du har sendt en header.



Din "session_start();" skal være før din include. Så burde du komme af med "headers already sent" fejl.




Som jeg læser koden vil du få den fejlbesked, hvergang der logges på med forkert brugernavn eller adgangskode.



Samme som de andre er inde på + du kan lige så godt slå de 2 sql kald sammen til et, der ud over skal du have din fetch array ind i din if, så den ikke bliver kaldt hvis der ik er noget at putte i dit array.

Fold kodeboks ind/udPHP kode 




Du har glemt ; efter dit include



Har du slettet den cookie du havde problemer med sidst?

Drop at bruge $_REQUEST, og vælg så i stedet imellem $_GET, $_POST, $_SESSION og $_COOKIE - så ved du hvor dine værdier stemmer fra i stedet for at gætte dig til det når du bruger $_REQUEST :)



Jamen jeg ved også godt hvad det er for nogle jeg bruger...

Så kan du overveje en tænkt situation.

$_REQUEST er en sammenblanding af: $_GET, $_POST, $_COOKIE
Dvs. $_GET overskriver $_POST værdier som overskriver $_COOKIE værdier.

PHPSESSID er en "magisk" værdi som sendes med hvert request til serveren og fortæller hvilket session_id() serveren skal arbejde med.

Min cookie hedder USERID=1. I en formular sender jeg et hidden felt med samme navn USERID og en værdi der er 1. Nu indholder $_REQUEST['USERID'] det der stod i formularen. Men inden jeg sender formularen har noget malware manipuleret med formularen action URL, så der står ?USERID=20 - Nu indeholder $_REQUEST['USERID'] altså "20". Det er jo langt fra hvad det USERID var, og nu er det så en helt tredje bruger jeg sender formularen med til serveren.

Hvis min kode skal matche $_COOKIE['USERID'] == $_REQUEST['USERID']. Så måske fejler den i hvert fald ikke, men måske overskriver den en adgangskode for en profil. Men nu ved jeg at jeg jo aldrig ville bruge $_REQUEST, så det ville ikke ske. :)

:)



Indlæg senest redigeret d. 15.10.2011 20:33 af Bruger #10216
Nu har jeg lavet nogle ændringer til det, så det ser ud som følgende:
Fold kodeboks ind/udPHP kode 


Der er bare det problem, at den kommer med denne fejlmeddelse:
Parse error: syntax error, unexpected T_VARIABLE in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 5



Nu kommer den med følgende fejl meddelse:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 14 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 16 Warning: Cannot modify header information - headers already sent by (output started at /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php:14) in /customers/darkrune.dk/darkrune.dk/httpd.www/nyheder/logind2.php on line 46

Efter at den er blevet ændret til dette:
Fold kodeboks ind/udPHP kode 




Jeg har sat min browser til at slette det meste af den slags ting, når jeg lukker den ned. De resterende ting som den ikke sletter automatisk har jeg også slettet med et program.

Med hensyn til at ændre $_REQUEST, så ved jeg godt, hvad det er for nogle jeg bruger. Men jeg kan godt gøre det alligevel.



<< < 12 > >>
t