Avatar billede gg Nybegynder
04. december 2001 - 09:06 Der er 13 kommentarer

fopen() eller ?

Jeg har lavet to eksempler der giver det samme output i browseren. Det ene eksempel er en a href og den anden er en ‘php’ fopen().


<a href=http://minIPadresse/scripts/wgate/ZPASS/!?~language=DA&~OkCode=LOGON&LOGIN-LOGON_TYPE=C>test</a>



$fp = fopen(\"http://minIPadresse/scripts/wgate/ZPASS/!?~language=DA&~OkCode=LOGON&LOGIN-LOGON_TYPE=C\",\"w+\");

while (!feof ($fp)) {
$buffer = fgets($fp, 4096);
echo $buffer;
}
fclose ($fp);


Det der vises i browseren er et almindeligt login system hvor der skal indtastes brugernavn og adgangskode. Når brugernavn og adgangskode indtastes virker det kun hvis det er versionen med a href der anvendes –hvorfor det ? og hvad skal jeg gøre for at få det til at virke i php ?
Avatar billede jakoba Nybegynder
04. december 2001 - 11:12 #1
de 2 versioner gør helt forskellige ting.

<a href=...  er et hyperlink. det er kun selve linket der står i din kildefil og når der trykkes på linket bliver adressen brugt til at hente den fil som en helt ny side.

$fp = fopen(...  er et forsøg på at inkludere den fil så hele filen kommer til at stå i din side der hvor linket ellers ville have været.

Brug \' og \" tegn korrekt. der skal citattegn opkring adressen efter href:
<a href=\" ... \">TEST</a>
ellers er det ikke korrekt HTML kode.

mvh JakobA
Avatar billede gg Nybegynder
04. december 2001 - 12:57 #2
så langt er jeg med. Den version jeg ønsker at bruge er fopen eller tilsvarende hvor jeg kan inkludere hele filen. Tilsyneladende vil den ikke tage brugernavn og/eller password med i denne version , selv om det virker fint med a href versionen ...
Avatar billede jakoba Nybegynder
04. december 2001 - 13:25 #3
Det er der en kommando til:

<?
    $language=\'DA\';
    $OkCode=\'LOGON\';
    $LOGON_TYPE=\'C\';
    include( http://minIPadresse/scripts/wgate/ZPASS/!\" );
?>

kommentarer:
der skal ikke stå \'=\' efter ? eller & i en streng med url-parametre.
du kan ikke skrive et regnestykke på venstre side af et lighedstegn som du gør i:
    &LOGON-LOGON_TYPE=C

mvh JakobA
Avatar billede jakoba Nybegynder
04. december 2001 - 13:29 #4
hvad laver forresten det ! tegn forenden af din adresse?.

undskyld. det \"=\" jeg snakkede om ovenfor er en tilde (\'~\') det er formodentlig lovligt.
Avatar billede invisibleman Nybegynder
04. december 2001 - 13:30 #5
jakoba, du bude da vide at include() kun virker på filer der ligger på den harddisk hvor $DOCUMENT_ROOT er .. den kan ikke inkludere fra andre servere.
Avatar billede gg Nybegynder
04. december 2001 - 13:44 #6
Både tilde og lighedstegn skal med i adressen da den refererer til SAP/its. Desuden virker det jo fint med en alm. a href...... de\' lisom det jeg ikke forstår. jakoba >kan man bruge de der kommandoer på en fopen ? Jeg mener at være enig med invisibleman om at der ikke kan anvendes include() i dette tilfælde.
Avatar billede jakoba Nybegynder
04. december 2001 - 14:01 #7
invisibleman >> Næe, det havde jeg ikke lagt mærke til. takker.
men hvad skal der så til? fpassthru?
    $fp = fopen ( $filename , \"rb\" );
    $ok = fpassthru ($fp);
    fclose ($fp);

gg >> du åbner filen i writemode: \"w+\", mon ikke det skulle være read: \"r\" eller read-binary \"rb\"
Avatar billede invisibleman Nybegynder
04. december 2001 - 14:09 #8
fpassthru() er nok det, ja. Men du behøver ikke $ok = så længe du ikek skal bruge return værdien til noget.
Avatar billede invisibleman Nybegynder
04. december 2001 - 14:09 #9
Og så skal du nok åbne den kun \"r\" hvis det er en tekstfil (og det må det jo være hvis du vil pass den thru :o))
Avatar billede gg Nybegynder
04. december 2001 - 14:22 #10
nu har jeg lige lige prøvet med fpassthru() og \"r\", og det er stadig samme problem med at den ikke får brugernavn og password med til næste side. Login-siden vises lige så fint som med fopen()...
Avatar billede jakoba Nybegynder
04. december 2001 - 14:35 #11
invisibleman >> kunne det være der er en test i det script der sikrer sig at requesten kommer det rigtige sted fra (fx check på $HTTP_REFERER). Og ikke fra et \'prøv alle muligheder så jeg kan komme ind og hacke\' skript der jo ligner det gg vil bygge?
Avatar billede invisibleman Nybegynder
04. december 2001 - 14:41 #12
jakoba, kunne snildt være .. det laver en del for at sikre sig mod \"hotlinking\" ...
Avatar billede razmuz_dk Nybegynder
04. december 2001 - 18:09 #13
Har ik\' lige læst oven stående..

Men fgets læser kun til første \\n (linjeskift).
Brug fread istedet, det læser hele skidtet igennem.

Håber det var til hjælp :-)

\\\\-> RAZ
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester