Avatar billede jonatanharring Nybegynder
11. december 2006 - 17:50 Der er 7 kommentarer

PHP kode..hjælp!

Hej, jeg er igang med at lave en shouter - men shouteren skal vises forskelligt fra I.E og Firefox/Opera.
Teksten fra shouteren skal nemlig være rullende (marquee i I.E.).
- Men koden virker desværre KUN i I.E, og ikke Firefox og Opera (teksten er nemlig også rullende(marquee) der).
Koden ser således ud:

<?

if ((!strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'firefox') !== FALSE) and (!strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'opera') !== FALSE))
{
  $sql = mysql_query ("SELECT * FROM shouter ORDER BY id DESC LIMIT 1") or die( mysql_error() );
  if($vis = mysql_fetch_array($sql)) {
    echo '<marquee onmouseover="this.stop()" onmouseout="this.start()" behavior="scroll" direction="left" height="12" width="486" lang="da" scrollamount="1" scrolldelay="4">' . $vis['besked'] . '</marquee>';
  }
  else
  {
    echo '<marquee onmouseover="this.stop()" onmouseout="this.start()" behavior="scroll" direction="left" height="12" width="486" lang="da" scrollamount="1" scrolldelay="4">Ingen shouts..</marquee>';
  }
}

?>
<?
$br = new Browser;

if($br->Name == "Firefox")
{
  $sql = mysql_query ("SELECT * FROM shouter ORDER BY id DESC LIMIT 1") or die( mysql_error() );
  if($vis = mysql_fetch_array($sql)) {
  echo '&nbsp;&nbsp;<font color="#000000" size="1">' . $vis['besked'] . '</font>';
  }
  else
  {
    echo "Ingen shouts..";
  }
}
?>
<?
$br = new Browser;

if($br->Name == "Opera")
{
  $sql = mysql_query ("SELECT * FROM shouter ORDER BY id DESC LIMIT 1") or die( mysql_error() );
  if($vis = mysql_fetch_array($sql)) {
  echo '&nbsp;&nbsp;<font color="#000000" size="1">' . $vis['besked'] . '</font>';
  }
  else
  {
    echo "Ingen shouts..";
  }
}
?>

Venlig hilsen
Jonatan Harring
- På forhånd, Tak!

Ps: Er der flere store browser ud over I.E, Firefox, og Opera?
Avatar billede simplus Nybegynder
11. december 2006 - 18:02 #1
Med hensyn til hvilke andre 'store' browsere der findes så kan jeg tilføje en enkel: Netscape! Den bliver stadig brugt en hel del.
Avatar billede jonatanharring Nybegynder
11. december 2006 - 18:03 #2
Netscape - allright..
Men kan nogle besvare mit problem?
Avatar billede simplus Nybegynder
11. december 2006 - 18:09 #3
Jo altså, jeg har lige fundet frem til en på www.dynamicdrive.com der står af den virker i alle browsere! Jeg har 'kun' Explorer, Firefox og Opera på min computer herhjemme og den er testet i dem alle 3.. Det virker perfekt!

Så mon ikke du kunne bruge den?

<script language="JavaScript1.2">

/*
Cross browser Marquee script- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Specify the marquee's width (in pixels)
var marqueewidth="300px"
//Specify the marquee's height
var marqueeheight="25px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=2
//configure background color:
var marqueebgcolor="#DEFDD9"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):

var marqueecontent='<nobr><font face="Arial">Thank you for visiting <a href="http://www.dynamicdrive.com">Dynamic Drive.</a> If you find this script useful, please consider linking to us by <a href="../link.htm">click here.</a> Enjoy your stay!</font></nobr>'


////NO NEED TO EDIT BELOW THIS LINE////////////
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}

if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
Avatar billede jonatanharring Nybegynder
11. december 2006 - 18:13 #4
Hm.. Hvad skal jeg med den kode du har skrevet ovenover?


PS: NETSCAPE SKAL OGSÅ HAVE SAMME UNDTAGELSE SOM FIREFOX & OPERA!
Avatar billede simplus Nybegynder
11. december 2006 - 18:22 #5
Altså, du kan jo prøve at erstatte den med din, husk lige at tage backup hvis det er noget stort..
Avatar billede showsource Seniormester
11. december 2006 - 18:22 #6
$find_ie = strtolower($_SERVER["HTTP_USER_AGENT"]);

if(false === strpos($find_ie, "msie")) {
echo"QUERY";
}else{
echo"MARQUE";
}
Avatar billede jonatanharring Nybegynder
11. december 2006 - 18:23 #7
Det er JavaScript?
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