Jump to content
GSForum - Segélyvonal

PHP kérdésem van


Recommended Posts

Posted

A Perfact-Pro még a megjelenés évében, 2002-ben kiadta itthon magyarul, de emlékezetem szerint nem a legjobban sikerült "honosítás".

Posted

Végül sima tömbbel oldottam meg. Csak a neveket olvassa adatbázisból, ami elég nagy adatmennyiség.

Posted

Elakadtam... ismét :)

 

Volna adatbázisban tárolt pdf linkek. Ezeket kiíratom a képernyõre, és radio gombok segítségével lehet kiválasztani, hogy az adott pdf-e kell-e vagy sem.

 

No mármost foreach ciklussal akarom végig futtatni, de nem tudom hogyan.

Eddig eljutottam:

foreach ( $_POST as $kulcs => $ertek){
                    
        
    $sql_m=dbQuery("SELECT * FROM melleklet WHERE m_id='".$kulcs."'  ");
    $tomb_m=dbFetchAssoc($sql_m);

    $pdf_nez=$pdf_nez."<br><a href=http://www.xxxxxxxxxx.xx/pdf/{$tomb_m['pdf']}>Letölthetõ melléklet</a><br>";
      
        }

form:
<input type=\"radio\" name=\"{$tomb_s['m_id']}\" value=\"i\" >
<input type=\"radio\" name=\"{$tomb_s['m_id']}\" value=\"n\" checked>

 

De azt nem értem/tudom megoldani, hogy csak azokat az adatokat kérdezze le amelyiknél az érték=i

Ezt nem tudom beletenni az SQL-be. Vagy nem is oda kéne??

Posted
foreach ( $_POST as $kulcs => $ertek){
  if($ertek=='i'){
   ....
   }
}

Posted

hát ez eszembe sem jutott :S

 

Köszönöm :)

  • 3 weeks later...
Posted

Hali!

 

Kicsit jobban elmélyedtem a PHP rejtelmeibe. Most egy olyan oldalt szeretnék készíteni, ahol egy véletlen generált szám (1-100) egy megadott értéket ad vissza. Egy egyszerû táblázat, valahogy így:

1-5 -> Krumpli

6-15 -> Káposzta

 

Erre kérnék tippet, milyen módszerrel tudom megoldani. A véletlen szám generálás sima ügy, ott akadtam el, hogy a véletlen szám a megadott értéket adja vissza.

 

Köszi!

Posted

???

 

 if ($véletlenszám >= 1 && $véletlenszám <= 5) {
    echo "Krumpli";
} elseif ($véletlenszám >= 6 && $véletlenszám <= 15) {
    echo "Káposzta";
} ...

 

echo helyett bármi, amire szükség van...

Posted

Oh. Azt hittem van valami "egyéb" megoldás.

Ezt a metódust használjam nagy mennyiségû adatnál is? 5-6 táblázatot kéne így "randomizálnom", ami azért elég jelentõs sormennyiségben tudok megvalósítani.

 

A táblázatokat funkcióba foglalom, és mindig az adott funkciót hívom meg, a választható menütõl függõen. Van valami megoldás, hogy a változókat fix táblázatba írjam ki? Eddig úgy sikerült mûködésre bírnom, hogy a funkcióban írattam ki az eredményeket, de egyszerûbb lenne, ha egy fix táblába tudnám küldeni a változó funkció eredményeit (a változók ugyan azok a funkciókban).

Posted

Hogy tudnám megtudni a feltöltött fájlom típusát?

Addig oké, hogy $_FILES[valami][type] , de hogy, mivel kell ezt összehasonlítani? most azt akarnám, hogyha a fájl .x kiterjesztésû, akkor ezt meg ezt csinálja vele. Akkor a == után mit írjak?

Posted

Az nem a type-ban van. (A type a MIME type-ot adja vissza.) A ['name']-ben van a fájlnév, onnan tudod kiszedni a kiterjesztést. Kismillió módszer van rá (sttrpos vagy substr -3 vagy explode '.' mentén stb.).

Posted

Van nekem egy ilyenem:

switch($_GET["oldal"])
{
case "hirek":
hirek();
break;
...
default:
hirek();
}

Na most, ha a valami.hu.valami.php?oldal=hirek -re megyek, megjeleníti hibátlanul a hirek() tartalmát, viszont ha csak a valami.php-t nézem, akkor nem. Most fogalmam nincs, miért van ez, esetleg tudnátok segíteni? :huh:

Posted

 

Én így csinálnám meg:

 

if(!isset($_GET['oldal'])) {     
     $GET['oldal'] == "hirek"
}

switch($_GET["oldal"])
{
case "hirek":
hirek();
break;
...
default:
hirek();
}

Posted

@kléni:

Ez azért van, mert a switch le sem fut, mivel hibát ad a vizsgált kifejezés.

