Hjælp til lidt "else".

Tags:    php

Hej udviklere

Nu har jeg IGEN et problem, men da jeg har fundet jeres forum så nyttigt begge gange, skriver jeg lige her igen. :)

Min kode, igen problemet bagefter:
Fold kodeboks ind/udKode 


Dette er så min kode, som senere hen skulle være et adminsystem, uden brug af MySQL. Altså, for sikkerhedens skyld, skal passwordet være rigtigt før man går videre, og passwordet er i kildekoden, dvs. ikke noget en cracker kan få adgang til uden at lave en eller hacker-fidus som jeg aldrig har hørt om før.

Men den udskriver bare følgende fejlkode:
Parse error: parse error, unexpected T_ELSE in E:\\inetpub\\vhosts\\dodk.dk\\httpdocs\\travian\\admin\\headadmin\\Index.php on line 24
Linje 24 er vores andet "} else {". Har aldrig arbejdet med andet end bare ÉT "else" (altså bare noget ala dette:
Fold kodeboks ind/udKode 
).
Hvad gør jeg galt? Som sagt har jeg kun arbejdet med ét "else", så ved ikke om jeg har lavet noget rigtigt noob-værk. :D!

Og skal også lige høre:
Tror næppe at "if($navn_ok = 'hejsa) {" er rigtigt - men hvad skal man så skrive før at hvis man har indtastet 'hejsa' så gør den ditten og dat? Altså, UDEN MySQL, for det kan jeg sagtens. Altså, bare man KUN kan komme ind med 'hejsa' som ligger i kildekoden?

Og er det rigtigt det jeg har gjort med 'stripslashes' og 'addslashes', når jeg nu ikke bruger MySQL i denne sammenhæng? Er det rigtigt at man først skal lave en man addslasher, og så en senere som er den samme værdi (det indtastede) og så stripslashe? Eller kunne man også bare gøre sådan:
"stripslashes(addslashes($navn = $_POST[brugernavn]));"?

MVH
Alexander

(Håber det hele var til at forstå - synes det kan være ret svært at formulere problemer i PHP. :S :P)




7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Hej Alenxander, længe siden.. ;)
- for det første er der lidt fejl her og der.. og du har ret
if ($navn_ok = 'hejsa') .. er forkert der skal være to (=).. ellers tror den bare den skal sætte en variabel op...
men jeg har rettet koden til så den burde virke ellers skriv lige igen..
Fold kodeboks ind/udKode 

Jeg har fjernet de to øverste linier helt, eftersom de bare modsiger sig selv, og ikke har noget indvirkning, eftersom det de skulle være imod, kun sker hvis man sender variablen via $_GET[]... - men prøv det der og sig om det er noget der virker ;)

ps. og desuden er jeg ikke sikker på at $php_self længere virker, mener det blev taget af på et tidspunkt.. ^o)



Indlæg senest redigeret d. 07.04.2007 17:08 af Bruger #10350
Jeg vil da mene at man STADIG kan lave SQL injections, da der er jo er åben databaseforbindelse hele dokumentet igennem (altså, har faktisk MySQL åben på ALLE sider, selvom jeg ikke bruger MySQL i denne fil). Men du har jo faktisk ret - det ville alligevel ikke hjælpe mod SQL injections.. eller hvad? :S. Bliver jeg så bare nød til at fjerne den åbne forbindelse i denne fil? For man kan da godt lave en SQL injection ved at bruge $_POST..?

Men jo, php_self virker - brugte det lige før jeg rodede det sammen med, at man indtastede noget, og så udskrev den det - så det virker fint. =)

Men okay, tak - vidste jeg ikke. Eller jo, nu du siger det - så gjorde jeg. Havde jeg bare glemt/lært for så lang tid siden at jeg fattede bjælde af PHP :P!

Men mange tak så. :)



Ja, du kan smide ting ind og hive ting ud af din SQL så meget som du overhovedet har lyst til. så nej du skal ikke lukke for sql_connect.
hvis det er meningen at dokumentet bare skal tjekke om den indtastede tekst i <input name="brugernavn"> er hejsa, så er det helt fint som det står nu, men jeg ville nok lave det lidt anerledes igen... (fik lige øje på noget.. ;) )
Fold kodeboks ind/udKode 

Sådan der, så hvis det indtastede er hejsa, skriver den "Velkommen til hejsa", og ellers skriver den "Forkert indtastning!"... og hvis der slet ikke er blevet sendt noget, viser den <form> mm..



Og vil I ikke sige at den er RET sikker? Faktisk, 100%? Er det 100% sikkert at man IKKE kan komme ind til beskeden "Velkommen til" uden at skrive det rigtige password? Kan sgu ikke se noget der kunne gøre dette, andet end at skrive password?

Og mange tak for at skrive det rent. :D!



Tjo der er altid muligheden at folk laver en force-password.
men ellers hvis du gemmer i php-format og ikke txt eller andre (som du kan, hvis du benytter include's).. og folk ikke kan får fat i indholdet af filen. er den 100% sikker.. (lige på nær force, men det er sgu altid noget der tager monster lang tid og kun de færreste der overhovedet gider prøve på, især hvis der både er brugernavn og kodeord..



Og jeg gætter mig til at force-password er en 'maskine' eller et script der bare afprøver alle muligheder for passwordet? For hvis det er dette, kan man vel bare sætte en fidus på, så når man f.eks. har prøvet 10 gange forkert, så kan man ikke prøve mere, eller at man skal vente 1 min. efter hvert fejlforsøg - vil jo gøre det hele lidt besværligere, ikke? :D



Men Henrik? Hvorfor hedder det "!=" og ikke "!=="?



t