Frage zum timestamp und noch ne kleine Javascript Frage

Hausl

Hausl

Aktives Mitglied
Thread Starter
Dabei seit
02.11.2009
Beiträge
709
Reaktionspunkte
56
Hallo Leute,

ich hätte 2 kleine Fragen, einmal zu PHP und einmal zu Javascript.

ich habe in meiner Seite ein Formular zum Bildupload, und übergeb vor dem Dateinamen noch den Timestamp um zu vermeiden, dass eine gleich benannte Datei eine andere überschreibt.

Der Code dazu sieht folgendermaßen aus:

PHP:
$timestamp = time();
			$success = move_uploaded_file($_FILES["UserbildNeu"]["tmp_name"],$uploadmitglieder.$timestamp."_".$_FILES["UserbildNeu"]["name"]);
			if($success) {
				createPic($uploadmitglieder,$timestamp."_".$_FILES["UserbildNeu"]["name"],"thumb/",95);

damit wirde der Timestamp vor dem Dateinamen angehängt und dazwischen ein _
mir würde aber besser gefallen, wenn der Timestam hinten dranhängt, damit man zumindest die Datei gleich erkennt. Sollte ja kein Problem sein, dache ich...

Habs so gemacht:
PHP:
$uploadmitglieder.$_FILES."_".$timestamp

dadurch wird das bild dann aber als ARRAY_ abgespeichert????

$uploadmitglieder ist die Variable, in der der Zielordner gespeichert ist.

und die zweite Frage:

habe zur Auflistung der angelegten Mitglieder im editierbaren Bereich alle Formulare per CSS Class auf hidden gesetzt und lasse nur den Namen anzeigen. Per Click wird folgender Javascript Code ausgeführt, damit das jeweilige Formular dann sichtbar wird:

Code:
var last = 0;
function userAnzeige(cnt) {
	document.getElementById("useranzeige"+last).style.display = "none";
	document.getElementById("useranzeige"+cnt).style.display = "block";
	last = cnt;
}

das klappt soweit prima, und bei Klick auf ein anderes Mitglied schiessen alle und nur das jeweilige Formular wird wieder angezeigt.

Was ich nun möchte: wenn ich ein Formular mit dieser JS Function anzeigen lasse, möchte ich, dass es bei erneutem Klick wieder schließt. Hat da jemand nen Tip dazu?

Vielen Dank :)
 
Habs so gemacht:
PHP:
$uploadmitglieder.$_FILES."_".$timestamp

dadurch wird das bild dann aber als ARRAY_ abgespeichert????

Du musst den Rest vom Array schon mit angeben:
PHP:
$uploadmitglieder.$_FILES["UserbildNeu"]["name"]."_".$timestamp




Was ich nun möchte: wenn ich ein Formular mit dieser JS Function anzeigen lasse, möchte ich, dass es bei erneutem Klick wieder schließt.

Code:
var last = 0;
function userAnzeige(cnt) {
	if(cnt != last) {
		document.getElementById("useranzeige"+last).style.display = "none";
		document.getElementById("useranzeige"+cnt).style.display = "block";
	} else {
		document.getElementById("useranzeige"+cnt).style.display = "none";
	}
	last = cnt;
}

So in etwa?
Hab's jetzt nicht getestet.
 
Du musst den Rest vom Array schon mit angeben:
PHP:
$uploadmitglieder.$_FILES["UserbildNeu"]["name"]."_".$timestamp






Code:
var last = 0;
function userAnzeige(cnt) {
	if(cnt != last) {
		document.getElementById("useranzeige"+last).style.display = "none";
		document.getElementById("useranzeige"+cnt).style.display = "block";
	} else {
		document.getElementById("useranzeige"+cnt).style.display = "none";
	}
	last = cnt;
}

So in etwa?
Hab's jetzt nicht getestet.

Hey, danke, hat geklappt ( Beides ) :)

Bei der Javascript Function funktioniert das ein- und ausblenden halt nur einmal, also wenn ich das Formular wieder abgeblendet habe, lässt sie sich nicht wieder einblenden.
Achja, und bei neugeladener Seite lässt sich das erste Formular nicht öffnen, ich muss immer erst ein anderes öffnen, damit dann auch das erste reagiert.
 
Zuletzt bearbeitet:
Hallo, ich postemal den bisherigen JS Code und den Bereich wo die Funktion aufgerufen wird.

Das mit dem timestamp ist schon geklärt, nur hier hab ich noch das Problem, dass beim 2ten Klick das Formular zwar wieder schliesst, bei 3ten jedoch nicht mehr öffnet, es muss zwischendurch ein anderes angeklickt werden.

Code:
var last = 0;
function userAnzeige(cnt) {
	if(cnt != last) {
		document.getElementById("useranzeige"+last).style.display = "none";
		document.getElementById("useranzeige"+cnt).style.display = "block";
	} else {
		document.getElementById("useranzeige"+cnt).style.display = "none";
	}
	last = cnt;
}