Kiskalóz megoldása helyes.

Posted

Na de akkor pl itt miért van így, és miért működik? (az index.php-ban van benne, kipróbáltam tegnap, és meg is jelenítette ami a default -hoz volt írva)

 

szerk: hehe, most beletettem a fenti kódot, és kétszer jelenítette meg a híreket. kivettem, és simán az valami.php-t nézve megjelenítette a hírek()-t :D

  • 2 weeks later...
Posted

Az itt található kódra ezt a hibaüzenetet kaptam. Átnéztem az egészet, de nem találtam semmi hibát már benne, esetleg ti találtok?

Posted

Az if(isset($_GET["oldal"])-nál csak egy zárójel van a sor végén, magyarul az if nincs lezárva.

  • 2 weeks later...
Posted

Van egy szövegdoboz, abban beírtam több soros szöveget (szóval van benne újsor). Ezt beírtam az adatbázisba, azt meg kiírtam a lapra, és az új sorokat ugye nem jelenítette meg új sorban. Gondolom be kéne szúrni minden újsor végére a <br>-t. Ezt hogy tehetném meg?

Posted

Az adatbázisban nézzed meg, hogyan tárolja a sortöréseket. Ezeket a str_replace(); php függvénnyel tudod kicserélni. Pl:

 

$sortores=chr(13).chr(10);
$szoveg=str_replace($sortores,'<BR/>',$szoveg);

A $sortores az a karaktersor, ahogyan az adatbázisban a sortörések tárolva vannak. A $szoveg az adatbázis mezõ tartalma, amiben cserélni kell.

Posted

Hohó, XHTML kompatibilis lett, nem is tudtam. :)

  • 2 weeks later...
Posted

Volna egy problémám amit nem értek.

Volna ez a jelszó cserélő ellenőrző kis függvény:

function good_password($oldpass, $pass1, $pass2)
{
    $oldpass=trim($_POST['oldpass']);
    $pass1=trim($_POST['pass1']);
    $pass2=trim($_POST['pass2']);

    $error = false;

    if( $pass1 != $pass2 ){
       $error = "A két jelszó nem egyezik!";  
    } elseif (md5($oldpass) != $_SESSION['nick']['password'] ) {
       $error = "Hibás régi jelszót adott meg!";  
    } else {
        switch ($pass1) {
            case (strlen($pass1) < 8):
                $error = "Túl rövid jelszó!";
                break;

            case (!preg_match("/\d/", $pass1)):
                $error = "Hibás jelszó, nem tartalmaz számokat!";
                break;

            case (!preg_match("/[a-z]/i", $pass1)):
                $error ="Hibás jelszó, nem tartalmaz betűket!";
                break;
        }
    }

    if ($error == "") {
        return "OK";
    } else {
        return $error;
    }
}

Eddig tökéletesen működik.

Viszont ha a szövegeket kicserélem, mert egy külön php-ból olvasom ki a szöveget akkor már hibásan működik.

 

function good_password($oldpass, $pass1, $pass2)
{
    $oldpass=trim($_POST['oldpass']);
    $pass1=trim($_POST['pass1']);
    $pass2=trim($_POST['pass2']);

    $error = false;

    if( $pass1 != $pass2 ){
       $error = $lang['ketjelsz_nemegy'];  
       
    } elseif (md5($oldpass) != $_SESSION['nick']['password'] ) {
        
       $error = $lang['hibas_regi_jelszo'];  
    
    } else {
        
        switch ($pass1) {
            case (strlen($pass1) < 8):
                $error = $lang['rovid_jelszo'];
                break;

            case (!preg_match("/\d/", $pass1)):
                $error = $lang['hibas_jelszo_nincs_szam']; 
                break;

            case (!preg_match("/[a-z]/i", $pass1)):
                $error = $lang['hibas_jelszo_nincs_betu'];
                break;
        }
    }

    if ($error == "") {
        return "OK";
    } else {
        return $error;
    }
}

Ekkor teljesen kimarad az ellenőrzés, és átírja az adatot az adatbázisban.

 

 

De mint mondtam, ha a régi jelszó ellenőrzőt használom akkor ok minden de az újjal nem.

Posted

Csak arra tudok gondolni, hogy nincs a $lang-ban semmi, tehát a végén az ellenõrzésnél a TRUE ágra fut a végrehajtás.

Posted

Létezik a $lang.. és benne is vannak azok az adatok ...

Posted

Ebben a fájlban is létezik a $lang tömböd? Kipróbáltad?

Posted

A következőképpen vannak:

 

main.php -> ez hívja meg a conf.php-t amiben a függvények vannak, illetve a lang.php-t amiben a nyelvi fájlok vannak.

 

Ha a main.php elejére bemásolom ezt a függvényt akkor sem működik, pedig a lang.php-t eléri az oldal, mivel a többi szöveg rendben megjelenik.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...