[JS/CSS/PHP] Resolutie probleem

Pagina: 1
Acties:
  • 205 views sinds 30-01-2008
  • Reageer

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Ik wil aan de hand van de resolutie van de gebruiker een variable zetten. Deze variabele mag 4 waarden aannemen: 800, 1024, 1280, 1600. Daarvoor heb ik het volgde script gemaakt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$resolutiewidth     = "<script>document.write(screen.width);</script>";
$resolutieheight     = "<script>document.write(screen.height);</script>";
$resolutie            = "Uw resolutie is $resolutiewidth bij $resolutieheight pixels";

if ($resolutiewidth <= "800"){
   $res = "800";
}elseif ($resolutiewidth == "1024"){
   $res = "1024";
}elseif ($resolutiewidth == "1280"){
   $res = "1280";
}elseif ($resolutiewidth >= "1600"){
   $res = "1600";
}elseif ($resolutiewidth >= "801" && $resolutiewidth <= "1023"){
   $res = "800";
}elseif ($resolutiewidth >= "1025" && $resolutiewidth <= "1279"){
   $res = "1024");
}elseif ($resolutiewidth >= "1281" && $resolutiewidth <= "1599"){
   $res = "1280");
}else{
   $res = "1024";
}

echo "$resolutie";
echo "$res";
?>

Maar het werkt op 1 of andere manier niet, de variabelen $resolutieheight en $resolutiewidth krijgen wel de goed waarde maar $res word altijd 1024... wat doe ik nu fout? Of is de hele opbouw van het sciptje verkeerd en is er een veel betere manier?
Heb btw al gezocht met de search en met google...

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Je loopt nu PHP met javascript te combineren? :D Dude...

Je loopt een string (javascript-meuk, wordt niet geparsed ofzo hoor) te vergelijken met een integer...

Ik zou als ik jou was weer teruggaan naar het basisprincipe van client- en server-side scripten..

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je zit hier Javascript en PHP door elkaar te gebruiken. $resolutieheight bevat een script, geen getal. Je kan er dus ook niets mee vergelijken in PHP, hooguit in Javascript.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
en dat $resolutie wel de "goede" waarde geeft komt, omdat de browser op dat moment (echo "$resolutie"; ) een javascriptje voor z'n kiezen krijgt en dus parst, en dus de goede resolutie naar buiten gooit.

/me weet geen leuke quote voor in zijn signature


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Uuuh sorry ben net een paar weekjes met PHP enz bezig. Maargoed dan is eigenlijk m'n volgende vraag: hoe kan ik het wél oplossen?

  • Johnny
  • Registratie: December 2001
  • Laatst online: 24-04 11:10

Johnny

ondergewaardeerde internetguru

Je PHP wordt eerst geparsed, dan komjt er dus een string in die variablen te staan.

Dan wordt de pagina naar de browser verstuurd, pas als je die <script> dingen in je HTMl code zet worden ze door de browser uitgevoerd.

En dan hebben we het nog niet eens over het feit dat een resolutie-check in PHP heel raar en overbodig is.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • BARO
  • Registratie: Mei 2003
  • Laatst online: 18-11-2025
JavaScript is niet op deze manier met PHP te combineren.
Wat je wel zou kunnen doen (hetgeen ik heel erg vervelend vind) is een redirectje maken.

code:
1
2
3
4
5
6
7
<SCRIPT language="JavaScript">
 <!--
  if ((screen.width > 800) && (screen.Height > 600)){
   document.location = '_1024x768.php'; // en dan een variabele toekennen in PHP
  } // etc
 //-->
</SCRIPT>

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 25-04 20:26
Zo gaat het dus nooit werken. Je moet even voor de grap gaan rondneuzen in de verschillen tussen clienside en serverside. Javascript wordt pas in de browser uitgevoerd, PHP op de server. PHP kan dus op deze manier nooit aan jouw gewenste gegevens komen. De waarden die de variabelen in PHP worden dan ook gewoon gevult met het stuk javascript.

Je zult of een andere manier gegevens die beschikbaar zijn via javascript moeten terug sturen naar je php-script.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
KappuhH schreef op dinsdag 25 oktober 2005 @ 20:37:
Uuuh sorry ben net een paar weekjes met PHP enz bezig. Maargoed dan is eigenlijk m'n volgende vraag: hoe kan ik het wél oplossen?
Variables from outside PHP

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom heb je überhaupt de resolutie nodig?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
-NMe- schreef op dinsdag 25 oktober 2005 @ 20:41:
Waarom heb je überhaupt de resolutie nodig?
Om een lang verhaal kort te maken: voor ik ook maar wat van HTML/PHP gehoord had ben ik mn eerste site (VWO6.net) gaan uitdenken. Die bestaat geheel uit een tabel met plaatjes. Zodoende is hij alleen geschikt voor 1024x768, en aangezien ik zelf 1600x1200 draai wil ik dat veranderen. Nu heb ik het zo gebouwd dat bijvoorbeeld plaatje 1024_01.jpg in de script $res . '_o1.jpg' is en nu gooi ik dus de plaatjes 800_01.jpg, 1024_01.jpg, 1280_01.jpg en 1600_01.jpg online. En was de bedoeling dat $res bijvoorbeeld 1600 werd zodat hij 1600_01.jpg word. Beetje ingewikkeld verteld srry

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom gebruik je niet Javascript om dynamisch een andere stylesheet in te lezen?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Uuh je bedoeld een CSS stylesheet neem ik aan... eigenlijk vrij simpel: omdat ik ook vrijwel geen CSS kan :( Want hoe kan ik um met CSS een bepaalde afbeelding laten kiezen, daarna de afmetingen (van de tabellen waar de afbeelding in hoort) uit lezen?

[ Voor 40% gewijzigd door KappuhH op 25-10-2005 20:56 ]


  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 25-04 12:46
Mooie tijd om CSS te leren.

Waarom allemaal verschillende plaatjes? Niet handiger om hetzelfde plaatje in te laden en met width en height de grootte aan te passen?

edit:
Of begrijp ik het niet helemaal moet ook naar bed toe: morgen weer erg vroeg eruit :O

[ Voor 23% gewijzigd door FireWood op 25-10-2005 22:20 ]

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • Osiris
  • Registratie: Januari 2000
  • Niet online
h.edink schreef op dinsdag 25 oktober 2005 @ 22:19:
Mooie tijd om CSS te leren.

Waarom allemaal verschillende plaatjes? Niet handiger om hetzelfde plaatje in te laden en met width en height de grootte aan te passen?
Nee, da's lekker, sowieso resizen browsers nog steeds ultiem lelijk en is het niet logisch qua bandbreedte om een plaatje kleiner af te beelden dan dat ie werkelijk is..

  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 25-04 12:46
Osiris schreef op dinsdag 25 oktober 2005 @ 22:20:
[...]

Nee, da's lekker, sowieso resizen browsers nog steeds ultiem lelijk en is het niet logisch qua bandbreedte om een plaatje kleiner af te beelden dan dat ie werkelijk is..
Wie zij dat de browser het moest doen, je kunt rechtstreeks het met javascript werken. en de height/width attributes meegeven aan de img tag.
Extra brandbreedte valt ook wel mee. Ligt ook aan je compressie. Terwijl je ook weer betere chache mogelijkheden hebt(al is dat in dit geval niet zo belangrijk)
Verder vergroot het je beheersbaarheid vele malen. Je kunt met CSS ook je text bestanden flink verkleinen en het laden sneller maken.

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • Twan V
  • Registratie: Oktober 2001
  • Laatst online: 21-04 13:47

Twan V

...en er stralend uitzien

De manier waarop JS een plaatje verkleint is dezelde wijze als waarop de browser het verkleint. Niet echt mooi om te zien.

Daarbij, bij sommige afbeeldingen is het niet mogelijk om hem mooi en fysiek klein op te slaan.

Probeer dit eens (slordig, uit het blote bolletje):
JavaScript:
1
2
3
4
5
6
7
8
9
<SCRIPT language="JavaScript">
  <!--
    if ((screen.width > 800) && (screen.Height > 600)){
      document.write('<link rel="stylesheet" href="1024x768.css">');
    }else{
      document.write('<link rel="stylesheet" href="800x600.css">');
    }
 //-->
</SCRIPT>


Inderdaad, de css erachter moet je zelf leren ;)

Blaat het niet dan schaadt het niet...
Reflex Discoshow - Het beste wat je bruiloft kan overkomen


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Vergeet deze pagina niet, dé totale referentie voor CSS2 :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

En daarmee wordt dit definitief een clientside probleem. In PHP is het hier helemaal niet relevant om de resolutie te kennen, en zelfs al is ie dat wel, dan zul je die resolutie toch met Javascript via een GET-variabele door moeten geven aan PHP. Ik geef dit topic dus een schop over de schutting.

PW>>WG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat wil je uiteindelijk met de variabele doen?

Er wordt in dit topic meteen geroepen om CSS te leren, maar je kan natuurlijk die variabele ook gebruiken om stukjes dynamisch te genereren :)

JavaScript:
1
2
3
4
[nohtml]
var baseImgWidth = 600;
document.write("<img src= width=" + baseImgWidth +">")
[/]


Kan mooier, maar dit is ook een oplossing.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Ik heb het inmiddels opgelost. Heb het volgende javascript in de indexpagina gedrukt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<SCRIPT language="JavaScript">
 <!--
if (screen.width <= 800)
{
   document.location = 'site.php?res=800';
}
else if (screen.width == 1024)
{
   document.location = 'site.php?res=1024';
}
else if (screen.width == 1280)
{
   document.location = 'site.php?res=1280';
}
else if (screen.width >= 1600)
{
   document.location = 'site.php?res=1600';
}
else if ((screen.width >= 801) && (screen.width <= 1023))
{
   document.location = 'site.php?res=800';
}
else if ((screen.width >= 1025) && ($resolutiewidth <= 1279))
{
   document.location = 'site.php?res=1024';
}
else if ((screen.width >= 1281) && ($resolutiewidth <= 1599))
{
   document.location = 'site.php?res=1280';
}
else
{
   document.location = 'site.php?res=1024';
}
 //-->
</SCRIPT>


En het volgende in de pagina waar de site eigenlijk staat:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
switch ($_GET['res'])
{
    CASE 800:
    $res = '800';
    break;
    CASE 1024:
    $res = '1024';
    break;
    CASE 1280:
    $res = '1280';
    break;
    CASE 1600:
    $res = '1600';
    break;
    default:
    $res = '1024';
    break;
}
?>


En het werkt... tenminste bij mezelf, heb nog geen tijd gehad uitgebreid te testen. Dit is volgens mij niet de netste manier maar het werkt in ieder geval en dat was mn eerste doel...
De test is hier te vinden. Als iemand de tijd/moeite wil nemen om te kijken of de site ongeveer goed word weergegeven: graag!

  • Twan V
  • Registratie: Oktober 2001
  • Laatst online: 21-04 13:47

Twan V

...en er stralend uitzien

Ik word keurig doorverwezen naar 1280 :)

Maar, als je nou eens in plaats van...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
switch ($_GET['res'])
{
    CASE 800:
    $res = '800';
    break;
    CASE 1024:
    $res = '1024';
    break;
    CASE 1280:
    $res = '1280';
    break;
    CASE 1600:
    $res = '1600';
    break;
    default:
    $res = '1024';
    break;
}
?>

...eens dit probeert...
PHP:
1
2
3
4
5
6
<?php
    if(isset($_GET['res']) && intval($_GET['res']) > 0)
        $res = $_GET['res'];
    else
        $res = 1024;
?>

Blaat het niet dan schaadt het niet...
Reflex Discoshow - Het beste wat je bruiloft kan overkomen


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Ja dat werkt ook perfect. Maar als er dan op 1 of andere manier een andere waarde dan 800, 1024, 1280 of 1600 word aan 'res' dan werkt het hele zooitje niet. Maar dat zal volgens mij niet gebeuren.

Verder heb ik nog een klein probleempje. Dmv include() voeg ik een andere .php bestandje in de huidige code in. Hoe kan ik dan de variabele $res gebruiken in dat andere bestandje.
Voorbeeldje voor de duidelijkheid:
PHP:
1
2
3
4
<?php
$res = 1600
include "blaat.php";
?>

Nu wil ik in het bestand blaat.php dus weer diezelfde variabele $res aanroepen. Hoe doe ik dat?

  • Twan V
  • Registratie: Oktober 2001
  • Laatst online: 21-04 13:47

Twan V

...en er stralend uitzien

In principe wordt de code uit 'blaat.php' gewoon in het huidige bestand geplakt op de plaats waar je het include.

Tenzij dat je fucties (of classes) gebruikt, is de variabele gewoon bruikbaar.

Als je een functie gebruikt, zul je 'm moeten meegeven, of global moeten maken.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Blaat.php

// meegeven:
function blaat($num,$res){
    for ($i =0; $i < $num; $i++){
        echo "Mijn schermbreedte is ".$res."<br />\n";
    }
}

// of global aanroepen:
function mekker(){
    global $res;  // als de variabele bekend is op de plek waar de functie 
                  // aangeroepen wordt, wordt 'ie ook gebruikt

    echo "Mijn schermbreedte is ".$res."<br />\n";
}


Succ6!

Blaat het niet dan schaadt het niet...
Reflex Discoshow - Het beste wat je bruiloft kan overkomen


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Dat werkt! Was een typfoutje van mijn kant 8)7 |:( . Heb echter nu weer een nieuw probleempje in dezelfde genre. Heb een gastenboek, dat gastenboek laat ik verwerken met verwerking.php. Dit bestand is zegmaar stand-alone. Nu wil ik echter in dit bestand weer die variabele $res aanroepen. Dit lukt echter niet met global $res, hoe moet ik dat nu aanpakken? Of is dit onmogelijk?

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

post je code ff

Going for adventure, lots of sun and a convertible! | GMT-8


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Van de verwerkingspagina?

verwerking.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
global $res;
if ($_POST["naam"] == "") $naam = "Anoniem";
else $naam = $_POST["naam"];

if ($_POST["bericht"] == "") 
{
    header("Location: http://www.vwo6.net/site.php?res=$res&p=8");
}
$bericht = nl2br($_POST["bericht"]);
$tijdstip = date("d F Y - H:i:s" ,strtotime("+6 hours"));
$query = "INSERT INTO postit (naam, bericht) VALUES ('$naam','$bericht')";
mysql_connect("localhost", "naam", "w8woord");
mysql_select_db("gastenboek");
mysql_query($query) or die(mysql_error());
mysql_close();
header("Location: site.php?res=$res&p=8");
exit(0);
?>


Met LiveHTTPHeaders ben ik er achter gekomen dattie bij $res gewoon niks invult en dattie gewoon naar http://www.vwo6.net/site.php?res=&p=8 gaat... de variabele $res is dus gewoon leeg.

[ Voor 48% gewijzigd door KappuhH op 29-10-2005 20:53 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

vraag $res nog eens op met $_GET['res'] !

Going for adventure, lots of sun and a convertible! | GMT-8


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Probleem opgelost... ik heb als verwerkingspagina in de Action van de form ook de res toegevoegd... de action is verwerking.php?res=$res in plaats van verwerking.php... 'res' word echter niet gebruikt in verwerking.php maar anders kon ik met $_GET['res'] de $res niet meer opvragen... het is dus wel gelukt maar op een minder valide manier. :|

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 17:30

RM-rf

1 2 3 4 5 7 6 8 9

Met alle respect, maar misschien kan het zin hebben het 'concept' achter je programmeer-wijze eens te overdenken ...
wat je nu ziet is dat je 'oplossing' hoogstwaarschijnlijk problemen blijven opleveren (het continue doorgeven van de resolutie in de GET-string) ... en dan ben je heel lang bezig met telkens weer het fixen van je scirpt aan die handelswijze die zelf niet optimaal is ... leuk als jezelf bezig wilt houden, niet leuk als je gewoon een robuste oplossing wilt leveren ...

Allereerst, het is onpraktisch om een clientside waarde, nl de gebruikersresolutie als kennelijk belangrijke data mee te geven aan een serverside scipt (denk aan de scheiding van content en layout)
Normaal HTML+CSS biedt voldoende mogelijkheden om een visuele oplossing te leveren die niet afhankelijk is van serverside scripting om zich aan te passen aan een bepaalde venster-grootte
ofwel door gewoon op een fixed breedte te werken van 800 of 1024, of anders door bepaalde 'liquid'-elementen te maken, de breedte in percentage (width:100%, evt zelf min-width en max-width te gebruiken)...

Als je per sé wilt blijven hangen aan het doorgeven van de resolutie aan je serverside script, sla deze dan in $_SESSION op, en enkel de eerste keer bij het niet bestaan van die sessionwaarde, genereer je een javascript dat een hiddenframe laad en dan direkt bij het laden van die pagina aan de clientside een hidden frame genereert welke de resolutie meegeeft...
Te overwegen valt dan ook om niet zozeer de scherm-breedte, maar bewust de venster-breedte mee te geven, aangezien een venster lang niet altijd fullscreen is.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Aangezien ik slechts sinds kort met PHP en HTML en dergelijke bezig ben (vwo6.net is dan ook m'n eerste site) had ik nog geen weet van de $_SESSION functie en heb even op PHP.net gekeken maar snap het niet echt (sorry). Voor mij is dit dus de voorlopige oplossing. Als iemand echter tijd/zin heeft om hier even kort uit te loggen hoe het met die sessions werkt: graag!

Owja en over de manier hoe ik met de resoluties omga: als ik width: 100% oid zou gebruiken zou mn hele layout naar de **** zijn omdat hij uit vrijwel alleen plaatjes bestaat (wat ik dus nooit weer ga maken). En om plaatjes door de browser te laten resizen worden ze volgens mij niet echt veel mooier op.

[ Voor 30% gewijzigd door KappuhH op 31-10-2005 16:18 ]


  • disjfa
  • Registratie: April 2001
  • Laatst online: 08-01 11:17

disjfa

be

Dat zou je ook gerust zelf kunnen nalezen op php.net. Daar staat het al dus is het een beetje nutteloos om het hier opnieuw in te gaan tikken :)

Verder zou ik ook afstappen van het meerdere resolutie probleem aangezien je er alleen maar meer problemen door krijgt. Ik bedoel hoeveel serieuze sites ken jij nu die zich druk maken om perfect werkend te zijn op diverse resoluties. Geen. Ik kan wel weer de hele discussie erbij halen van welke resolutie je kan gebruiken erbij halen maar die is ook al 200.000 keer geweest.

disjfa - disj·fa (meneer)
disjfa.nl


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 17:30

RM-rf

1 2 3 4 5 7 6 8 9

KappuhH schreef op maandag 31 oktober 2005 @ 16:15:
Aangezien ik slechts sinds kort met PHP en HTML en dergelijke bezig ben (vwo6.net is dan ook m'n eerste site) had ik nog geen weet van de $_SESSION functie en heb even op PHP.net gekeken maar snap het niet echt (sorry). Voor mij is dit dus de voorlopige oplossing. Als iemand echter tijd/zin heeft om hier even kort uit te loggen hoe het met die sessions werkt: graag!
heel simpel:

PHP:
1
2
3
4
5
6
7
8
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
   $_SESSION['count'] = 0;
} else {
   $_SESSION['count']++;
}
echo( $_SESSION['count'] ) ;

herlaad je deze pagina, zul je de 'count' waarde steeds zien oplopen... de warde wordt 'herinnerd'
Owja en over de manier hoe ik met de resoluties omga: als ik width: 100% oid zou gebruiken zou mn hele layout naar de **** zijn omdat hij uit vrijwel alleen plaatjes bestaat (wat ik dus nooit weer ga maken). En om plaatjes door de browser te laten resizen worden ze volgens mij niet echt veel mooier op.
Dat bedoel ik ermee dat je nu bezig bent om teschnische oplossingen te bedenken, voor fouten in je basis-concept ...

Je kunt ervoor kiezen om steeds verder daarin te gaan, maar vraag jezelf af of je niet uiteindelijk veel meer tijd verliest door het continu om bepaalde zaken 'heen te moeten werken' ...
Ik heb het idee gezien je uitleg dat je jezelf enkel dieper in een wespennest steekt door zulk een verkeerde aanpak, waardoor je veel tijd verliest, terwijl soms tijdig een paar stappen terugdoen, je veel werk kan besparen.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Dat ben ik volledig met je eens. Maar omdat ik er best veel tijd in gestoken heb om die layout te maken wil ik er nu ook mee doorgaan. En aangezien ik bezig ben met het leren van PHP is het volgens mij niet erg om op problemen te stuiten. De site heeft verder geen hoge prioriteit dus hoef ik er niet persé direct aan werken, maar doe het verder alleen omdat ik het leuk vind. Maar zou ik nu met dit layout stoppen dan heb ik weer een gevoel dat ik veel tijd weggegooid heb en voel me dan (denk ik) een beetje een verliezer ;)


PHP:
1
2
3
4
5
6
<?php
if(isset($_GET['res']) && intval($_GET['res']) > 0)
        $res = $_GET['res'];
    else
        $res = 1024;
?>

wordt dus:
PHP:
1
2
3
4
5
6
7
<?php
session_start();
if(isset($_GET['res']) && intval($_GET['res']) > 0)
        $_SESSION['res'] = $_GET['res'];
} else {
   $_SESSION['res'] = 1024;
?>

En dan kan ik verder op de andere pagina's gewoon $_SESSION['res'] gebruiken ipv $res?

  • disjfa
  • Registratie: April 2001
  • Laatst online: 08-01 11:17

disjfa

be

Zolang je ergens een session_start() hebt staan ja.

Maar je bent het er mee eens dat je moet stoppen omdat als je doorgaat je php kennis niet zal verbeteren maar jezelf alleen maar in ergere situaties gaat belanden. Maar toch ga je er toch mee door :? Beetje vreemde redenering. En noem het niet verliezen, noem het een eerste poging waar nog vele aan te pas gaan komen.

disjfa - disj·fa (meneer)
disjfa.nl


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Ik belande dus nu in zo'n situatie, als gevolg: ik heb iets geleerd over sessions. Heb me dus uit zo'n lastige situatie gewerkt. Misschien wel weer in een andere lastige situtatie maar dat zie ik dus nu nog niet. Maar die kan ik dan weer oplossen dmv weer iets nieuws te leren. De site was overgens al 'af' maar omdat ik er zelf nóg iets meer van wou maken heb ik me weer in de problemen gestort om en vervolgens weer uit omhoog te krabellen, met als gevolg dat ik weer iets geleerd heb. Ik doe dit voor m'n plezier en niet voor beroep of iets dergelijks.

  • Digihelp ®
  • Registratie: Maart 2001
  • Laatst online: 21-04 10:15
KappuhH schreef op maandag 31 oktober 2005 @ 17:01:
...wordt dus:
PHP:
1
2
3
4
5
6
7
<?php
session_start();
if(isset($_GET['res']) && intval($_GET['res']) > 0)
        $_SESSION['res'] = $_GET['res'];
} else {
   $_SESSION['res'] = 1024;
?>

En dan kan ik verder op de andere pagina's gewoon $_SESSION['res'] gebruiken ipv $res?
Als je met sessies gaat werken moet je in eerste instantie natuurlijk checken of de sessie al bestaat, want dan hoef je niet meer naar de get waarde te kijken. In jouw code wordt je opgeslagen resolutie steeds 1024 als je geen get waarde meestuurd, en dat wilde je juist niet.

PHP:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if(!isset($_SESSION['res']))  // ga alleen verder als sessie niet bestaat
{
    if(isset($_GET['res']) && intval($_GET['res']) > 0)
         $_SESSION['res'] = $_GET['res'];
    else 
         $_SESSION['res'] = 1024;
}
?>

[ Voor 20% gewijzigd door Digihelp ® op 31-10-2005 18:35 ]


  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Ik heb dus die code gebruikt maar krijg de volgende melding:
code:
1
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/vwo6net/public_html/site.php:3) in /home/vwo6net/public_html/site.php on line 4

Wat kan ik hier aan doen? want ik controleer eerst wel of de sessie bestaat... met if(!isset(.... enz

Verwijderd

Voorkom dat je script(s) eerder al output (+ header) verstuurd.
I.c. de start van je sessie voor eventueel eerdere output plaatsen in je script(s) en zorgen dat geen ongewenste whitespaces in je script(s) staan.
Google said..

[ Voor 40% gewijzigd door Verwijderd op 01-11-2005 18:54 ]

Pagina: 1