Login virker ikke ?

Tags:    php mysql login

Hej

har lavet et login system. nu skal jeg bruge det igen på en anden hjemmeside.
login siden virker. men login ok siden virker ikke. den forbliver blank. den skulle meget gerne sende en videre til index.php eller melde fejl :(

Login.php
Fold kodeboks ind/udHTML kode 


login-ok.php
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 29.07.2014 20:37 af Bruger #16109
6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 17 karma
Sorter efter stemmer Sorter efter dato
hvilke vertion af PHP anvender du ??

http://php.net/manual/en/function.session-register.php

Warning

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.



http://php.net/manual/en/function.mysql-query.php
http://php.net/manual/en/function.mysql-num-rows.php
http://php.net/manual/en/function.mysql-real-escape-string.php
mysql er forældet API (extension)
brug mysqli eller PDO


http://php.net/manual/en/function.error-reporting.php
har du slået error_reporting til ??
error_reporting(E_ALL);
hvis ikke så gør det





error_reporting(E_ALL); i bunden

når du sætter det i bunden ser du ikke alle de fejl der er opstået før error_reporting

i php.ini kan der være en linje der hedder
error_reporting = E_ALL | E_STRICT
display_errors = on


dette kan også sættes i filen, set dette ind i toppen af filen
error_reporting(E_ALL);
ini_set('display_errors', '1');

http://php.net/manual/en/function.error-reporting.php
http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors
den vil advare mod forældet code, men kunne også være noget med den ikke kan connecte til datbasen, eller forkert tabel navn
uden fejl beskrivelse andet en hvid side gætter vi i blinde

kunne det tænkes der er sendt noget til skærmen allerede ?? BOM måske, eller et blankt tegn før <?php, linje skift, eller anden html
http://php.net/manual/en/function.header.php

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.



http://php.net/manual/en/mysqli-result.num-rows.php
http://www.w3.org/International/questions/qa-byte-order-mark.en.php
http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php

tabeller er "no go" til design, de er beregnet til tabulære data, designet ligner l....
din css er forældet

så kort kan vel siges, din login side trænger til en kraftig opdatering

jeg har lavet en hurtig omskrivning af php delen, som du kan afprøve

login_ok.php
Fold kodeboks ind/udKode 


index.php
Fold kodeboks ind/udKode 




Kan det ikke være fordi du har gemt dine passwords som md5/sha eller anden hashing? I så tilfælde skal du hashe $mypassword før du søger efter det i databasen.



Ronny.
ved godt at jeg burde lave det i mysqli men til dette lille script er ligemeget. planen var at genbruge et gammelt script jeg havde lavet tidligere, for det virker helt som det skal.
Sætte error_reporting(E_ALL); i bunden af scritet. siden er stadig bare blank. ingen fejl kommer op :(

Anders, Nop har selv skrevet det ind i databasen. så det er lige over :D



Tak. der virkede det.

Er det bare fordi det er mysqli og at min server ikke kan køre gammel php code ? eller ?




Er det bare fordi det er mysqli og at min server ikke kan køre gammel php code ? eller ?



det gamle mysql API er ikke fjernet helt fra PHP ennu, men er tæt på, så det er ikke det der er er årsagen.
men du bør/skal under alle omstændigheder opdaterer din gamle code til mysqli eller PDO.

Der smides tilsyneladende et eller andet til skærmen der bevirker header ikke virker.
jeg gætter på at det er session_register eller mysql_connect der er skurken, da "if($count==1){" tilsyneladende bliver aktiv, hvilke du ser ved du ikke kommer i else echo "<!DOCTYPE HTML> ...

ref http://php.net/manual/en/function.session-register.php

Warning
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

din php vertion bør være højere en 5.4.0, så her skal du have fået en fejl


ref http://php.net/manual/en/function.mysql-connect.php

5.5.0 This function will generate an E_DEPRECATED error.


ref http://php.net/ChangeLog-5.php#5.5.0

mysql:
This extension is now deprecated, and deprecation warnings will be generated when connections are established to databases via mysql_connect(), mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL instead
Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. Known for stability problems
Added support for SHA256 authentication available with MySQL 5.6.6+


require("config.php"); indeholder vel din mysql_connect


i din gamle code kan du jo prøve at indsætte
<?php
ini_set("display_errors", "on");
error_reporting(E_ALL);

require("config.php");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
.....

og se om den skriver noget til skærmen


---------------------------

mysqli (MySQL Improved Extension) : kan skrives på 2 måder
Procedural style: fuldstændig som du kender fra det gamle API, men dette er marginalt langsommere, da alle functioner er wrapper functioner til OOP vertionen

Object oriented style: dette er fremtidens notation, så du kan lige så godt vende dig til det fra starten

du kan også blande de 2 styles som du har lyst, som en glidende overgang
så om jeg havde brugt mysqli_set_charset($mysqli, "utf8"); eller $mysqli->set_charset("utf8"); er ligegyldigt, men jeg foretrækker OOP style

mulighed for at bruge Prepared Statements, læs feks denne guide http://www.eksperten.dk/guide/1480
her er der kun mulighed for at bruge numberet placeholders

---------------------------

PDO ( PHP Data Objects ):
rent Object oriented style, lettest at porterer til andre databaser, uden st skulle ændre så meget i php coden, men undtagelse af database specifik syntax og functioner
syntax: feks kan man bruge backtick omkring collonne navne i mysql og [] i mssql, har ikke undersøgt det for oracle
functioner: felt LIMIT i mysql hedder TOP i mssql, har ikke undersøgt det for oracle

også mulighed for at bruge Prepared Statements, kan bruge numberet og named placeholders




Indlæg senest redigeret d. 29.07.2014 18:45 af Bruger #16075
t