• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Php in variablen für html?

Fr3ddy

Mitglied
Hi,

ich habe folgendes problem, ich habe php und html code vermischt, jetzt ist mir aber aufgefallen, dass ich bezüglich des cookies, dass php vor den html code setzten muss. Wie kann ich denn die php ausgaben in variablen setzten, so dass ich die varablen dann einfach in den html code einsetzten kann?

Hier der komplette code:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cookies</title>
<script type="text/javascript">
    function SetCookie_in(cookieName,cookieValue,nDays) {
             cookieName = "Test";
             cookieValue = "ish_in";
             nDays = "350";
             var today = new Date();
             var expire = new Date();
             if (nDays==null || nDays==0) nDays=1;
             expire.setTime(today.getTime() + 3600000*24*nDays);
             document.cookie = cookieName+"="+escape(cookieValue)
                             + ";expires="+expire.toGMTString();
}
    function SetCookie_out(cookieName,cookieValue,nDays) {
             cookieName = "Test";
             cookieValue = "ish_out";
             nDays = "350";
             var today = new Date();
             var expire = new Date();
             if (nDays==null || nDays==0) nDays=1;
             expire.setTime(today.getTime() + 3600000*24*nDays);
             document.cookie = cookieName+"="+escape(cookieValue)
                             + ";expires="+expire.toGMTString();
}
</script>
<style type="text/css">
#overlay{
    width:250px;
    height:100px;
    background-color:#CCC;
}
body{
    position:relative;
}
</style>
</head>

<body>
<?php
require_once('geoplugin.class.php');

$geoplugin = new geoPlugin();
$geoplugin->locate();
$lang1 = array("DE", "en");
$lang2 = array("US", "be");


echo "<h1>Startseite</h1>";
if( !isset($_COOKIE['Test']) || $_COOKIE['Test'] == '' ) {                     //Abfrage ob cookie vorhanden
    echo '<p>Cookie nicht vorhanden.</p>';
    echo "Ländercode: ";
    echo $geoplugin->countryCode;

           if (in_array($geoplugin->countryCode, $lang1)){                     //Abfrage ob geoloc in array1 ist
                    setcookie("Test", "ish_in");
?>
                <div id="overlay">
                    <p>Akzeptieren Sie cookies?</p>
                    <a onclick="SetCookie_in()" href="#">Ja</a>
                    <a onclick="SetCookie_out()" href="#">Nein</a>
                </div>
<?php
           }
           else if (in_array($geoplugin->countryCode, $lang2)){                //Abfrage ob geoloc in array2 ist
                 echo "<p>Keine cookie Abfrage.</p>";
                 setcookie("Test", "ish_in");
           }else{                                                            //Fallback
?>
                <div id="overlay">
                    <p>Akzeptieren Sie cookies?</p>
                    <a onclick="SetCookie_in()" href="#">Ja</a>
                    <a onclick="SetCookie_out()" href="#">Nein</a>
                </div>
<?php
           }
} else if( $_COOKIE['Test'] == 'ish_in' ) {
        echo '<p>Cookie vorhanden.</p>';
        echo '<p>Eloquascript wird geladen.</p>';
    }else {
        echo '<p>Cookie vorhanden.</p>';
        echo '<p>Eloquascript wird nicht geladen.</p>';
}  
?>
</body>
</html>

LG & danke
 
Es gibt in den aller seltensten Fällen überhaupt einen Grund, warum ein Cookie nicht vor irgendeiner Ausgabe gesetzt werden könnte. Dein Script-Aufbau ist ganz einfach falsch.
 
Hallo,

das nicht im EVA-Prinzip ist :O)
Eingabe-Verarbeitung-Ausgabe

Eingabe ist in der Regel die URL bzw Seitenaufruf
Verarbeitung ist der PHP code der ganz am anfang steht
Ausgabe ist der HTML code wo dann auch das ergebnis des PHP code eingebettet wird.

In deinem Fall.
ganzer PHP code von geoplugin und COOKIE ganz an den Anfang vor jedem html code.
Die ergebnisse in einer oder mehreren Variablen zwischenspeichern und dann die Variablen unten im HTML code mit echo ausgeben.

Cheffchen
 
Danke, ja das weis ich ja, dass der php code ganz am anfang kommen muss aber wie fasse ich jetzt die ausgabe des php in variablen und gebe sie im html aus, gibts da irgend wo ein tutorial?
 
Och büdde, denk' doch mal mit!
PHP:
<?php
  require_once('geoplugin.class.php');  
  $geoplugin = new geoPlugin(); 
  $geoplugin->locate(); 
  $lang1 = array("DE", "en"); 
  $lang2 = array("US", "be");

  $cookieIsSet = false;
  
  if (in_array($geoplugin->countryCode, $lang1))
  {  
     setcookie("Test", "ish_in");
     $cookieIsSet = true;
  }
  else if (in_array($geoplugin->countryCode, $lang2))
  {
     setcookie("Test", "ish_in");
     $cookieIsSet = true;
  }
?>  
<html>
<body>
:
:  HTML-Code
:
:
<?php
if (! $cookieIsSet)
 echo '<div id="overlay">
        <p>Akzeptieren Sie cookies?</p>
        <a onclick="SetCookie_in()" href="#">Ja</a>
        <a onclick="SetCookie_out()" href="#">Nein</a>
       </div>';
?>
:
:
:  HTML-Code
:
:
</body>
</html>
 
Zurück
Oben