|
| Login Fra : Lion36 | Vist : 797 gange 50 point Dato : 01-10-06 17:47 |
|
Herunder login.php og vars.php.
Mit problem er at, selvom det korrekte navn og password indskrives, så redirecter den til login.php igen og ikke til den side den får besked på (redirect.htm).
Er der nogen der kan finde fejlen - det skal siges at jeg har fået filerne af en anden, og jeg kender ikke selv noget til php.
LOGIN.PHP
<?php
require( "vars.php" );
session_start();
if(!session_is_registered( "WebmasterEmailAddress" ))
{
session_register( "WebmasterEmailAddress" );
$WebmasterEmailAddress = $webmasterEmailAddress;
}
if(!session_is_registered( "HollowmanWebSite" ))
{
session_register( "HollowmanWebSite" );
$HollowmanWebSite = $HollowmanWebSite;
}
if( isset( $action ) ):
if( $action == "logout" ):
session_unregister( "SiteLoginName" );
session_unregister( "SiteLoginPwd" );
echo "
<html>
<body bgcolor=\"#808080\" text=\"#FFFFFF\" link=\"orange\" vlink=\"orange\" alink=\"yellow\" leftmargin=\"10\" topmargin=\"0\" rightmargin=\"10\">
<br><br><br><center><h4>Du er nu logget af!</h4></center>
</body>
</html>
";
die;
endif;
endif;
if( isset( $name ) && isset( $passwd ) ):
if( $name != $loginName || $passwd != $loginPasswd || $name == "" || $passwd == "" ):
echo "
<html>
<body bgcolor=\"#808080\" text=\"#FFFFFF\" link=\"orange\" vlink=\"orange\" alink=\"yellow\" leftmargin=\"10\" topmargin=\"0\" rightmargin=\"10\">
<br><br><br><center><h4>Ugyldigt login!</center></h4>
</body>
</html>
";
elseif( !session_is_registered( "SiteLoginName" ) && !session_is_registered( "SiteLoginPwd" )
&& $name == $loginName && $passwd == $loginPasswd ):
session_register( "SiteLoginName" );
session_register( "SiteLoginPwd" );
$SiteLoginName = $name;
$SiteLoginPwd = $passwd;
displayPage();
elseif( session_is_registered( "SiteLoginName" ) && session_is_registered( "SiteLoginPwd" )
&& $name == $loginName && $passwd == $loginPasswd ):
displayPage();
else:
echo "
<html>
<body bgcolor=\"#808080\" text=\"#FFFFFF\" link=\"orange\" vlink=\"orange\" alink=\"yellow\" leftmargin=\"10\" topmargin=\"0\" rightmargin=\"10\">
<br><br><br><center><h4>Fatal fejl, venligst luk din browser og prøv igen!</h4></center>
</body>
</html>
";
endif;
else:
if( session_is_registered( "SiteLoginName" ) && session_is_registered( "SiteLoginPwd" )
&& $SiteLoginName == $loginName && $SiteLoginPwd == $loginPasswd ):
displayPage();
else:
displayLoginForm();
endif;
endif;
function displayLoginForm()
{
echo "
<html>
<body bgcolor=\"#808080\" text=\"#FFFFFF\" link=\"orange\" vlink=\"orange\" alink=\"yellow\" leftmargin=\"10\" topmargin=\"0\" rightmargin=\"10\">
<br><br>
<center><h4>Login</h4></center>
<div align=center>
<center>
<form method=post action=login.php target=\"_top\">
<table border=0 cellpadding=0 cellspacing=0 width=230>
<tr>
<td width=70 height=20>Navn:</td>
<td width=130 height=20><input type=text name=name size=20 maxlength=10></td>
</tr>
<tr>
<td width=70 height=20>Password:</td>
<td width=130 height=20><input type=password name=passwd size=20 maxlength=10></td>
</tr>
<tr>
<td width=70 height=20></td>
<td width=130 height=20><input type=submit value=\" Luk mig ind \"></td>
</tr>
</table>
</form>
</center>
</div>
";
}
function displayPage()
{
echo "
<html>
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=redirect.htm\">
</html>
";
}
?>
VARS.PHP
<?
$HollowmanWebSite = " http://www.hjemmeside.dk";
$webmasterEmailAddress = "navn@hjemmeside.dk";
$loginName = "name";
$loginPasswd = "password";
?>
| |
| Kommentar Fra : disken |
Dato : 01-10-06 19:07 |
|
Håber vikeligt, du finder ud af at få Det script, til at virke.
Har du ikke PHP pg MyQSL, tvivler jeg på du kan få det til at virker.
Når du ikke gider at afprøve de link/s du fik i et andet, annuleret spørgsmål.
Kan man SGU ikke hjælpe ret meget.
Men håber du får samme svar fra andre, ellers er det vel bare tilbage, til siden,
du hentede scriptet fra, som du ikke kan få til at virker.
| |
| Kommentar Fra : Lion36 |
Dato : 01-10-06 19:12 |
|
Jeg har PHP og MySQL knyttet til min hjemmeside.
Desuden så fandt jeg aldrig det link på den side du snakker om....øv
| |
| Kommentar Fra : disken |
Dato : 01-10-06 19:41 |
|
Hvad FANDEN er der så GALT.
Nu kan du sgu, få mig På de MEGET små dupper.
Eller fatter du bare ikke, at du skal oprette en database, i MySQL, og så tager vi den JO bare derfra.
Det tager 5 Minutter at lave sit ØNSKE, med bruger login, men du vil ÅBENTBART
ikke have hjælpen.
Kan hjælpe dig ONLINE med at sætte siden/erne op.
Men at SKRIVE, DU IKKE KAN FINDE NOGET DER VIRKER, ER LØ'GN """"
Du kan IKKE bare lægge noget op, og HÅBE på det virker,
efter din mening, der skal trods alt laves et lille stykke arbejde,
som jeg skriver, tager 5 minutter.
Men det er vel ikke et' LOGIN VÆRD
| |
| Kommentar Fra : Lion36 |
Dato : 01-10-06 19:51 |
|
Som jeg tidligere har skrevet så fatter jeg ikke en bjælde vedr. php, og så beder jeg om at lade være med at være så sur og tvær og skrive med stort, bare fordi du ikke helt har læst det jeg skrive med at jeg ikke forstår noget om php - vi er ikke alle lige så dygtige som dig.
| |
| Kommentar Fra : disken |
Dato : 01-10-06 20:12 |
|
Troede det var derfor du bad om HJÆLP, men hender ikke noget til dit WebHotel/ udbyder.
Skal jeg med glæde hjælpe dig, med at lave en side i PHP/ LOGIND, eller hvad du ellesr
vil kalde det.
Men kan du ikke finde ud af at lave en database, i /på dit webhotel, kan jeg godt forstå,
AT DU IKKE KAN FATTE EN PIND/ ELLER ANDET, men spørg, ikke luk noget, der virker.
Og det koster INTET, kodeORD og andet, kan du bare lave, midlertigt ???
Og det virker, men tror, DESVÆRRE, der er NOGET du har misforstået.
Men skæld mig dog UD for ikke at hjælpe.
Kan du ikke finde UD AF det med php, install/ myqsl, så ?
Ikke lukke spørgsmålet, DA DU INTET FÅR UD AF DET.
Og lad være med at, skælde mennesker, der GERNE vil hjælpe dig UD.
Bare et menneske, der også engang, imellem har HAFT BRUG FOR ????
| |
|
Jeg kan ikke huske om php vars kender forskel på store og små bogstaver... Men du har en linie:
Kode session_register( "WebmasterEmailAddress" );
$WebmasterEmailAddress = $webmasterEmailAddress; |
Det kan være en grund til den ikke virker...
| |
| Kommentar Fra : BjarneD |
Dato : 01-10-06 22:17 |
|
Uha, da, da for en vrede.
Jeg er heller ikke php ekspert, men ved da at man skal give adgang til filen fra "verden" hvis den skal tilgåes fra Internettet. Du skal ændre attributterne for filen på serveren (chmod) og fuld adgang er 777
Hvis man sætter alle filer til 777 er du åben for at blive hacket så du skal kun give fuld adgang på filer der skal kunne aktiveres af hvem som helst og ved login er du jo hvem som helst og kan derfor ikke eksekvere filen.
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 11:18 |
|
Til ostemanden: har ændret, det gør ingen forskel - desværre.
til bjarne d: det du skriver til mig er som russisk for mig
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 11:28 |
|
login.php og vars.php ligger i samme bibliotek som den side som der skal redirectes til, men uanset om jeg skrive hele URL'en (med http:// og det hele), eller kun redirect.htm, så vender den tilbage til login.php.
Desuden er det ligegyldigt hvilke navn og password man skriver, det er ligesom om den ikke checker vars.php, for validt navn og password.
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 12:19 |
|
Tror slet ikke mit site generer php scriptet, men kun den FORM, som er med i scriptet, hvilket måeske kan forklare at den går i ring.
| |
| Kommentar Fra : BjarneD |
Dato : 02-10-06 13:06 |
| | |
| Kommentar Fra : natmaden |
Dato : 02-10-06 13:25 |
|
Du har rod i funktionen session_start();
Denne må ikke kaldes flere gange, og det gør den fordi at login.php kalder sig selv.
Ja det går i ring, det kaldes en uendelig løkke.
Kikker (måske) på det senere !
Mvh. Jørgen
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 13:27 |
|
Har været inde på siden BjarneD, kan ikke finde nogen scripts der er færdigsyet - desværre
| |
| Kommentar Fra : BjarneD |
Dato : 02-10-06 13:38 |
|
Du kan da ikke få php script der er helt færdigsyet og derfor skal du først læse og lære om metoden og derefter kan du downloade et sæt som du tilretter. I menuen til venstre kan du klikke på hent filer, men det går altså ikke med mindre du tilpasser til dit eget.
Måske skulle du anvende en simplere scripttype som denne: http://www.html.dk/scripts/javascript/00007/
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 13:46 |
|
Tror jeg venter på natmaden *S*
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 13:59 |
|
Kald mig bare doven, men da jeg allerede har et 2 scripts, så håber jeg at kunne få dem repereret med kyndig vejledning istedet for at skulle læse mig igennem flere sider om et emne jeg overhovedet ikke har forstand på.
Desuden så er der vel ingen grund til at lære PHP helt fra bunden, blot fordi man har et isoleret problem med 2 scripts, det er vel også derfor at Kandu er oprettet, for at hjælpe folk med isolerede problemer og ikke bare sende dem videre til div. hjemmesider - se det er måske i virkeligheden at være doven *S*
| |
| Kommentar Fra : BjarneD |
Dato : 02-10-06 14:07 |
|
OK, alle der har deltaget i dette spørgsmål er altså dovne fordi de ikke analyserer dit script!
Jeg ved ikke nok til at analysere det du har der, men jeg lærer jo hver gang jeg finder noget brugbart som jeg så læser mig til hvordan man skal tilrette.
Jeg er sikker på at Natmaden kan hjælpe dig så sats du bare på hans velvilje.
Har du for øvrigt aldrig hørt om hjælp til selvhjælp? Det er faktisk det der praktiseres i fora som dette!
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 14:24 |
|
Hov der er ingen grund til at blive sur og tvær.
Men måske jeg er gået forkert - man regner jo bare med at kunne få lidt hjælp udfra de to scripts jeg sendt - det er jo ligesom dem som er udgangspunktet og dem jeg skal have til at fungerer.
| |
| Kommentar Fra : natmaden |
Dato : 02-10-06 14:35 |
|
Doven , 30 point
Ja jeg må jo i gennem manualen for at kunne forstå funtionen sessions
BjarneD du har ret i din antagelse at der er foreskel på store og små bogstaver i variable.
Så $WebmasterEmailAddress og $webmasterEmailAddress er to forskellige,
Hvad det vel ikke skal være.
Kommer tilbage en gang i nat (på en paptallerken)
Og jo Lion36 man kan få hjælp til selvhjælp, jeg kan jo ikke logge ind på din side og rette derfra,
Det er vist heller ikke alle steder der understøtter sessions.
Prøv dette på din web(hotel)
min_info.php
du får en lang liste,
et sted står der sessions ON eller OFF
Der er meget forskel på hvordan webhoteller har opsat deres system.
| |
| Kommentar Fra : Lion36 |
Dato : 02-10-06 14:54 |
|
Natmaden, du kan følge med på dette link.
http://www.hollowman.dk/content/xxx/min_info.php
Session er enabled, under det punkt er der en masse der er både on/off, som jeg ikke fatter noget af, men måske du kan fortælle hvad der skal være slået til osv. og hvor jeg gør det.
Og lige en ting, jeg er utrolig glad for din hjælp, og havde jeg nogle flere points, fik du dem.
| |
| Kommentar Fra : Lion36 |
Dato : 03-10-06 19:48 |
|
Min udbyder one.com, meddeler at der ikke er noget galt med PHP'en, og at scriptet burde kunne køre.
| |
| Kommentar Fra : natmaden |
Dato : 04-10-06 01:37 |
|
Ja one.com bruger jeg selv.
jeg har lidt for meget at se til , så du må have lidt tålmodighed.
Har du rettet dine variable $WebmasterEmailAddress og $webmasterEmailAddress
Den ene begynder med stort W og den anden med lille w, det gør at php opfatter det som 2 forskelige. !
Fejlagtigt fik jeg vist skrevet at det var BjarneD det gjorde dig opmærksom på det,
Men det var ostemanden,, undskyld for det !
| |
| Kommentar Fra : Lion36 |
Dato : 04-10-06 10:45 |
|
Jeg har rettet det du bad mig om, og ja jeg har tålmodighed, rart at vide at der er gang i noget. jeg forlanger jo heller ikke en løsning nu og her, hellere vente på den helt rigtige løsning *S*
Og så forhøjer jeg med 20 p. hver dag *S*
| |
| Kommentar Fra : præceptor |
Dato : 06-10-06 03:29 |
|
Det er naturligvis umuligt at fortælle noget som helst om fejl i PHP, hvis modtageren ikke vil modtage informationer om PHP, men jeg kan fortælle, at PHP kan ændre sig så meget fra version til version, at det kode der kan køre i een version af PHP ikke nødvendigvis kan køre i en anden version af PHP.
Som det gælder for meget af det gamle skrot der også ligger på internettet, så afhænger funktionen i det viste script af en sideeffekt ved session der eksisterede i PHP indtil version 4.2.3, hvorfor scriptet i sin nuværende form - efter min mening - bør skrottes.
Begrebet sideeffekt betyder jo, at en bestemt virkning ikke har været tilsigtet af PHP's skabere.
Skaberne af PHP har således gjort opmærksom på, at session delen af PHP ikke længere betragter globale variabler som datakilder, med mindre register_globals er ON, hvilket samtidig kompromitterer serverens sikkerhed.
Det viste script er afhængig af session_is_registered() og session_register() samt session_unregister(), der alle igen - jvf. det foran oplyste - er afhængige af at register_globals skal være ON, og det er gudsketakoglov ved at være en sjældenhed på serverne idag.
I stedet for session_is_registered() og session_register() samt session_unregister() som bruges gennemgående i det viste script, skal $_SESSION og isset() bruges istedet, men spørgsmålet er så samtidig om det ikke er hurtigere at skrive hele herligheden om istedet for at rode med eventuelle problemer i forbindelse med ukritiske udskiftninger.
Problemet er løst, enten på den forkerte måde, ved at du flytter scriptet til en server hvor register_globals er ON, for der vil scriptet uden videre virke. Eller på den rigtige måde, ved at du skrotter scriptet og neten finder et nyt og tidssvarende script, eller får skrevet det eksisterende script om af en der har rigtig forstand på PHP
| |
| Accepteret svar Fra : præceptor | Modtaget 50 point Dato : 06-10-06 09:17 |
|
Ved nærmere eftertanke skal de flg. 2 linjer:
Kode if( isset( $_POST['action'] ) ):
if( $_POST['action'] == "logout" ): |
ændres til:
Kode if( isset( $_GET['action'] ) ):
if( $_GET['action'] == "logout" ): |
hvorefter der nemlig kan logges ud med:
Kode login.php?action=logout |
om ønsket kan denne kommando indføjes i login formen ved at ændre:
til:
Kode </table>
<a href=\"login2.php?action=logout\">Logout</a>
</form> |
| |
| Kommentar Fra : Lion36 |
Dato : 06-10-06 13:36 |
|
Jeg takker, og vil prøve at erstatte min nuværende login.php med den du har postet.
Jeg regner ikke med at vars.php skal ændres.
På one.com kan man både køre med PHP4 og PHP5, jeg har valgt sidstnævnte.
Krydser fingre for at det virker - og igen tak for hjælpen.
| |
| Kommentar Fra : Lion36 |
Dato : 06-10-06 13:38 |
|
Desuden kan jeg åbenbart ikke længere lægge ekstra point på dette indlæg !!
| |
| Kommentar Fra : Lion36 |
Dato : 06-10-06 15:35 |
|
Præceptor - well done !!, skidtet virker.... takker 1 mill. gange.
| |
| Godkendelse af svar Fra : Lion36 |
Dato : 06-10-06 15:37 |
|
Tak for svaret præceptor.
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|