Portál AbcLinuxu, 10. května 2025 04:05

Dotaz: Jak vytvořit instanci v php z GET

29.7.2013 00:24 PEPA
Jak vytvořit instanci v php z GET
Přečteno: 238×
Odpovědět | Admin
Ahoj, poradil by prosím někdo, jak v php vytvořit instanci s názvem který je v url?

Příklad: http://www.domain.ltd/?nazev=pepa

a potřebuji vytvořit instanci $page = New Pepa(...);

Díky za pomoc
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.7.2013 01:31 Kit
Rozbalit Rozbalit vše Re: Jak vytvořit instanci v php z GET
Odpovědět | | Sbalit | Link | Blokovat | Admin
Primitivně bez ošetření možných útoků třeba takto:
<?php
$class = basename($_GET[nazev]);
$page = new $class();
Bezpečnější bude nejprve to slovo prohnat slovníkem povolených slov a nebo ještě lépe neblbnout s třídami a umístit si obsah stránek do databáze.
29.7.2013 12:09 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vytvořit instanci v php z GET
Odpovědět | | Sbalit | Link | Blokovat | Admin
<?php
$page = NULL;
if(isset($_GET['nazev'])){
  switch(strtolower($_GET['nazev'])){
    case 'pepa': $page = new Pepa();
                 break;
  }
}
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.7.2013 12:32 Kit
Rozbalit Rozbalit vše Re: Jak vytvořit instanci v php z GET
Používám to v této podobě:
<?php

function factory($nazev) {
    switch ($nazev) {
        case 'pepa': return new Pepa();
        case 'franta': return new Franta();
    }
    throw new Exception('neznámá stránka', 404);
}

if (isset($_GET['nazev'])){
    $page = factory(strtolower($_GET['nazev']));
}

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.