DOM arama katarı [$ _POST] var mısınız?

0 Cevap php

Ben doğru bu başlık adında emin değilim, ama temelde ben bir $ _POST (bir grubun bir adı) bir değişken var ve ben gibi bir çizgide düğümün adı yerine eklemek istiyorum bu-

$lastvisits = $address->$band->getElementsByTagName("lastvisit");

burada $band olduğunu

$band = $_POST['band']

because the node inside of $address could be any name really, and might not exist. I'm sure there must be a simple way, but I'm not sure of the formatting.

O var ya da> getElementsByTagName ("LastVisit") bir hata-Fatal error değil, $ lastvisits = $ adres-> $ bandı getiriyor yoksa: olmayan bir nesne üzerinde) (bir üye işlev getElementsByTagName Çağrı in ..

XML

<?xml version="1.0"?>
<addresses>
<address>
    <ip>127.0.0.1</ip>
    <Beatles>
        <lastvisit>12/08/2006</lastvisit>
    </Beatles>
</address>
    <address>
    <ip>125.0.0.1</ip>
</address>
 </addresses>

Bu tam kodu:

    $doc = new DOMDocument();
$doc->load("votingxml/addresses.xml");
$addresses = $doc->getElementsByTagName("address");
$band = strval($_POST['band']);
$pVoted = false;
$pFound = false;

//Loop through the addresses nodes and see if the person has voted before for each( $addresses as $address )
{

$ips = $address->getElementsByTagName("ip");
            $ip = $ips->item(0)->nodeValue;
                            if ($ip == $domain){

                $pFound = true;             
            if ($address->$band == 'NULL'){
                 $bandfound= false;
                 $newBandElement = $doc->createElement($_POST['band']);
                 $newLastVisitElement = $doc->createElement('lastvisit');
                 $dayvalue = $doc->createTextNode($today);
                 $dayvalue = $newLastVisitElement->appendChild($dayvalue);

                 $newBandElement->appendChild($newLastVisitElement);
                 $address->appendChild($newBandElement);
                 $doc->save("votingxml/addresses.xml");
                 $pVoted = false;
            }
            else{

                 $bandfound =true;
                                 $lastvisits = $address->$band->getElementsByTagName("lastvisit");
                 $lastvisit = $lastvisits->item(0)->nodeValue;

                 if ($lastvisit == $today){
                        echo "alreadyvoted";
                        $pVoted = true;
                     }else{
                    $lastvisits->item(0)->nodeValue = $today;
                    $doc->save("votingxml/addresses.xml");
                    $pVoted = false;
                     }

            }
        }
        else if ($ip != $domain)
        {
            $pFound = false;
        }

}

Herhangi bir yardım büyük mutluluk duyacağız.

0 Cevap