Steelbelted Skrevet 17. november 2007 Del Skrevet 17. november 2007 (endret) Hepp! Er ganske ny på PHP-fronten og sitter og mikker på et lite script.. Scriptet er en side som gir brukeren som surfer til den en nedlastingslink. Filen som skal lastes ned varierer utifra browser-id. Jeg har en lang liste med forskjellige filer og browser-id`er, men har startet pent med et par. Problemet er at den farskern ikke funker . ----- Start Script----- <?php //First we put the browser version of the user into the $container variable $container = strtolower($_SERVER["HTTP_USER_AGENT"]); //Then we configure the different browser id`s $mozilla = "mozilla"; $msie = "explorer"; $nokia6230 = "nokia6230" //Check browser-id and return corect url/file if (strstr($container,$mozilla) ?$file = "mozilla.jad"; elseif (strstr($container,$msie) ?$file = "msie.jad"; elseif (strstr($container,$nokia6230) ?$file = "nokia6230.jad"; echo "<a href='http://www.yourpage.com/test/"$file"'>1- Download Software</a><br>"; ?> -----End Script------ Jeg ønsker å søke igjennom hele stringen $container og se om et av ordene matcher, slik at brukeren får tildelt korrekt url, men når jeg prøver å gå til siden er den helt blank.. Regner med at det er en (eller flere) teit(e) nybegynnerfeil jeg har gjort her.. Noen tips ? Endret 17. november 2007 av Steelbelted Lenke til kommentar
itsmebth Skrevet 17. november 2007 Del Skrevet 17. november 2007 (endret) Legg til error_reporting(E_ALL | E_NOTICE); ini_set('display_errors', '1'); EDIT: Den koden har mange syntaktiske feil, blant annet så mangler du flere ; og ikke like mange ( som ). C:\Users\BTH>php tmp.php Parse error: syntax error, unexpected T_IF in C:\Users\BTH\tmp.php on line 11 Endret 17. november 2007 av itsmebth Lenke til kommentar
Steelbelted Skrevet 17. november 2007 Forfatter Del Skrevet 17. november 2007 Legg til error_reporting(E_ALL | E_NOTICE); ini_set('display_errors', '1'); Takker for ekstremt raskt svar! :o) Jeg la til disse linjene slik at koden nå er: <?php //First we put the browser version of the user into the $container variable $container = strtolower($_SERVER["HTTP_USER_AGENT"]); //Then we configure the different browser id`s $mozilla = "mozilla"; $msie = "explorer"; $nokia6230 = "nokia6230" //Check browser-id and return corect url/file if (strstr($container,$mozilla) ?$file = "mozilla.jad"; elseif (strstr($container,$msie) ?$file = "msie.jad"; elseif (strstr($container,$nokia6230) ?$file = "nokia6230.jad"; echo "<a href='http://www.yourpage.com/test/"$file"'>1- Download Software</a><br>"; error_reporting(E_ALL | E_NOTICE); ini_set('display_errors', '1'); ?> Jeg får ingen feilmelding når jeg prøver å laste siden. Zend Studio derimot gir følgende melding på debug: X-Powered-By: PHP/5.2.0 Content-type: text/html <br /> <b>Parse error</b>: parse error, unexpected T_IF in <b>webster:/var/www/html/jotppd/index3.php</b> on line <b>11</b><br /> Lenke til kommentar
itsmebth Skrevet 17. november 2007 Del Skrevet 17. november 2007 Legg det til øverst i scriptet. Eller så har du som sagt en parser-feil, og ikke noe av den koden blir kjørt. Lenke til kommentar
Steelbelted Skrevet 17. november 2007 Forfatter Del Skrevet 17. november 2007 Legg det til øverst i scriptet. Eller så har du som sagt en parser-feil, og ikke noe av den koden blir kjørt. Danke . Så det var endel ";" som manglet, og også noen ")" er. Ryddet litt opp her slik at scriptet nå ser slik ut: -------Kode Start------- <?php error_reporting(E_ALL | E_NOTICE); ini_set('display_errors', '1'); //First we put the browser version of the user into the $container variable $container = strtolower($_SERVER["HTTP_USER_AGENT"]); //Then we configure the different browser id`s $mozilla = "mozilla"; $msie = "explorer"; $nokia6230 = "nokia6230"; //Check browser-id and return corect url/file if (strstr($container,$mozilla) $file = "mozilla.jad"); elseif (strstr($container,$msie) $file = "msie.jad"); elseif (strstr($container,$nokia6230) $file = "nokia6230.jad"); echo "<a href='http://www.yourpage.com/test/" . $file . ">1- Download Software</a><br>"; ?> -------Kode Slutt------- Får fortsatt ingen feilmelding når jeg går til siden (bare blank side). Zend klager fortsatt over samme feil: X-Powered-By: PHP/5.2.0 Content-type: text/html <br /> <b>Parse error</b>: parse error, unexpected T_VARIABLE in <b>webster:/var/www/html/jotppd/index3.php</b> on line <b>11</b><br /> Er nok noe muffens med den ekle nybegynnerkoden min ja.. Er litt usiker på bruken av if og elseif`er. Jeg ønsker å sjekke for alle variablene ( $msie , $mozilla, $nokia6230i) i $container. Hvis den ikke finner $msie ønsker jeg at den skal sjekke neste. Hvis den ikke finner noen av variablene vil jeg at den skal ha en felles "default" action for alle. Er det mulig å få til med if/elseif`er eller burde jeg kikke på noe annet ? Thanks! Lenke til kommentar
itsmebth Skrevet 17. november 2007 Del Skrevet 17. november 2007 (endret) I og med at User Agent inneholder en del mer enn bare navnet på browseren er switch-case utelukket, så if/elseif r nok det beste. Syntaksen til if er if(condition) statement hvor statement enten kan være en enkelt ting if($var == 'noe') $foo = 'bar'; eller en gruppe av flere if($var == $noe){ $foo = 'bar'; echo '$foo er ' . $foo; } Der er altså feilen din. Ellers så vil jeg anbefale og teste for MSIE før Mozilla, da jeg mener å huske at MSIE har Mozilla i User Agenten sin. Håper dette hjelper Endret 17. november 2007 av itsmebth Lenke til kommentar
Steelbelted Skrevet 19. november 2007 Forfatter Del Skrevet 19. november 2007 I og med at User Agent inneholder en del mer enn bare navnet på browseren er switch-case utelukket, så if/elseif r nok det beste. Syntaksen til if er if(condition) statement hvor statement enten kan være en enkelt ting if($var == 'noe') $foo = 'bar'; eller en gruppe av flere if($var == $noe){ $foo = 'bar'; echo '$foo er ' . $foo; } Der er altså feilen din. Ellers så vil jeg anbefale og teste for MSIE før Mozilla, da jeg mener å huske at MSIE har Mozilla i User Agenten sin. Håper dette hjelper Hola! Takker for raskt svar! Sitter fortsatt og knoter litt med dette scriptet.. <?php//First we put the browser useragent in the $useragent variable$uag = strtolower($_SERVER["HTTP_USER_AGENT"]); //Then we perform the browsercheckif($uag == 'msie') $file = 'msie.jad';if($uag == 'mozilla') $file = 'mozilla.jad';echo $uag;echo $file;?> [/code Jeg får output fra $uag som er useragent variableen, men ikke $file variabelen.Kan det være fordi useragent stringen ikke matcher 100% (kun et av ordene i stringen som matcher) ? Lenke til kommentar
itsmebth Skrevet 21. november 2007 Del Skrevet 21. november 2007 (endret) Jeg hadde skrevet et innlegg men så kom jeg til å trykke på backspace Kortversjonen er at du har riktig i at problemet er at stringene ikke er helt like. Bruk strpos for å se om en string er inni en annen. PS: Beklager at det tok så lang tid. Endret 21. november 2007 av itsmebth Lenke til kommentar
ZoRaC Skrevet 21. november 2007 Del Skrevet 21. november 2007 Jeg hadde skrevet et innlegg men så kom jeg til å trykke på backspace CTRL+Z funker... Lenke til kommentar
itsmebth Skrevet 22. november 2007 Del Skrevet 22. november 2007 Jeg hadde skrevet et innlegg men så kom jeg til å trykke på backspace CTRL+Z funker... Ikke nå du ikke har formen selecta og i tilleg bommer på tilbake-knappen og treffer et bokmerke Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå