Was bitte ist hier Falsch

Begonnen von NeMeSiSX2LC, 11 März 2005, 09:42:37

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

NeMeSiSX2LC

function CheckVoted($id, $lastid, $rub){

global $modulefolder, $wait;

$ip=getenv("REMOTE_ADDR");
$time=time();
$time1=time()-$wait;
$time2=date("H:i", $time1);
$file="modules/$modulefolder/votings/voted_".$ip.".cvs";
if(file_exists($file)){
if(filemtime($file)>$time1){
$fp=fopen($file,"r");
while(!feof($fp)){
$data=fgets($fp, 1024);
$data=explode("|", $data);
if($data[0]==$id&&$data[1]>$time1){
Header("Location:modules.php?name=$modulefolder&action=vote&id=$lastid&rub=$rub");
exit();
}
}
$fp=fopen($file,"a+");
$content="$id|$time\n";
fwrite($fp, $content);
chmod($file, 0644);
fclose($fp);
}else{
unlink($file);
$fp=fopen($file,"a+");
$content="$id|$time\n";
fwrite($fp, $content);
chmod($file, 0644);
fclose($fp);
}
}else{
$fp=fopen($file,"a+");
$content="$id|$time\n";
fwrite($fp, $content);
chmod($file, 0644);
fclose($fp);
}

}


Also der code soll verhindern das ein User Bilder sieht die er schon bewertet hat. Soweit sogut. Bloss wenn keine Bild mehr da sind die unbewertet sind kack das teil voll ab mit einer Melden wegen cookie time überschreitung oder so.

Also was müsste da oben noch rein das er da zb eine Meldung ausgibt das zur Zeit keine Bilder zum Voten anliegen.
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

jubilee

Hmmmm
Kann es sein, das immer nur ein Eintrag in der
Datei steht ??
Zitatif(filemtime($file)>$time1){
   $fp=fopen($file,"r");
      while(!feof($fp)){
      $data=fgets($fp, 1024);
      $data=explode("|", $data);
         if($data[0]==$id&&$data[1]>$time1){
      Header("Location:modules.php?name=$modulefolder&action=vote&id=$lastid&rub=$rub");
         exit();
         }
      }
   $fp=fopen($file,"a+");
   $content="$id|$time\n";
   fwrite($fp, $content);
   chmod($file, 0644);
   fclose($fp);
   }
Wenn Filedatum größer als $time1 (aktuelle Zeit minus $wait) wird die genannte Aktion durchgeführt.
Wenn das eine wartezeit realisieren soll, ist die If anweisung mit falschrum. In dem Fall müsste $filemtime kleiner sein als time()-$wait ?!
Aber was mich mehr irritiert :
Die else-Anweisung anschließend :
Zitat
}else{
   unlink($file);
   $fp=fopen($file,"a+");
   $content="$id|$time\n";
   fwrite($fp, $content);
   chmod($file, 0644);
   fclose($fp);
   }
Soll wenn die if-Bedingung nicht zutrifft die cvs-Datei wirklich mit unlink gelöscht werden ?
dann wird das File ja regelmäßig gelöscht und alle bisherigen Einträge sind verschwunden.
Soll das so realisiert werden, oder ist mit der Zeitauswertung estwas anderes gemeint ?
MfG
jubilee

NeMeSiSX2LC

Du jubi ka das Teil ist nicht von mir. Hab nur raus bekommen das diese funktionen den Fehler Produziert.

Aber so wie ich das gesehen hab werden mehrere Sachen eingetragen.
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

jubilee

ZitatAber so wie ich das gesehen hab werden mehrere Sachen eingetragen.
Jo, hast recht.
Das file wird nur gelöscht, wenn das Filedatum kleiner ist als aktuelles Datum minus einer Wartezeit ($wait).
Die Zeitfunktion kann auch so gedeutet werden, dass die Votings nur für eine bestimmte Zeit ($wait) gespeichert werden,
und dann das File gelöscht wird.
Irgedwie wird alles wirrer
Zitat
if($data[0]==$id&&$data[1]>$time1){
      Header("Location:modules.php?name=$modulefolder&action=vote&id=$lastid&rub=$rub");
         exit();

Bedeuet ja, das nur zum im Header-Statement angegebener Funktion gewechselt wird, wenn die besagte ID schon in der Datei steht ...
Also schon mal eingetragen wurde.
Hmmm ... Lässt sich so schwer sagen, wie das Teil im zusammenspiel mit dem rest vom Script arbeitet.
So für sich gesehen kann ich noch nicht viel damit anfangen ...

NeMeSiSX2LC

Das der Bereich im Script:
        ($rub == "" || $rub == -1) ? $cat = "" : $cat = "AND rub = $rub";


        $result = sql_query("SELECT * FROM ".$prefix."_bis WHERE valid = '1' $cat");
        $num_rows = sql_num_rows($result);
        if ($num_rows != 0):
srand ((double)microtime()*1000000);
        $rand = rand(0,$num_rows-1);
        mysql_data_seek ($result, $rand);
        $array1 = sql_fetch_array($result);
#CheckVoted($array1[0], $id, $rub);

        if ($action == "vote"):

    if (!empty($id)){
    $checkip = CheckIp($id);
    $sqlStr = "SELECT * FROM ".$prefix."_bis WHERE id=$id";
    $result = sql_query($sqlStr);
    $array = sql_fetch_array($result);
    $hits = $array[3];
    $mean = $array[2];

    if($rank!="" && $checkip != -1 ) {
                if($hits == 0) {
                    $mean = $rank;
                    (int)$hits++;
               } else {
(int)$hits++;
$mean = $mean + $rank;
               }
                // echo "newmean = $newMean";
                $sqlStr = "UPDATE ".$prefix."_bis SET mean=$mean, hits=$hits WHERE id=$id";
                // echo $sqlStr;
                $result = sql_query($sqlStr);
    }
    if ($hits > 0) $prmean = round (($mean/$hits), 2);
}
        endif; //($action == "vote")


Und das die funktion die denke ich zumindestens die vote sperre generiert:

function CheckIp($id){

global $modulefolder, $wait;

$ip=getenv("REMOTE_ADDR");
$time=time();
$time1=time()-$wait;
$time2=date("H:i:s", $time1);
$file="modules/$modulefolder/votings/$id.cvs";

if(file_exists($file)){
if(filemtime($file)>$time1){
$fp=fopen($file,"r");
while($data=fgetcsv($fp, 1024)){
if($data[1]==$ip&&$data[0]>$time1){
return-1;
exit();
}
}
$fp=fopen($file,"a+");
$content="$time, $ip\n";
fwrite($fp, $content);
fclose($fp);
}else{
unlink($file);
$fp=fopen($file,"a+");
$content="$time, $ip\n";
fwrite($fp, $content);
chmod($file, 0644);
fclose($fp);
}
}else{
$fp=fopen($file,"a+");
$content="$time, $ip\n";
fwrite($fp, $content);
chmod($file, 0644);
fclose($fp);
}

}
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

NeMeSiSX2LC

Haste da ne Idee?? Oder sollte man lieber das sprich umschreiben das dieser Check über DB läuft?
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

NeMeSiSX2LC

CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

Andi

nicht schieben, besser mal ne gscheite Fehlerbeschreibung....
ZitatSoweit sogut. Bloss wenn keine Bild mehr da sind die unbewertet sind kack das teil voll ab mit einer Melden wegen cookie time überschreitung oder so.

Anrufer beim ADAC:
Mein Auto ist stehengeblieben, weil da ein Zeiger auf 0 steht....
schön´s Grüssle, Andi

NeMeSiSX2LC

Kann es grad nur im IE Test da und da Läd er sich grad Tot und passiert garnix mehr..
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

NeMeSiSX2LC

Da kommt im FF: Umleitungs-Limit überschritten. Die von Ihnen angeforderte Seite konnte nicht geladen werden... Ist ne Win Meldung..
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

Andi

so kommen wir da nicht weiter....

Was macht ne Umleitung?
Sicher irgend ein header() Befehl....
Was macht man da?
Alle auskommentieren, und guggen wo's hängt.
schön´s Grüssle, Andi

NeMeSiSX2LC

Irgendwas klemmt da an dem File Managment... Die Frage ist nur wieder was

Davon mal abgesehen ist da überhaupt keine weiterleitung. Bloss File auslesen oder löschen oder neu schreiben...
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

RiotheRat

Ist bei Dir mod_rewrite an?

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

NeMeSiSX2LC

CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

RiotheRat

Oke - dann war ich auf der falschen Spur ... wenn beim sym-Links erstellen was falsch läuft und der Apache sich halb bewusstlos rennt quitiert das der IE auch gerne mit "Umleitungs-Limit überschritten" ... deshalb die Nachfrage ...

RtR
Unaufgeforderte PNs & Emails werden ignoriert

Erst wenn die letzte Zeile Code verhunzt, der letzte Server gehackt und der letzte Script-Kidde befriedigt ist, erst dann, werdet Ihr feststellen, dass Nuke nicht sicher ist...

NeMeSiSX2LC

Macht ja nur der FF, IE rödelt dann bis zu erbrechen weiter...
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1

Andi


Die pack ich später aus  8)
schön´s Grüssle, Andi

NeMeSiSX2LC

Ob´s Hilft bin ja gespannt... :D
CMS-Version: pragmaMx 0.1.8, 1.20.4.5/2006-03-10     
PHP-Version: 5.1.2
MySQL-Version: 5.0.15-max-log
Server-Version: Apache/2.0.55
phpMyAdmin-Version: 2.7.0-pl1