PHP:
<form enctype="multipart/form-data" name="frmAdmin" id="frmAdmin" method="post" action="">
	<input type="hidden" name="welcheID" id="welcheID" value="" />
	<input type="hidden" name="wasTun" id="wasTun" value="" /> 
		<?php
        //um eine Tabelle nach gewissen Kriterien geordnet angezeigt zu bekommen, nach dem untenstehenden SELECT Befehl ORDER BY Nachname zB eingeben.
        $sql = "
            SELECT * FROM tbl_members ORDER BY Nachname
        ";
        
        $query = mysql_query2($sql);
        $cnt = 0;
        while($data = mysql_fetch_array($query)) {
            echo('
            
            <table width="657" border="0">
          <tr>
            <td width="657" onclick="userAnzeige('.$cnt.');" class="click"><h6> '.$data["Nachname"].' '.$data["Vorname"].'</h6></td>
          </tr>
        </table>
            
            
         <table width="564" border="0" class="hidden" id="useranzeige'.$cnt.'">
          <tr>
            <td><img src="../images/Mitglieder/thumb/'.$data["Userbild"].'" width="95" height="95" alt="Userbild" /></td>
            <td></td>
            <td></td>
          </tr>
		  <tr>
            <td width="127">Nachname:</td>
            <td width="173"><input type="text" value="'.$data["Nachname"].'" name="Nachname'.$data["ID"].'" id="Nachname'.$data["ID"].'" /></td>
            <td width="250">&nbsp;</td>
            </tr>
          <tr>
            <td>Vorname:</td>
            <td><input type="text" value="'.$data["Vorname"].'" name="Vorname'.$data["ID"].'" id="Vorname'.$data["ID"].'" /></td>
            <td>&nbsp;</td>
            </tr>
          <tr>
            <td>Userbild:</td>
            <td colspan="2"><input type="hidden" value="'.$data["Userbild"].'" name="Userbild_db'.$data["ID"].'" id="Userbild_db'.$data["ID"].'" />
			<input type="file" value="'.$data["Userbild"].'" name="Userbild'.$data["ID"].'" id="Userbild'.$data["ID"].'" /></td>
            <td></td>
            </tr>
          <tr>
            <td>Begleitung:</td>
            <td><input type="text" value="'.$data["Begleitung"].'" name="Begleitung'.$data["ID"].'" id="Begleitung'.$data["ID"].'" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Festnetz:</td>
            <td><input type="text" value="'.$data["FestnetzVw"].'" name="FestnetzVw'.$data["ID"].'" id="FestnetzVw'.$data["ID"].'" /></td>
            <td><input type="text" value="'.$data["FestnetzNu"].'" name="FestnetzNu'.$data["ID"].'" id="FestnetzNu'.$data["ID"].'" /></td>
          </tr>
          <tr>
            <td>Mobil:</td>
            <td><input type="text" value="'.$data["MobilVw"].'" name="MobilVw'.$data["ID"].'" id="MobilVw'.$data["ID"].'" /></td>
            <td><input type="text" value="'.$data["MobilNu"].'" name="MobilNu'.$data["ID"].'" id="MobilNu'.$data["ID"].'" /></td>
          </tr>
          <tr>
            <td>Fax:</td>
            <td><input type="text" value="'.$data["FaxVw"].'" name="FaxVw'.$data["ID"].'" id="FaxVw'.$data["ID"].'" /></td>
            <td><input type="text" value="'.$data["FaxNu"].'" name="FaxNu'.$data["ID"].'" id="FaxNu'.$data["ID"].'" /></td>
          </tr>
          <tr>
            <td>Adresse:</td>
            <td><input type="text" value="'.$data["Adresse"].'" name="Adresse'.$data["ID"].'" id="Adresse'.$data["ID"].'" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Postleitzahl:</td>
            <td><input name="PLZ'.$data["ID"].'" type="text" value="'.$data["PLZ"].'" id="PLZ'.$data["ID"].'" maxlength="5" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Ort:</td>
            <td><input type="text" value="'.$data["Ort"].'" name="Ort'.$data["ID"].'" id="Ort'.$data["ID"].'" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Geburtsdatum:</td>
            <td>'.generiereDatumsboxen($data["GebDatum"],$data["ID"]).'</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Email:</td>
            <td><input type="text" value="'.$data["Email"].'" name="Email'.$data["ID"].'" id="Email'.$data["ID"].'" /></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input type="button" value="Mitgliederdaten ändern &rsaquo;" onclick="updateDS('.$data["ID"].');" /></td>
            <td><input type="button" value="Mitglied löschen &rsaquo;" onclick="deleteDS('.$data["ID"].');" /></td>
          </tr>
		  <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
                </table>
                    
                
            ');
            $cnt++;
        }
        ?>
	</form>

Bin für jede Hilfe sehr dankbar :)
 
Hi, ich nochmal.

Also das war nun die Lösung, damit kann ich belibieg oft auf den Link klicken und das Formular öffnet und schliesst :)

Code:
var last = 0;
function userAnzeige(cnt) {	
	if(cnt != last) {
		document.getElementById("useranzeige"+last).style.display = "none";
		document.getElementById("useranzeige"+cnt).style.display = "block";
	} else {
		if(document.getElementById("useranzeige"+cnt).style.display=="block") { document.getElementById("useranzeige"+cnt).style.display = "none"; }
		else { document.getElementById("useranzeige"+cnt).style.display = "block"; }
	}
	last = cnt;
}

Eine Frage hänge ich noch dran:

Um Inputfelder vor bösartigen Code zu schützen, würdet ihr die Sonderzeichen vor dem Eintrag in die Datenbank schon umwandeln oder erst beim Auslesen?

Beim Auslesen hat das mit htmlspecialchars schon super geklappt, doch meiner Meinung nach wäre es doch besser, die tags beim eintragen schon umzuwandeln.

Mit welchen Befehl würde ich das erreichen?
 
Zuletzt bearbeitet:
DAnke für den Tip, ich habs mittlerweile beim Schreiben in die DB auch mit htmlspecialchars probiert, und geht auch einwandfrei. Wird kein Code mehr ausgeführt.

Ist doch auch nix Falsches dran oder?
 
Zurück
Oben Unten