Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeiner Fragenthread II
Vorherige Threads:
Allgemeiner Fragenthread
Nochmals zum Sinn des Threads:
Fragen rund um die Themen des Webdevs, die recht schnell beantwortet sein sollten, können absofort hier gestellt werden.
Bluescreen
30.07.2007, 18:04
Ok, dann entweihe ich mal den Thread^^
Hm, die Abstände bei der Überschrift könnte daran liegen, dass der IE gerne ein cellpadding- oder cellspacing-Attribut auf 0 hätte (für <table>, die ••••••••).Mhmm, mit CSS kann ich das Prob also nicht lösen?
Schade... Naja, das mit der Tabelle macht zuviel Arbeit, ich mach das ohne Tabelle, ist sowieso besser (oder?!^^).
Die verschiebung den mittleren Teils im IE6 schiebe ich auf das völlig kaputte Float-Modell. Ich hätte stattdessen dem mittleren Teil links und rechts Margin gegeben, ihn relativ positioniert, die beiden äußeren Spalten in das mittlere div verschoben und dann absolut Positioniert.Ahja. Nun ja, das ist die erste Seite in der ich richtig mit einem Box-Modell arbeite, das ist noch nicht so ausgereift...
ich nehm' da gerne Kritik an, und lass mich grundsätzlich gerne zu neuem überreden, aber dieses Ding muss zeitig fertig werden, und ich werd's erstmal so "veröffentlichen", und später ein besseres Box-Modell verwenden.
Bis dahin hab ich dass auch hoffentlich besser im Griff...
Alternativ gibts das bekannte 3-Spalten-layout von Stu Nicholls, das ganz ähnlich wie dein Versuch funktioniert (man muss für die äußeren Spalten nicht border verwenden, padding und margin sind ebenso möglich).Mhmm, bei Zeiten versuch ich das umzusetzen.
Hättest du auch gerne noch ein paar Kommentare zum Quelltext?Oh, naja, er ist immerhin valide, aber die Boxen sind ziemlich durcheinander, das geb ich gern' zu. Naja, der beste Quelltext ist's bestimmt nicht, aber ein großer Teil wird auch mithilfe von PHP generiert, und enthält deswegen keine Quelltext-Zeilenumbrüche.
Bitte, gib ein vorsichtiges Kommentar!
Naja, ich bastel dann mal ein bisschen weiter...
ich mach das ohne Tabelle, ist sowieso besser (oder?!^^).
Ja..
Ahja. Nun ja, das ist die erste Seite in der ich richtig mit einem Box-Modell arbeite, das ist noch nicht so ausgereift...
ich nehm' da gerne Kritik an, und lass mich grundsätzlich gerne zu neuem überreden, aber dieses Ding muss zeitig fertig werden, und ich werd's erstmal so "veröffentlichen", und später ein besseres Box-Modell verwenden.
Bis dahin hab ich dass auch hoffentlich besser im Griff...
Das Box-Modell ist einfach, wenn nicht alles addiert wird, macht der Browser den Fehler.
Verstehst du darunter was anderes? Der IE hat auch seine Probleme mit Floats. Manche kann man beheben. Manche nicht. Tabellen sind aber noch schlechter, selbst in Gecko sind da noch viele Fehler vorhanden.
Bitte, gib ein vorsichtiges Kommentar!
"vorsichtigen!"^^ Aber im Moment ist ja eh alles in Einzelteile zerlegt, da bringt es nicht viel. Ich rate dir nur einfach, Navigationselemente mit Listen zu gestalten.
Bluescreen
31.07.2007, 17:56
Verstehst du darunter was anderes? Der IE hat auch seine Probleme mit Floats. Manche kann man beheben. Manche nicht. Tabellen sind aber noch schlechter, selbst in Gecko sind da noch viele Fehler vorhanden.Naja, ich werde mich dann später dem Problem zuwenden, und wieder ein bisschen am Neuigkeits-CMS arbeiten...
"vorsichtigen!"^^ Aber im Moment ist ja eh alles in Einzelteile zerlegt, da bringt es nicht viel. Ich rate dir nur einfach, Navigationselemente mit Listen zu gestalten.Die Navigatonselemente sind bereits als Liste gestaltet...
Ich glaub in Inet ist ne' alte Version, aber bei der "richtigen" sind Listen.
Das Problem mit dem Abstand ist auch behoben.
Kann mir jemand ein gutes CSS Buch empfehlen? Inzwischen kann ich ja recht gut damit arbeiten, aber um das Box-Modell richtig zu verinnerlichen brauch ich glaub ich n' Buch. Kennt da jemand n' gutes?
Bluescreen
02.08.2007, 14:03
Öhm... 1.:
Wie kann ich überprüfen, ob der Inhalt von $News->Zeit_Ende aus der MySQL Tabelle (per fetch-object) NULL ist?
Wie kann ich überprüfen, ob ein Datumswert aus einer MySQL Tabelle (wird zB. im phpMyAdmin als 11-11-2007 angezeigt), einem Datum entspricht, wie zB. dem 11.11.2007?
Es geht hierbei um einen Kalender, wo überprüft werden muss, ob beim jeweiligen Datum bereits ein Eintrag vorhanden ist.
Wie kann ich überprüfen, ob der Inhalt von $News->Zeit_Ende aus der MySQL Tabelle (per fetch-object) NULL ist?
$News->Zeit_Ende == null
// oder
is_null ($News->Zeit_Ende)
Wie kann ich überprüfen, ob ein Datumswert aus einer MySQL Tabelle (wird zB. im phpMyAdmin als 11-11-2007 angezeigt), einem Datum entspricht, wie zB. dem 11.11.2007?
RTFM^^ (http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html). DATE_FORMAT benötigst du bei Abfragen, was dich wohl auch interessieren wird.
Bluescreen
02.08.2007, 14:50
RTFM^^ (http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html). DATE_FORMAT benötigst du bei Abfragen, was dich wohl auch interessieren wird.
Wie baut man das ein? Kommt das in die SELECT Abfrage bei WHERE rein, oder gibber irgendwo ein Beispiel (oder das ganze auf Deutsch:( ?)
DATE_FORMAT verwendet man nach SELECT. Bei WHERE verwendet man besser andere Funktionen, je nachdem, was man haben will.
Für dein Beispiel:
WHERE DATE(`tabelle.datum`) = '2007-11-11';
Du solltest dabei den 11.11.2007 Wert in das SQL-Format (2007-11-11, yyyy-mm-dd) umwandeln, das ist einfacher als die Alternativen.
Bluescreen
02.08.2007, 15:08
Du solltest dabei den 11.11.2007 Wert in das SQL-Format (2007-11-11, yyyy-mm-dd) umwandeln, das ist einfacher als die Alternativen.
Mhmm, so war es aber im phpMyAdmin drin...
Vielleicht hat er es auch nur so angezeigt. Das Feld ist ein Typ DATE.
Wenn ich die Datenbank und Tabelle bereits selektiert habe, brauche ich statt tabelle.datum nur noch den Spaltenname (Datum), oder?
Mhmm, so war es aber im phpMyAdmin drin...
Vielleicht hat er es auch nur so angezeigt. Das Feld ist ein Typ DATE.
Wenn das Feld in dem du Daten speicherst den Typ "Date" hat wird es im Format yyyy-mm-dd gespeichert. Darum sollst du verrückte Angaben wie 11.11.2007 in dieses Format umwandeln, wenn du es verwenden willst um Datensätze abzufragen.
Wenn ich die Datenbank und Tabelle bereits selektiert habe, brauche ich statt tabelle.datum nur noch den Spaltenname (Datum), oder?
Das hat nichts miteinander zu tun. Man kann nur eine Datenbank auswählen.
"tabelle.datum" ist identisch zu "datum", aber für den Fall dass man mit mehreren Tabellen gleichzeitig arbeitet ist die erste Schreibweise besser, weil es sonst zu Spaltenverwirrung kommen kann.
Also, das bearbeiten des Bildes funktioniert soweit, den Code den ich verwend sieht so aus:
<?php
header ("Content-type: image/jpeg");
session_start();
$zahl1 = rand(10,20);
$zahl2 = rand(1,9);
$resultat = $zahl1-$zahl2;
$_SESSION['captcha'] = $resultat;
$rechnung = $zahl1.' - '.$zahl2;
$image = imagecreatetruecolor(100, 30)
or die("Cannot Initialize new GD image stream");
$color = imagecolorallocate($image,0,0,0);
$weiss = imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$weiss);
imagestring($image,5,5,5,$rechnung,$color);
imagejpeg($image);
imagedestroy($image);
?>und einbinden tue ich es so:
<img src="captcha.php" height="30" width="100" alt="" />Wenn ich jetzt von einer anderen Datei überprüfe, mithilfe von isset ob $_SESSION['captcha'] gesetzt ist, gibt es false zurück. Und wenn ich das weglasse, kommt auch eine Nachricht von php, dass die Variable nicht gesetzt ist. Wie muss ich es machen, damit ich das Resultat in der Session abspeichern kann?
Edit: Das Problem hat sich von selber in Luft aufgelöst. o_O
Edit 2: Ich habe jetzt ein anderes Problem:
Ich will den String mit imagettftext zeichnen, da mit imagestring für eine grössere Schrift eine gdf gebraucht wird, aber wenn ich das jetzt mit imagettftext mache, erscheint die Farbe immer Gelb???
Bluescreen
09.08.2007, 11:46
Ich bedanke mich hier noch herzlich für die vorigen Antworten!
Neues Problem:
Ich hab in einer Datenbanktabelle eines Abstimmungssystems in einer Spalte die Anzahl Leute gespeichert, die für die jeweilige Möglichkeit abgestimmt haben. Dieses Objekt $ABstimmungInfo->Werte enthält dann bspw. "3;23;0;21;14". Das bedeutet, das die erste Möglichkeit dann 3 Stimmen bekommen hat, die zweite 23 und die dritte zB. gar keine.
Wenn jemand abstimmt (zB. für die 2. Möglichkeit), muss ich dann ja eins dazuzählen. Wie könnte ich das machen?
ZB. mit explode() den String bei den ";" zerteilen, und dann in einer foearch durchlaufen bis man auf die Möglichkeit kommt, und dann eins dazuzählen. Das geh noch. Aber wie füge ich alles dann wieder zusammen, um es so in die DB eintragen zu können?
Bin mir nicht ganz sicher ob ich das hier jetzt richtig aufschreib, ist nicht der PC auf dem ich die Sache hab...
explode(); //Die Werte aus der Datei, die Syntax hab ich jetzt nicht parat - Das entstehende Array heißt von mir aus "$Werte".
foearch ($Werte as $Wert){
$i++; //Hier wird die Möglichkeit-Nummer durchgezählt
if ($i == $_GET['Moeglichkeit']){ //Wenn die Schleife bei der Möglichkeit angekommen ist, für die man gestimmt hat
$Wert++; //Wert um die neue Stimme erhöhen
//So, und hier komm ich dann nicht weiter. Wie pfriemel ich das wieder zusammen?
break;
}
}
$number = $_GET['wahl'];
// vielleicht noch intval();
//hier mysql_fetch_object,mysql_query
$array = explode(';',$string);
$array[$number]++;
$string_zum_eintragen = implode(';',$array);
Das sollte eigentlich alles sein, was du machen musst. ;)
Bluescreen
07.09.2007, 17:57
So, jetzt hab' ich doch nochmal ne Frage:
Ich möchte Blockelemente für diese Sache (http://aktuell.de.selfhtml.org/artikel/css/mouseover/) nebeneinander positionieren, also nicht einfach nur untereinander, wie es eigentlich bei den Blockelementen der Fall ist.
Wie muss ich das machen?
<div class="menu">
<a class="menu" href="index.htm">Home</a><br>
<a class="menu" href="extras/index.htm">Extras</a><br>
<a class="menu" href="links/index.htm">Links</a><br>
<a class="menu" href="mailto:name@domain.de">E-Mail</a><br>
</div>
Dieser Code, oder?
Einfach den Absatz wegmachen und Leerzeichen reinmachen, bzw. das ganze mit Tabellen lösen. .___."
Also, z.B. so:
<div class="menu">
<a class="menu" href="index.htm">Home</a>
<a class="menu" href="extras/index.htm">Extras</a>
<a class="menu" href="links/index.htm">Links</a>
<a class="menu" href="mailto:name@domain.de">E-Mail</a>
</div>
Bluescreen
08.09.2007, 09:32
<div class="menu">
<a class="menu" href="index.htm">Home</a>
<a class="menu" href="extras/index.htm">Extras</a>
<a class="menu" href="links/index.htm">Links</a>
<a class="menu" href="mailto:name@domain.de">E-Mail</a>
</div>
Öhm, ja, das ist mir jetzt eig. richtig peinlich! :(
Hab' ich mal wieder vorschnell gehandelt...
Naja, wenn's funktioniert, bin ich glücklich! Danke das du mir auf die Sprünge geholfen hast...
NPC Fighter
08.09.2007, 11:01
Ein bisschen eleganter könnte man diese hässlichen, erzwungenen Leerzeichen natürlich auch mit CSS lösen.
Bluescreen
08.09.2007, 11:04
Ein bisschen eleganter könnte man diese hässlichen, erzwungenen Leerzeichen natürlich auch mit CSS lösen.Mit margins vielleicht?
Ich kann's jetzt nicht ausprobieren, aber ich werd' diese Sache ein bisschen modifiziert verwenden.
Teelicht
08.09.2007, 21:29
ich glaube nicht, das margin bei Link-Elementen etwas bringt. wohl eher jedes Link-Element in einen Absatz packen und denn wahlweise mit Margin oder einfach einer Breite versehen
NPC Fighter
09.09.2007, 09:43
Du könntest padding oder zur Not auch word-spacing für deine menu-Klasse benutzen (falls die Links auch wirklich nur aus einem Wort bestehen).
Eigentlich ist das ziemlich genau das, wofür es <ul> gibt. Da kann man dann auch wunderbar per CSS einstellen, ob sie untereinander oder nebeneinander angezeigt werden sollen.
Bluescreen
10.09.2007, 14:41
Eigentlich ist das ziemlich genau das, wofür es <ul> gibt. Da kann man dann auch wunderbar per CSS einstellen, ob sie untereinander oder nebeneinander angezeigt werden sollen.
Ok, dann helf mir mal auf die Sprünge!
Ich brauche aber ein Element, das fest definierte Breite und Höhe hat.
Diese Tutorial (http://css.maxdesign.com.au/floatutorial/tutorial0601.htm) erklärt, wie man aus einer Liste ein Menü machen kann.
Ok, dann helf mir mal auf die Sprünge!
Ich brauche aber ein Element, das fest definierte Breite und Höhe hat.
Wenn du ne fest definierte Breite und Höhe willst, kannst du die ohne Schwierigkeiten per CSS mit width und height setzen.
Hallo zusammen,
Ich würde gerne News sortieren. (MySQL Abfrage)
Und zwar würde ich sie gerne in die Kategorien "News dieser Woche" & "news Letzter Woche" einordnen, wobei jede woche mit dem entsprechenden Montag anfangen muss (demnach nicht einfach -7 Tage)
Heute ist der 16. also würden unter "News dieser Woche" diese Tage 10.-16. , und bei "News letzter Woche" die tage 3.-10. einbezogen werden.
Wie könnte das funktionieren?
Eigentlich muss ich lediglich den letzten bzw. vorletzten Montag um 0.00 Uhr in einen Timestamp umwandeln, habe aber leider keine Ahnung, wie das geht, den Rest pack ich selbst.
Mit mktime() (http://de.php.net/mktime) bekommst du deinen Timestamp und mit date('w') (http://de.php.net/date) den aktuellen Wochentag. Du könntest zum Beispiel einen Timestamp vom aktuellen Tag um 00:00 machen (mithilfe von mktime() und date()) und dann $tage * 24 * 60 * 60 davon abziehen ;)
Mit mktime() (http://de.php.net/mktime) bekommst du deinen Timestamp und mit date('w') (http://de.php.net/date) den aktuellen Wochentag. Du könntest zum Beispiel einen Timestamp vom aktuellen Tag um 00:00 machen (mithilfe von mktime() und date()) und dann $tage * 24 * 60 * 60 davon abziehen ;)
Danke für die Hilfestellung ;)
Aber woher soll ich wissen, wieviele Tage genau abgezogen werden müssen?
drunken monkey
16.09.2007, 00:31
Danke für die Hilfestellung ;)
Aber woher soll ich wissen, wieviele Tage genau abgezogen werden müssen?
Durch date('w') (http://de.php.net/date).
$tage = date('w', $timestamp) - 1;
if ($tage < 0) {
$tage = 6;
}
Dürfte funktionieren.
Durch date('w') (http://de.php.net/date).
$tage = date('w', $timestamp) - 1;
if ($tage < 0) {
$tage = 6;
}
Dürfte funktionieren.
Weiß auch nicht, aber irgendwie blicke ich da nicht ganz durch.
Was ist denn $timestamp? Der Timestamp zum aktuellen Zeitpunkt?
Die Sache ist doch die, dass ich nicht weiß wieviele Tage ich vom aktuellen Tag abziehen muss, bis ich den Montag erreiche.
Und mit -1 wird lediglich ein Tag zurückgegangen.
$timestamp ist der Timestamp vom aktuellen Tag um 00:00 Uhr. Mit date('w') bekommst du den aktuellen Wochentag zwischen 0 (Sonntag) und 6 (Samstag). Wenn du jetzt von $timestamp diese Tag abziehst, hättest du den Anfangstimestamp für eine Woche, die mit einem Sonntag anfängt. Willst du eine Woche ab Montag, dann musst du einen Tag weiter gehen, also (date('w') - 1) % 7 rechnen (wenn ich mich nicht irre). Die Anzahl der Tage rechnest du dann in Sekunden um ($tage * 24 * 60 * 60) und ziehst die von $timestamp ab. Fertig.
Hier das ganze mal in eine Funktion verpackt:
function week_timestamp($timestamp = null, $firstday = 1)
{
if(is_null($timestamp))
{
$timestamp = time();
}
$timestamp = mktime(0, 0, 0, date('n', $timestamp), date('j', $timestamp), date('Y', $timestamp));
$day = (date('w', $timestamp) - $firstday) % 7;
$day += ($day < 0)? 7 : 0;
return $timestamp - $day * 24 * 60 * 60;
}
// Jetzt
echo date('l, d.m.Y H:i:s').'<br />';
// letzter Montag, 00:00
echo date('l, d.m.Y H:i:s', week_timestamp()).'<br />';
// letzter Sonntag, 00:00
echo date('l, d.m.Y H:i:s', week_timestamp(null, 0)).'<br />';
// letzter Samstag, 00:00
echo date('l, d.m.Y H:i:s', week_timestamp(null, -1)).'<br />';
// letzter Freitag, 00:00
echo date('l, d.m.Y H:i:s', week_timestamp(null, 1)).'<br />';
// letzter Sonntag, 00:00
echo date('l, d.m.Y H:i:s', week_timestamp(null, -14)).'<br />';
Vielen Dank, funktioniert wunderbar ;)
Bluescreen
27.09.2007, 15:42
Wenn du ne fest definierte Breite und Höhe willst, kannst du die ohne Schwierigkeiten per CSS mit width und height setzen. Ok, das stimmt, aber dann muss ich doch display:block setzen, damit die auch angezeigt werden?
Aber wichtigertes Problem:
Was gibt es für edle (vom Quelltext her saubere) Lösungen, um nach einer Tabellen-Zeile einen von der Breite her ungefähr 1 Zeile breiten (aber das ist ja im Grunde variabel) Abstand zu machen? Sowas mit margin oder sowas wie border-spacing?
Kann ich mit CSS auch komplexe Definitionen festlegen für Unterordnungen, wie im folgenden Schema:
<table>
<tr>
<td> Links </td>
<td> Rechts </td>
</tr>
</table>
Die "Linke seite sollte also zb. immer Fett gedruckt sein, und die Linke immer in grüner Farbe oder so.
Kann ich also auf das erste Unterelement eines Elementes (id. Fall Element TR auf Unterelement TD) zugreifen, oder brauche ich da das class-Attribut?
Aber wichtigertes Problem:
Was gibt es für edle (vom Quelltext her saubere) Lösungen, um nach einer Tabellen-Zeile einen von der Breite her ungefähr 1 Zeile breiten (aber das ist ja im Grunde variabel) Abstand zu machen? Sowas mit margin oder sowas wie border-spacing?
Mit border-spacing kannst du nur den allgemeinen Abstand ändern aber nicht nur den Abstand unten. Wenn geht es mit margin, dass musst du halt mal ausprobieren ;)
Kann ich mit CSS auch komplexe Definitionen festlegen für Unterordnungen, wie im folgenden Schema:
<table>
<tr>
<td> Links </td>
<td> Rechts </td>
</tr>
</table>
Die "Linke seite sollte also zb. immer Fett gedruckt sein, und die Linke immer in grüner Farbe oder so.
Kann ich also auf das erste Unterelement eines Elementes (id. Fall Element TR auf Unterelement TD) zugreifen, oder brauche ich da das class-Attribut?
Theoretisch geht das über :first-child. table tr td:first-child bezöge sich also auf die gewünschte Tabellenzelle. Allerdings ist das CSS2 und wird nicht in allen Browsern unterstützt. (Zum Beispiel vom IE iirc nicht). Die sichere Lösung ist auf jeden Fall eine Klasse.
Bluescreen
27.09.2007, 18:27
Mit border-spacing kannst du nur den allgemeinen Abstand ändern aber nicht nur den Abstand unten. Wenn geht es mit margin, dass musst du halt mal ausprobieren ;)
Ah, also mit margin geht's net, aber dafür mit padding.
Theoretisch geht das über :first-child. table tr td:first-child bezöge sich also auf die gewünschte Tabellenzelle. Allerdings ist das CSS2 und wird nicht in allen Browsern unterstützt. (Zum Beispiel vom IE iirc nicht). Die sichere Lösung ist auf jeden Fall eine Klasse.Bezieht sich das aber einfach auf die "ersten Unterelemente", einfach alle td-Elemente die sich dann unter dem tr befinden?
Ich meinte sowas, das dann das erste td Element im tr-Element vom 2. td Element differenziert. Das also "Links" andere Eigenschaften kriegen kann wie "Rechts".
Aber aufgrund des IE-Problems hast du natürlich recht, lässt sich sowas eig. in normalen Sites eh nicht verwenden. Leider.
Ah, also mit margin geht's net, aber dafür mit padding.
Solange du weder Hintergrund noch rahmen hast, geht das natürlich so wunderbar ;)
Bezieht sich das aber einfach auf die "ersten Unterelemente", einfach alle td-Elemente die sich dann unter dem tr befinden?
Ich meinte sowas, das dann das erste td Element im tr-Element vom 2. td Element differenziert. Das also "Links" andere Eigenschaften kriegen kann wie "Rechts".
Aber aufgrund des IE-Problems hast du natürlich recht, lässt sich sowas eig. in normalen Sites eh nicht verwenden. Leider.
Das macht genau das was du willst. Alle direkten <td> Unterelemente würdest du über table > tr > td bekommen.
x:first-child bezieht sich auf ein Element x, aber nur wenn es das erste Kindelement des Elternelements ist.
Bluescreen
03.10.2007, 20:07
Solange du weder Hintergrund noch rahmen hast, geht das natürlich so wunderbar ;)
Ja, das kann sein. Aber für meinen Lebnslauf reichts...
Das macht genau das was du willst. Alle direkten <td> Unterelemente würdest du über table > tr > td bekommen.
x:first-child bezieht sich auf ein Element x, aber nur wenn es das erste Kindelement des Elternelements ist.Ok, gut, ich dachte schon ich hätte wieder schlecht erklärt.
Naja, leider kann man's nicht so gut verwenden...
So ist das eben mit den praktischen Dingen...
Trotzdem Danke!
Neues Problem:
Ich arbeite an einem Forum-ähnlichen System, mit einem Benutzersystem.
Nartürlich sollen meine Benuter auch ihre eigenen Avatars einbauen können, doch wie soll man das verwirklichen? Kann man nicht in einer MySQL DB auch Grafik-Daten speichern? Oder sollten sie immer in einen Ordner hochgeladen werden?
NPC Fighter
03.10.2007, 20:53
Es würde gehen (Stichwort BLOB), ist aber bei den Datenmassen, die bei einem solchen System möglicherweise kommen könnten, nicht zu empfehlen.
Ich würde die Bilder einfach in einen Ordner reinladen lassen und so benennen, dass man sie den Usern über deren ID zuordnen kann. Hier im vB wird das afair so gemacht, dass die Bilder zusätzlich durchnummeriert werden, wenn man neue hochlädt. Wirkt dem Cache, der in diesem Falle unerwünscht ist, entgegen.
Bluescreen
03.10.2007, 21:02
Es würde gehen (Stichwort BLOB), ist aber bei den Datenmassen, die bei einem solchen System möglicherweise kommen könnten, nicht zu empfehlen.
Ich würde die Bilder einfach in einen Ordner reinladen lassen und so benennen, dass man sie den Usern über deren ID zuordnen kann. Hier im vB wird das afair so gemacht, dass die Bilder zusätzlich durchnummeriert werden, wenn man neue hochlädt. Wirkt dem Cache, der in diesem Falle unerwünscht ist, entgegen.Ok, dann denke ich nehme ich die 2. Variante.
Ich glaube aber, ich werde sie einfach nach User-ID nummerieren, oder ist das mit dem Cache so ein Problem? Ich will eure Antworten abwarten...
drunken monkey
03.10.2007, 22:39
Ok, dann denke ich nehme ich die 2. Variante.
Ich glaube aber, ich werde sie einfach nach User-ID nummerieren, oder ist das mit dem Cache so ein Problem? Ich will eure Antworten abwarten...
Naja, durch den Cache den Browser nun mal sinnvollerweise bei Bildern verwenden würde es halt immer Unstimmigkeiten geben, wenn jemand seinen Avatar ändert: manche würden dann noch den alten, manche schon den neuen sehen.
Grundsätzlich wohl nicht so schlimm, aber für mich als User wär's, wenn ich draufkommen würde, doch ein Zeichen von einer gewissen Unreife des Systems. Musst letztendlich eh du entscheiden, aber imo ist das den minimalen zusätzlichen Aufwand doch wert. Brauchst ja eigentlich nur ein paar zusätzliche Zeilen bei der Bildauswahl und -änderung.
dead_orc
04.10.2007, 19:08
Naja, durch den Cache den Browser nun mal sinnvollerweise bei Bildern verwenden würde es halt immer Unstimmigkeiten geben, wenn jemand seinen Avatar ändert: manche würden dann noch den alten, manche schon den neuen sehen.
Grundsätzlich wohl nicht so schlimm, aber für mich als User wär's, wenn ich draufkommen würde, doch ein Zeichen von einer gewissen Unreife des Systems. Musst letztendlich eh du entscheiden, aber imo ist das den minimalen zusätzlichen Aufwand doch wert. Brauchst ja eigentlich nur ein paar zusätzliche Zeilen bei der Bildauswahl und -änderung.
Das kann ich nicht so unterzeichnen. Meines Wissens speichert ein Browser zwar alles was er runterläd zum Anzeigen zwischen, aber er vergleicht nicht einfach nur die URL und sagt "das brauch ich nicht runterladen, das hab ich schon." Er schickt durchaus eine Anfrage an den Server mit einem Timestamp der Datei die er gecacht hat und fragt dabei an, ob es eine neuere Version der Datei auf dem Server gibt. Wenn dies der Fall ist, schickt der Server sie, wenn nicht, antwortet er mit 304 Not modified. So habe ich das zumindest in Erinnerung.
drunken monkey
04.10.2007, 23:44
Das kann ich nicht so unterzeichnen. Meines Wissens speichert ein Browser zwar alles was er runterläd zum Anzeigen zwischen, aber er vergleicht nicht einfach nur die URL und sagt "das brauch ich nicht runterladen, das hab ich schon." Er schickt durchaus eine Anfrage an den Server mit einem Timestamp der Datei die er gecacht hat und fragt dabei an, ob es eine neuere Version der Datei auf dem Server gibt. Wenn dies der Fall ist, schickt der Server sie, wenn nicht, antwortet er mit 304 Not modified. So habe ich das zumindest in Erinnerung.
Hm, das ergibt Sinn, auch wenn's mir neu ist/wäre. http://www.multimediaxis.de/images/smilies/old/1/gruebel.gif
Meiner Erfahrung nach muss ich allerdings oft Bilder manuell neu laden, wenn ich sie z.B. gerade auf meiner Homepage geändert habe, also hundertprozentig so ist's ziemlich sicher nicht. Außerdem wären dann ja sowohl NPCs Hinweis, als auch das Vorgehen des vB unnötig.
dead_orc
05.10.2007, 06:27
Hm, das ergibt Sinn, auch wenn's mir neu ist/wäre. http://www.multimediaxis.de/images/smilies/old/1/gruebel.gif
Meiner Erfahrung nach muss ich allerdings oft Bilder manuell neu laden, wenn ich sie z.B. gerade auf meiner Homepage geändert habe, also hundertprozentig so ist's ziemlich sicher nicht. Außerdem wären dann ja sowohl NPCs Hinweis, als auch das Vorgehen des vB unnötig.
Dunno, aber so ist die Spezifikation würde ich sagen. Dass sich nicht immer alle an Standards halten (weder Clients noch Server noch Developer) dürfte ja eh klar sein. Und wenn du z.B. ne dynamisch generierte PHP Seite aufrufst hab ich keine Ahnung, wie der Server darauf reagiert. Vielleicht kann er da dann gar nicht mit diesem Verfahren umgehen und sendet deshalb nie oder immer neuen Content, weil sich ja die PHP Datei an sich nicht geändert hat, who knows? ^^
deadshox
10.10.2007, 20:56
Tagchen, hab da mal ein kleines Problem mit XAMPP unter Ubuntu Linux!
Genauer gesagt hab ich ein Problem mit PHPmyAdmin!
Wenn ich http://localhost/phpmyadmin/ eingebe, bekomme ich das hier als Meldung: Wrong permissions on configuration file, should not be world writable!
Nur wo finde ich diese Datei und was mach ich dann damit?
Spark Amandil
10.10.2007, 21:31
config.cfg bzw config.php müsste meist im stammverzeichnis liegen. die schreibrechte definierst du über chmod
dead_orc
10.10.2007, 21:56
config.cfg bzw config.php müsste meist im stammverzeichnis liegen. die schreibrechte definierst du über chmod
Fast, sie heißt config.inc.php
Ich würde es unter /usr/share/phpmyadmin/config.inc.php versuchen, da liegt sie zumindest bei ner normalen Installation (read: bei mir :p)
Ansonsten mach halt mal auf nem Terminal `locate config.inc.php'
deadshox
11.10.2007, 14:54
ok gefunden habe ich sie, besitzer und Zugriffsrechte hab ich auch geaendert aber es erscheint immer noch die selbe Fehlermeldung. ;(
ja, wohin hast du die sie denn geändert?
dead_orc
11.10.2007, 16:59
Ich bezweifle, dass du den Owner ändern solltest. Die Datei sollte root:root gehören und die Permissions 644 haben. Wahrscheinlich ginge auch www-data als Owner, und dann Permissions wie 640, damit User sie nicht lesen können, aber das sollte ja auf ner lokalen Workstation nicht so wichtig sein...
deadshox
11.10.2007, 17:45
ja, wohin hast du die sie denn geändert?
na dahin wo sie liegt. ;)
Jetz gehts, hab root wieder als Owner eingestellt und die Rechte 644 Verwendet.
Dankeee!
Bluescreen
12.10.2007, 14:50
Hab ein MySQL Problem.
Ich hab mir gestern die neue XAMPP-Version geholt, und über die alte Installiert.
Seitdem geht kein MySQL mehr, ich hab auch schon eine 2. "Neuinstallation" getätigt.
Die Datei aus der Fehlermeldung existiert übrigens und ist an ihrem Platz.
http://bluescreenpage.bl.funpic.de/screen12.10.07_1.gif
Kann mir jm. helfen?
Hatte ich auch schonmal. Mir fiel auch nix Besseres ein, als Deinstallation und darauffolgende Neuinstallation. :/
dead_orc
12.10.2007, 15:29
*kratz* hm, kann mir höchstens vorstellen, dass die Berechtigungen falsch gesetzt sind und mySQL da eine undeutliche Fehlermeldung gibt. Haste die schon mal überprüft?
Bluescreen
12.10.2007, 16:51
Hatte ich auch schonmal. Mir fiel auch nix Besseres ein, als Deinstallation und darauffolgende Neuinstallation. :/Versuch ich jetzt mal.
*kratz* hm, kann mir höchstens vorstellen, dass die Berechtigungen falsch gesetzt sind und mySQL da eine undeutliche Fehlermeldung gibt. Haste die schon mal überprüft?Welche Berechtigungen? Vor der "Neuinstallation" hat's doch auch getan!
Edit: Problem mit richtiger Neuinstallation gelöst. Ich hoffe meine Datenbanken sind noch da...
Edit 2:
Nun kommt schon das nächste Problem beim phpmyadmin:
http://bluescreenpage.bl.funpic.de/screen12.10.07_2.gif
Wie kann ich dem Abhilfe schaffen?
dead_orc
12.10.2007, 19:47
Die PHP-Konfiguration überprüfen? *duck*
Nee aber ernsthaft, guck da mal, ob du ne Zeile ";extension = mcrypt.dll" oder so findest. Wenn ja, nimm das ; am Anfang der Zeile weg. Wenn nein... guck im PHP Ordner, ob da ne Datei mcrypt.dll in den Unterordnern liegt. Wenn nein is doof ^^
Bluescreen
12.10.2007, 22:02
Die PHP-Konfiguration überprüfen? *duck*
Nee aber ernsthaft, guck da mal, ob du ne Zeile ";extension = mcrypt.dll" oder so findest. Wenn ja, nimm das ; am Anfang der Zeile weg.Das hatte ich schon probiert, hab nach dem Stichwort "mcrypt.dll" gesucht. Das Internet hatte irgenwas von einer nötigen Erweiterung bei Windows ausgespuckt, konnte mich aber noch nicht ganz durchlesen.
Wenn nein... guck im PHP Ordner, ob da ne Datei mcrypt.dll in den Unterordnern liegt. Wenn nein is doof ^^Werd' ich mal machen.
Anderes Problem:
Ich bin ja bemüht, unter den neusten Standards zu arbeiten, deswegen arbeite ich ja unter 4.1 Strict. Die erlaubt nunmal kein target-Attribut in Hyperlinks. Nun sollte sich aber das "Kontrollzentrum" meiner JuRa Website aus verschiedenen Grübnden in einem neuen Fenster öffnen, ich bin aber wenig erpicht, die Deklaration auf Transitional umzustellen, nur wegen einem Link.
Wie kann ich das umgehen?
drunken monkey
12.10.2007, 23:31
Anderes Problem:
Ich bin ja bemüht, unter den neusten Standards zu arbeiten, deswegen arbeite ich ja unter 4.1 Strict. Die erlaubt nunmal kein location-Attribut in Hyperlinks. Nun sollte sich aber das "Kontrollzentrum" meiner JuRa Website aus verschiedenen Grübnden in einem neuen Fenster öffnen, ich bin aber wenig erpicht, die Deklaration auf Transitional umzustellen, nur wegen einem Link.
Wie kann ich das umgehen?
Erstmal nochmal überdenken, ob es wirklich ein neues Fenster sein muss.
Dann Javascript (mit Fallback-Lösung für deaktiviertes JS).
...und du meinst das target-Attribut, nicht location.
Bluescreen
13.10.2007, 06:39
Erstmal nochmal überdenken, ob es wirklich ein neues Fenster sein muss.Ich überdenke soetwas immer gut.
Aber es Handelt sich um das "Kontrollzentrum, das nur von den Tema-Mitgliedern eingesehen werden kann, gilt also für rund 5 Leute. Und aufgrund seiner Funktionalität ist es definitiv sinnvoller, wenn es sich in einem neuen Fenster öffnet.
Dann Javascript (mit Fallback-Lösung für deaktiviertes JS).Ja schon, aber wie zb? mit sowas wie window.location?
...und du meinst das target-Attribut, nicht location.Ja, stimmt. Ich hab nicht lang' überlegt, wollte schnell den Post absenden.
dead_orc
13.10.2007, 09:20
Ja schon, aber wie zb? mit sowas wie window.location?
Nein, eher window.open() (http://de.selfhtml.org/javascript/objekte/window.htm#open). Das ist wohl die Lösung, die die meisten wählen würden, aber Javascript Popups sucken. Ich würde dafür dann irgendwie in den body ein onload="document.getElementById('CPlink').target = 'blank';" einfügen, was zwar wirklich eklig ist, aber die Standards bewahrt :p (funktioniert natürlich nur, wenn der Link die ID CPlink bekommt.
Nein, eher window.open() (http://de.selfhtml.org/javascript/objekte/window.htm#open). Das ist wohl die Lösung, die die meisten wählen würden, aber Javascript Popups sucken. Ich würde dafür dann irgendwie in den body ein onload="document.getElementById('CPlink').target = 'blank';" einfügen, was zwar wirklich eklig ist, aber die Standards bewahrt :p (funktioniert natürlich nur, wenn der Link die ID CPlink bekommt.
Mit open(), kann man den Namen des Fensters bestimmen. Wenn dieser "_blank" lautet hat das den selben Effekt wie der Wert als Attribut.
Bluescreen
21.10.2007, 13:37
Nein, eher window.open() (http://de.selfhtml.org/javascript/objekte/window.htm#open). Das ist wohl die Lösung, die die meisten wählen würden, aber Javascript Popups sucken. Ich würde dafür dann irgendwie in den body ein onload="document.getElementById('CPlink').target = 'blank';" einfügen, was zwar wirklich eklig ist, aber die Standards bewahrt :p (funktioniert natürlich nur, wenn der Link die ID CPlink bekommt.Ok, ich werde die Lösung ausprobieren. Ich finde auch das normale "Popups" sucken, aber das ist ja kein normales Popup für alle Benutzer.
Danke nat. auch an mitaki!
Ich find's Klasse, das hier immer so schnelle Hilfe kommt! Wollte hier mal ein Lob aussprechen :A !
ls nächstes brauche ich eine Bildschirm Auflösungs-Weiche. Das Script steht:
<script type="text/javascript">
var Bildschirmaufloesung = screen.width;
if (Bildschirmaufloesung >= "1024"){
//1
} else if (Bildschirmaufloesung >= "800"){
//2
} else {
}
</script>
Das das nicht immer funktioniert usw. weiß ich selber. Aber glaubt mir, ich weiß das es bei den meisten meiner Zielgruppe funktionieren wird. Das wird hier nicht gefragt.
Wichtiger ist, das ich jetzt einen "JS StyleSheet-Wechsler" benötige. Wie kann ich zB. die Klasse eines Elements per JS ändern?
Firephoenix
21.10.2007, 14:36
Wichtiger ist, das ich jetzt einen "JS StyleSheet-Wechsler" benötige. Wie kann ich zB. die Klasse eines Elements per JS ändern?
Hier findest du etwas zu dem Thema ;) :
http://www.stichpunkt.de/css/switch.html
Mit freundlichen Grüßen
Firephoenix
Morgen~
Ich wusste nicht, wohin mit meiner Frage, darum poste ich einfach mal hier. Über Hilfe wäre ich echt froh :3
Nun... Ich habe mir gestern Abend aus Spaß mal einen (noch nicht funktionsfähigen) Blog gebastelt. Das Layout steht soweit schon. Nun habe ich allerdings Bedenken bezüglich der Standart-Schriftart. Diese ist nämlich Myriad Pro (Regular). Ich weiß nicht mehr, ob sie eine XP-Standart-Font war oder ob ich sie im Nachhinein installiert habe. Und gibt es eventuell unter den anderen Betriebssystemen (unter Ubuntu 7.04 z.B. finde ich keine) ähnliche Fonts, die man alternativ einsetzen könnte? Bzw. gibt es allgemein ähnliche Fonts, die jeder installiert hat, als Alternative?
Achja, dann noch... Ich habe rechts immer ein paar Pixel "überstehen", weshalb sich unten immer eine Scrollbar bildet. Ich habe jedoch alles in eine <div> geschrieben die 1009px breit ist und somit dürfte das ja theoretisch gar nicht passieren. Hat dafür eventuell jemand eine Lösung?
Klick hier \o/ (http://www.rm-source.de/webspace/anima/blog/)
Über Hilfe wäre ich wirklich froh. Danke im Voraus. :3
LG,
Anima~
Firephoenix
22.10.2007, 14:14
Achja, dann noch... Ich habe rechts immer ein paar Pixel "überstehen", weshalb sich unten immer eine Scrollbar bildet. Ich habe jedoch alles in eine <div> geschrieben die 1009px breit ist und somit dürfte das ja theoretisch gar nicht passieren. Hat dafür eventuell jemand eine Lösung?
Klick hier \o/ (http://www.rm-source.de/webspace/anima/blog/)
Über Hilfe wäre ich wirklich froh. Danke im Voraus. :3
Mit den Fonts kann ich dir nicht wirklich helfen,
mit dem anderen könnte ich es mal versuchen 3>!
Also zuersteinmal tritt das "Problem" denke ich erst mit einer Auflösung
von max. 1024x768 auf...ich benutze eine höhere...
Bei deiner Auflösung würde ich dann keine relative Breite bestimmen,
sondern eine prozentuale...
Bei 100% bildet sich oft trotzdem eine horizontale Scrollbar,
deshalb ist 99% zu empfehlen.
Ich hoffe ich hab das so verstanden wie du das meinst :o!
Mit freundlichen Grüßen
Firephoenix
Wegen dem Scrollbalken:
Rechts hast du ja wahrscheinlich auch einen Scrollbalken, ist dieser vielleicht so dick, dass der effektiv nutzbare Platz weniger als 1009px breit ist? Außerdem ist das doof, wenn du fixe Breiten benutzt :o.
Und wegen der Schrift:
Ist diese Schriftart wirklich so wichtig für deinen Blog? Verdana, Tahoma etc tun es doch auch, oder nicht? (Anmerkung: Ich hab keine Myriad Pro, weder unter Ubuntu noch Windows)
Ah, ich weiß wieder, woher ich den Font hab. War bei Photoshop CS3 Extended dabei, wurde mitinstalliert. :D
Danke für die Hilfe. Ich hab jetzt als Alternativ-Font noch Verdana mit angegeben. Der ist der Form von Myriad Pro noch am ähnlichsten, auch, wenn Myriad Pro noch weitaus schöner aussieht. Sieht irgendwie so... inset aus. :3
Screenshot (http://npshare.de/files/35/4497/Unbenannt2.PNG)
Also, eine Scrollbar ist auf der rechten Seite, logisch. Aber auch, wenn der Content komplett weg ist, bleibt die vertikale Scrollbar unten.
Was die fixen Breiten angeht, das ist völlig absichtlich. Schließlich soll der Content auf nem 1400*900er nicht in die Breite schießen ;)
Oder gäbe es da eine Alternative? Da hab ich mich nämlich noch nicht so~ sehr mit befasst.
Danke aber schonmal für die beiden Beiträge. :3
LG,
Anima~
drunken monkey
22.10.2007, 16:54
Was die fixen Breiten angeht, das ist völlig absichtlich. Schließlich soll der Content auf nem 1400*900er nicht in die Breite schießen ;)
Oder gäbe es da eine Alternative? Da hab ich mich nämlich noch nicht so~ sehr mit befasst.
Zum Glück schon: du gibst einfach bei width sowas wie 80% an, und zusätzlich als max-width deine 1009px.
Bei älteren Versionen des IE funktioniert das afaik zwar nicht (beim Siebener weiß ich's nicht), aber immer noch besser, als bei allen Auflösungen unter 1280px Breite die Seite mit horizontalen Scrollbalken anzuzeigen.
Zusätzlich könntest du noch per Conditional Comment ein Zusatz-CSS für die alten IEs einbinden, in dem du per expression() die Breite entsprechend setzt, für den Fall, dass sie auch dort nicht zu breit sein darf.
Also, eine Scrollbar ist auf der rechten Seite, logisch. Aber auch, wenn der Content komplett weg ist, bleibt die vertikale Scrollbar unten.
Ähm, wenn ich das richtig verstehe, dann hast du da einen Div-Container, bloß ohne Inhalt.
Aber die 1009px Breite sind ja dem Container zugewiesen, was auch erfüllt wird, wenn nichts im besagten steht. http://www.multimediaxis.de/images/smilies/old/3/uhoh.gif
Teelicht
29.10.2007, 20:07
Aber auch, wenn der Content komplett weg ist, bleibt die vertikale Scrollbar unten.
Was die fixen Breiten angeht, das ist völlig absichtlich. Schließlich soll der Content auf nem 1400*900er nicht in die Breite schießen ;)
Die Alternative gibt es: Du musst einfach statt mit absoluten Werten für die Breite mit relativen arbeiten. Prozent in verbindung mit Maximalbreite finde ich unnötig, viel einfacher ist es, statt Pixel eine Größe wie M oder x zu benutzen (im Quellcode heißt das dann em bzw. x) - 1 M (1em) entspricht der Breite eines 'M'; 1 x (1ex) entspricht der Breite eines 'x'.
Das ist unabhängig von der Auflösung und sieht (wenn man es richtig anwendet) überall gut aus. Probleme mit Browser sind mir auch nicht bekannt.
Bluescreen
04.11.2007, 13:26
Wie kann ich mit einem PHP-Skript eine INI-Datei schreiben,
die später als INI-Datei wieder eingelesen werden kann?
Wie kann ich mit einem PHP-Skript eine INI-Datei schreiben,
die später als INI-Datei wieder eingelesen werden kann?
Format einer INI-Datei kennen, dann genügen die üblichen Funktionen zum Schreiben von Textdateien.
parse_ini_file() (http://de2.php.net/manual/de/function.parse-ini-file.php)
NPC Fighter
04.11.2007, 14:07
Wie kann ich mit einem PHP-Skript eine INI-Datei schreiben,
die später als INI-Datei wieder eingelesen werden kann?
Man hat mir mal gesagt, dass die Verarbeitung mit parse_ini_file() wesentlich unperformanter sei*, als wenn du einfach eine normale PHP-Datei schreiben lässt und diese ganz normal ausliest (du kannst die Einstellungen statt in der Ini-Schreibweise einfach mit assoziativen Arrays lösen).
; Beispiel für eine Ini-Datei
[1]
name = "NPC Fighter"
posts = 123
[2]
name = "Bluescreen"
posts = 456
<?php
// Äquivalente Lösung mit einer PHP Datei
$users[1]['name'] = 'NPC Fighter';
$users[1]['posts'] = '123';
$users[2]['name'] = 'Bluescreen';
$users[2]['posts'] = '456';
?>
* Kann dazu eigentlich jemand hier genauere Aussagen treffen?
Bluescreen
04.11.2007, 14:26
Aber wie schreibt man eine PHP Datei mit PHP, mir ist das noch nie geglückt.
Macht bitte ein kurzes Script, und zeigt da, wie ihr mit einem Script eine Datei erstellt, in der dann eine PHP-Variable definiert wird.
parse_ini_file() (http://de2.php.net/manual/de/function.parse-ini-file.php)
Das ist mir ja schon bekannt.
<?php
$file = fopen('php_script.php','w');
fputs($file,'<?php $variable = ""; ?>');
fclose($file);
?>
Reicht dir das?
Bluescreen
04.11.2007, 15:54
<?php
$file = fopen('php_script.php','w');
fputs($file,'<?php $variable = ""; ?>');
fclose($file);
?>
Reicht dir das?Und wenn ich noch'n Zeilenumbruch reinmachen will, um mehrere Variablen zu deklarieren? Oder gleich eine INI Datei schreiben?
NPC Fighter
04.11.2007, 15:58
Und wenn ich noch'n Zeilenumbruch reinmachen will, um mehrere Variablen zu deklarieren? Oder gleich eine INI Datei schreiben?
Du kannst in eine Zeile auch mehrere Anweisungen schreiben. Wenn du's übersichtlich haben willst, kannst du ja \n benutzen.
Bluescreen
04.11.2007, 16:07
Du kannst in eine Zeile auch mehrere Anweisungen schreiben. Wenn du's übersichtlich haben willst, kannst du ja \n benutzen.Aber ich will schon auf die INI heraus.
Das leigt einfach daran, das sich INI Dateien für nicht-PHP-Kenner viel leichter bearbeiten lassen.
Wenn ich das mit "\n" mache, wird ein schwarzes, viereckiges Zeichen eingetragen.
Du kannst auch wirklich einen Zeilenumbruch machen und nicht "\n" anfügen.
Und INI-Dateien sind eigentlich auch nur Text-Dateien, ganz kurz bei Wikipedia (http://de.wikipedia.org/wiki/Initialisierungsdatei).
Bluescreen
04.11.2007, 17:05
Du kannst auch wirklich einen Zeilenumbruch machen und nicht "\n" anfügen.Stimmt, ist halt' nicht so sauber.
Und INI-Dateien sind eigentlich auch nur Text-Dateien, ganz kurz bei Wikipedia (http://de.wikipedia.org/wiki/Initialisierungsdatei).Naja, also im Grunde sind alle Dateien Text-Dateien, ich weiß jetzt nicht wo du 'drauf raus willst.
dead_orc
04.11.2007, 19:18
Stimmt, ist halt' nicht so sauber.
Windows ist auch nicht sauber, Windows will nämlich \r\n und nicht nur \n :p (deswegen wohl der schwarze Kasten)
Naja, also im Grunde sind alle Dateien Text-Dateien, ich weiß jetzt nicht wo du 'drauf raus willst.
Viele, aber längst nicht alle. Ich weiß aber auch nicht, was er will :p
Eigentlich wollte ich mich aber zu dem Statement von NPC äußern. Natürlich ist es performanter, direkt PHP mit PHP zu schreiben und später einfach zu includen. Das Schreiben könnte minimal aufwendiger sein, das Auslesen geht dafür dann aber sehr fix, weil es eben direkt PHP Code ist. Und ich vermute mal, dass der PHP Code Parser PHP Code schneller parsen und verarbeiten kann als INIs.
Naja, also im Grunde sind alle Dateien Text-Dateien, ich weiß jetzt nicht wo du 'drauf raus willst.
Es fängt schon bei den doc-Dateien an, welche keine Textdateien sind. ;)
Ich weiß aber auch nicht, was er will :p
Und ich versteh nicht, was jetzt immernoch sein Problem ist. :rolleyes:
Bluescreen
05.11.2007, 14:55
Es fängt schon bei den doc-Dateien an, welche keine Textdateien sind. ;) Öhm, ich glaub da muss ich wiedersprechen. (Beweis (http://de.geocities.com/welt_der_skripte/editor_doc.gif))
Du meinst vielleicht, das sie sich nicht normal mit einem reinen Texteditor editieren lassen, aber es stehen trotzdem nur Buchstaben drin, die du dir auch mit dem Editor ansehen kannst.
Und ich versteh nicht, was jetzt immernoch sein Problem ist. :rolleyes:
Windows ist auch nicht sauber, Windows will nämlich \r\n und nicht nur \n :p (deswegen wohl der schwarze Kasten)
Ich glaube das müsste die Problemlösung sein, muss es aber noch testen...
Öhm, ich glaub da muss ich wiedersprechen. (Beweis (http://de.geocities.com/welt_der_skripte/editor_doc.gif))
Du meinst vielleicht, das sie sich nicht normal mit einem reinen Texteditor editieren lassen, aber es stehen trotzdem nur Buchstaben drin, die du dir auch mit dem Editor ansehen kannst.
Falsch, es ist umgekehrt, alle Dateien sind Binärdateien und eben nicht Textdateien, weil durch andere Variablengrössen(kommt auch noch auf Textkodierung an) du andere Sachen siehst(z.B. diese y's könnte jedesmal ne Zahl sein und eben nicht ein y), zudem ist eine 4 als Int Variable nicht gleich einer "4" in einer char Variable.
Bluescreen
08.11.2007, 18:33
Falsch, es ist umgekehrt, alle Dateien sind Binärdateien und eben nicht Textdateien, weil durch andere Variablengrössen(kommt auch noch auf Textkodierung an) du andere Sachen siehst(z.B. diese y's könnte jedesmal ne Zahl sein und eben nicht ein y), zudem ist eine 4 als Int Variable nicht gleich einer "4" in einer char Variable.Ok, da hast du natürlich recht. ASCII lässt grüßen.
Aber wir weichen vom Thema ab. Ich hatte halt' nicht ganz verstanden, was du uns mitteilen wolltest. Egal, du hast ja Recht.
CSS Problem: [Bild anzeigen] (http://de.geocities.com/welt_der_skripte/JuRa/screen_linkprob.gif)
Dies ist eine Link-Liste. Der Inhalt ist provisorisch, aber ich glaube, was ich möchte, ist klar: Bei höheren Auflösungen, oder einfach, wenn es der Platz erlaubt, soll der Untere Block auch in die obere Zeile rutschen.
Wie kriege ich Blöcke mit fest definierter Breite, die sich dann aber selbst positionieren?
Du könntest für die Blöcke seperate Div-Container anlegen, sie im CSS mit "float: left;" und weiteren Angaben wie width und heigt versehen.
Müsstest glaube danach ein
<div style="clear:both;"></div>
anfügen, weils sonst Probleme mit einer eventuellen Hintergrundgrafik geben könnte (weiss nicht, ob es so ist, aber wenn ich immer floated Container nicht gecleart (oh man) habe, dann war mein Backgroundimage flöten oder sowas in der Art).
drunken monkey
10.11.2007, 00:20
CSS Problem: [Bild anzeigen] (http://de.geocities.com/welt_der_skripte/JuRa/screen_linkprob.gif)
Dies ist eine Link-Liste. Der Inhalt ist provisorisch, aber ich glaube, was ich möchte, ist klar: Bei höheren Auflösungen, oder einfach, wenn es der Platz erlaubt, soll der Untere Block auch in die obere Zeile rutschen.
Wie kriege ich Blöcke mit fest definierter Breite, die sich dann aber selbst positionieren?
Es könnte einen Versuch wert sein, es einfach mit Inline-Elementen zu versuchen (also z.B. den entsprechenden divs display:inline; zuzuweisen). Allerdings wird das dann wieder mit der Breite knifflig, und mit evtl. Blockelementen, die enthalten sein sollen...
Ähm, wenn ich das richtig verstehe, dann hast du da einen Div-Container, bloß ohne Inhalt.
Aber die 1009px Breite sind ja dem Container zugewiesen, was auch erfüllt wird, wenn nichts im besagten steht. http://www.multimediaxis.de/images/smilies/old/3/uhoh.gif
Schon klar, aber ich hab ja das <div>-Tag + Inhalt gelöscht ^^"
Zum Glück schon: du gibst einfach bei width sowas wie 80% an, und zusätzlich als max-width deine 1009px.
Bei älteren Versionen des IE funktioniert das afaik zwar nicht (beim Siebener weiß ich's nicht), aber immer noch besser, als bei allen Auflösungen unter 1280px Breite die Seite mit horizontalen Scrollbalken anzuzeigen.
Zusätzlich könntest du noch per Conditional Comment ein Zusatz-CSS für die alten IEs einbinden, in dem du per expression() die Breite entsprechend setzt, für den Fall, dass sie auch dort nicht zu breit sein darf.
Danke, werd's bei Zeiten mal versuchen ^^
Danke euch allen jedenfalls. Ich werd's versuchen, wenn ich zeitlich wieder etwas mehr Freiraum habe. :3
Und sorry, dass ich jetzt erst antworte. Ich hab den Thread irgendwie nicht gefunden, weil ich vergessen hab, dass ich dafür gar keinen eigenen aufgemacht habe xD
Bluescreen
11.11.2007, 11:51
Du könntest für die Blöcke seperate Div-Container anlegen, sie im CSS mit "float: left;" und weiteren Angaben wie width und heigt versehen.
Müsstest glaube danach ein
<div style="clear:both;"></div>
anfügen, weils sonst Probleme mit einer eventuellen Hintergrundgrafik geben könnte (weiss nicht, ob es so ist, aber wenn ich immer floated Container nicht gecleart (oh man) habe, dann war mein Backgroundimage flöten oder sowas in der Art).Ich hab's jetzt ein bissl anders gemacht, so ging's nicht.
Es könnte einen Versuch wert sein, es einfach mit Inline-Elementen zu versuchen (also z.B. den entsprechenden divs display:inline; zuzuweisen). Allerdings wird das dann wieder mit der Breite knifflig, und mit evtl. Blockelementen, die enthalten sein sollen...Mhmm, hat nicht geklappt.
Relevantes CSS:
div#mittlere_box_breit div#links div.boxen {
text-align:center;
background:red;
float:left;
clear:right;
margin:5px;
width:225px;
padding:5px;
}
Und der relevante CSS-Code:
<div class="Inhalt" id="links">
<p>Hier finden sie eine Liste mit unseren Linkpartnern:</p>
<div class="boxen"><b>AKM-Website</b><br><a href="http://www.adresse/" target="_blank"><img src="grafiken/links_akm.gif" width="200" height="121" alt=""></a><br>
Die Website des Arbeitskreis Ministranten</div>
<div class="boxen"><b>Christus König-Website</b><br><a href="http://www.adresse.com/" target="_blank"><img src="grafiken/links_chrkoe.gif" width="200" height="121" alt=""></a><br>
Die Website der Gemeinde Chr. König</div>
<div class="boxen"><b>Ministranten Chr. König</b><br><a href="http://www.adresse.de.vu/" target="_blank"><img src="grafiken/links_minis.gif" width="200" height="121" alt=""></a><br>
Die Website der Ministranten von Chr. König</div>
<p> </p>
</div>
Warum klappt das noch nicht ganz? -> (http://de.geocities.com/welt_der_skripte/MMX/linkspartn2.gif)
[PS: Ich meine, warum die nicht von der Box umschlossen werden]
[B]PPS: Bei IE tuts gar net.
Hab auch mal ein paar Fragen, ich soll ein Referat über Framesets halten <__< kenne mich da aber absolut nicht aus. Also ich hab mir jetzt schon ein paar Sachen durchgelesen pro und contra denke ich habe ich verstanden und was halt diese framesets bewirken sollen.
Meine frage wäre was es denn heute für Alternativen zu framesets gibt und wie ein einfacher Quelltext aussehen müsste um das Thema an einem Beispiel erklären zu können.
dead_orc
25.11.2007, 16:14
Hab auch mal ein paar Fragen, ich soll ein Referat über Framesets halten <__< kenne mich da aber absolut nicht aus. Also ich hab mir jetzt schon ein paar Sachen durchgelesen pro und contra denke ich habe ich verstanden und was halt diese framesets bewirken sollen.
Meine frage wäre was es denn heute für Alternativen zu framesets gibt und wie ein einfacher Quelltext aussehen müsste um das Thema an einem Beispiel erklären zu können.
Framesets sind ja im Wesentlichen dazu da, einen gleichbleibenden Inhalt an der Seite zu haben. Um nicht in jede Seite den selben Text (z.B. Navigation) wieder schreiben zu müssen, kann man PHP oder eine andere serverseitige Scriptsprache benutzen:
<?php include('navigation.html'); ?>
(ich weiß, dass include hier nicht das eleganteste ist...)
Um einfach nur etwas an der Seite zu positionieren, kann man entweder Tabellen (böse! wird von vielen beschimpft, weil Tabellen dafür nicht gemacht sind) oder einfach div Container, die mit CSS positioniert werden, benutzen. Da das aber meistens net ganz einfach ist, poste ich hier jetzt nicht einfach so n Beispiel ;)
ich bräuchte nur ein beispiel für normale framesets ohne CSS .__.
selftitled
26.11.2007, 01:03
Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document :-)</title>
</head>
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="/UntitledFrame-2" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="/UntitledFrame-1" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes>
<body>
<!-- --->
</body>
</noframes>
</html>
Ob dir das jetzt viel bringt? :)
Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document :-)</title>
</head>
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="/UntitledFrame-2" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="/UntitledFrame-1" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes>
<body>
<!-- --->
</body>
</noframes>
</html>
Ob dir das jetzt viel bringt? :)
ohje ^_^' schon die erste zeile ist mir völlig fremd .__. aber ich musste das Referat doch nicht halten -.- ich hab dem Lehrer auch gesagt das die blöden Übungen nicht funktioniert haben, nach dem 5 mal Fragen nach Hilfe hat mir der Lehrer immer noch nicht geholfen mir hats dann auch gereicht, wie ich dieses Fach hasse. Trotzdem vielen danke für deine Hilfe
Teelicht
04.12.2007, 01:02
<?php include('navigation.html'); ?>
(ich weiß, dass include hier nicht das eleganteste ist...)
Da ich nur (fortgeschrittener?) Anfänger in PHP bin: Was sollte man denn stattdessen nutzen? Lieber Require()? Und was ist denn an include() so unelegant?
dead_orc
04.12.2007, 15:52
Da ich nur (fortgeschrittener?) Anfänger in PHP bin: Was sollte man denn stattdessen nutzen? Lieber Require()? Und was ist denn an include() so unelegant?
Ich include hier eine .html Datei. include() interessiert die Dateiendung aber nicht, ein <?php ?> Block wird immer ausgeführt (auch wenns ne .txt Datei ist). In einer .html Datei hat sowas aber nix zu suchen, und es wäre wahrscheinlich auch nicht erwünscht, dass solche Blöcke ausgeführt werden. Also wäre echo file_get_contents('navigation.html'); wesentlich eleganter, da es verhindert, dass ein Angreifer sich den eventuell variablen Dateinamen zu Nutzen macht um eine PHP Datei auszuführen, die er vorher auf den Server eingeschleust hat. Frag mich nicht wie, aber es geht ums Prinzip ;)
require() würde ich da nicht benutzen. Lieber ein if(include('navigation')) { ... }, um evtl. eine geeignete Fehlermeldung anzuzeigen, die keine Daten preisgibt, die der Benutzer nicht sehen soll. require() würde ich nur für PHP Dateien benutzen, die Funktionen und Klassen enthalten, die für die spätere Ausführung gebraucht werden und im Allgemeinen nicht fehlen sollten.
Bluescreen
05.01.2008, 18:29
Wo ist hier der SQL Fehler?
UPDATE `benutzer` SET `Ben_Geburtstag` = '1991-09-19', SET `Ben_ICQ` = '477582719', SET `Ben_Website` = NULL, SET `Ben_Interessen` = 'Internet (HTML, CSS, JavaScript, PHP)', SET `DatumBesuch` = NOW() WHERE `ID` = 1 LIMIT 1;
Das ist die SQL, die mit mysql_query($SQL, $DBVerbindung); geupdatet werden soll.
Warum gibt er folgenden Fehler aus?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET `Ben_ICQ` = '477582719', SET `Ben_Website` = NULL, SET `Ben_Interessen` = 'I' at line 1
Weil du das SET nur einmal schreiben darfst.
Bluescreen
05.01.2008, 20:17
Achso, klar, danke!^^
Hallo allerseits, hab ne kurze Frage.
Ich wollt mir mal ein "Wer ist Online?" Script erstellen, bei dem alle registrierten Benutzer erfasst werden, die gerade online sind.
Da hab ich mir gedacht, dass ich in der Usertabelle in der DB das Attribut "Online" hinzufüge, und auf die index.php ein Script packe, welches jedes mal den Wert 1 einträgt.
Naja und letztendlich werden alle User gezählt, deren "Online" Wert "1" beträgt.
Sollte soweit klappen, nur weiß ich nicht, wie man nach einer gewissen Zeit wieder 0 eintragen kann, sofern der User nicht mehr aktiv ist :\
drunken monkey
07.02.2008, 23:11
Bei der Variante bräuchtest du noch ein Extra-Feld des Typs Timestamp "Letzte Aktion". Bei jedem Aufruf der Seite (oder auch jedem zehnten, wenn das genügend sind), resettest du dann alle Online-Flags von Usern, deren letzte Aktion schon länger als x Minuten her ist.
Kannst aber auch gleich eine neue Tabelle nehmen, dann brauchst du nur User ID und Timestamp und löschst die Einträge der Nicht-Aktiven einfach. Kann aber nicht sagen, was performanter ist, das müsstest du ausprobieren, wenn's dir drauf ankommt. Viel Arbeit ist's eh nicht.
deadshox
08.03.2008, 20:17
Hui, heut will ich auch mal eine frage stellen. ;D
Ich werd hier noch bekloppt, ich verstehe einfach nicht warum mir der http://validator.w3.org/ kein richtiges UTF-8 Encoding ausgibt.
Bekomme immer diese Meldung:
The character encoding specified in the HTTP header (iso-8859-1) is different from the value in the XML declaration (utf-8). I will use the value from the HTTP header (iso-8859-1).
So und hier der Quelltext:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{title}</title>
<link rel="stylesheet" type="text/css" href="firmen/{firma}/style/style.css" />
</head>
<body>
<div id="head">
<div id="headTwo">
<h1>{title}</h1>
<h2>wushu</h2>
</div>
</div>
<ul id="navi">
<li><a href="?page=0">Start</a></li>
</ul>
<div id="content">
{content}
</div>
</body>
</html>
Koennt ihr mir da weiterhelfen? Werd hier bald kirre. ;)
gruss deadshox
drunken monkey
08.03.2008, 20:31
Steht ja eh schon in der Meldung: im HTTP-Header wird statt utf-8 iso-8859-1 als Encoding angegeben.
Das ist leider immer ein ziemliches Problem, hängt nicht an der HTML-Datei sondern am Server. Als Ausweg gibt es zwei Möglichkeiten:
Entweder du darfst vom Anbieter aus .htaccess-Dateien erstellen (und der Server verwendet Apache), dann kannst du dort einstellen, dass HTML-Dateien allgemein, oder die Datei im Speziellen, als utf-8 ausgeliefert werden sollen.
Oder du darfst PHP-Dateien verwenden, dann könntest du eine erstellen, die zuerst header('Content-Type: text/html; charset: utf-8'); aufruft und dann die jeweilige Datei ausgibt, was allerdings ein Performanceverlust wäre.
In die .htaccess-Datei müsste folgendes:
AddCharset utf-8 .html
# Oder, für bestimmte Files mit utf-8:
<Files "example.html">
AddCharset utf-8 .html
</Files>
Nebenbei, wenn du utf-8 verwendest ist die XML-Deklaration optional. Und du solltest sie auch weglassen, da sie nur schädlich ist.
Hallo !
Ich stehe vor folgendem Problem:
Ich möchte gern ein PN Script (Ohne PN Anzeige) kreieren, dafür allerdigns nur eine einzige Datei verwenden.
Das heißt, dass sowohl der DB-Eintrag, also auch die Anzeige des Formulars in eine Datei gebracht werden müssen.
Soweit kein Problem, ich benutze ein verstecktes Inputfeld, in welchem eine bestimmter Wert übergeben wird.
Beim Absenden der Nachricht wird überprüft, ob der genannte Wert vorhanden ist, und sofern er es ist, führt die Datei den Eintrag-Part durch; ist er es nicht, wird das Formular angezeigt.
Nur ist mein Problem, was wohl auch ein albekanntes darstellt, dass man nach dem erfolgreichen Eintrag F5 drückt und ein zweiter Eintrag durchgeführt werden kann, was ich gerne verhinden möchte.
Eigentlich wäre das auch kein Problem, da ich wieder die Methode des versteckten Inputfeldes verwenden könnte, was sonst auch immer geklappt hat.
Nun habe ich allerdings die Schwierigkeit, dass der Script sich eben in einer Datei befindet, demnach werden also 2 solcher Inputs verwendet, was logischerweise das Überprüfen per if unmöglich macht.
Zum Verständnis nochmal der Code (ohne F5 Sicherheit)
<?php
$empf = $username;
$rec = $_POST["rec"];
$subj = $_POST["subj"];
$titel = $_POST["titel"];
$pnon = $_POST["pnon"];
$time = time();
if ($from == "da")
{
$eintrag = "INSERT INTO user_pn
(sender, receiver, message, time, titel)
VALUES
('$username', '$rec', '$subj', '$time', '$titel')";
$eintragen = mysql_query($eintrag);
$send = "yes";
}
else
{
echo"
<form action='?content=newpn' method='post'>
<br />
<div style='margin: 5px;'>
<br />
<input type='hidden' name='form' value='da' />
<!-- Formulardaten -->
</form>";
}
?>
Entweder du machst eine Zeitsperre über die Session rein oder Aktions-IDs.
Im ersten Fall speicherst du beim Absenden des Formulars den aktuellen Timestamp in der Session ab und überprüfst den halt:
<?php
if($_SESSION['pm_time'] < time() - 60)
{
// Versende die PM
$_SESSION['pm_time'] = time();
}
else
{
// Warten...
}
?>
Im anderen Fall generierst du eine ID, wenn das Formular angezeigt wird, der dann mit dem Formular verschickt wird. Mithilfe von diesem Wert kannst du dann überprüfen, ob das Formular bereits abgeschickt wurde:
<?php
if(...)
{
if(!$_SESSION['action_id'])
{
$_SESSION['action_id'] = uniqid('pm_', true);
}
// Dein Formular mit der ID
echo '<input type="hidden" name="action_id" value="'.$_SESSION['action_id'].'">';
}
else
{
if($_POST['action_id'] && $_SESSION['action_id'] == $_POST['action_id'])
{
// Alles OK
unset($_SESSION['action_id']);
}
else
{
// Schon abgeschickt
}
}
?>
Ich hoffe das hilft dir weiter...
Danke für die Hilfe, nur ist das Problem leider sie Session an sich.
Denn, die Zeitspanne einer Session dauert meistens länger als 5 Minuten, allerdings handelt es sich hierbei ja um ein PN System.
Man soll nicht per F5 diesselbe Nachricht abschicken können, andererseits, soll man aber auch anschließend andere Nachrichten schreiben können.
Wenn ich allerdigns Sessions verwende, so muss man einige Zeit warten, bevor man eine weitere Nachricht schreiben kann.
Danke für die Hilfe, nur ist das Problem leider sie Session an sich.
Denn, die Zeitspanne einer Session dauert meistens länger als 5 Minuten, allerdings handelt es sich hierbei ja um ein PN System.
Man soll nicht per F5 diesselbe Nachricht abschicken können, andererseits, soll man aber auch anschließend andere Nachrichten schreiben können.
Wenn ich allerdigns Sessions verwende, so muss man einige Zeit warten, bevor man eine weitere Nachricht schreiben kann.
Muss man zumindest bei der zweiten Möglichkeit nicht. Da muss man lediglich die Seite mit dem Formular ein weiteres Mal aufrufen. Und bei der ersten Möglichkeit sind es auch keine 5 Minuten sondern eine einstellbare Zeitspanne, zum Beispiel 20 Sekunden...
dead_orc
12.03.2008, 14:03
Da du die Daten in eine Datenbank speicherst, kannst du auch einfach überprüfen, ob eine PN mit exakt dem selben Text an diesen Empfänger schon in der Datenbank existiert. Denn die Methode mit der action_id hätte z.B. zum Nachteil, dass man nicht mit "Zurück" wieder zum Formular kommen, alle Felder löschen, neu eintragen und erneut abschicken kann, auch wenn diese neue PN vielleicht eine vollkommen andere ist.
Da du die Daten in eine Datenbank speicherst, kannst du auch einfach überprüfen, ob eine PN mit exakt dem selben Text an diesen Empfänger schon in der Datenbank existiert. Denn die Methode mit der action_id hätte z.B. zum Nachteil, dass man nicht mit "Zurück" wieder zum Formular kommen, alle Felder löschen, neu eintragen und erneut abschicken kann, auch wenn diese neue PN vielleicht eine vollkommen andere ist.
Deine hat den Nachteil, dass man eine PN nicht zwei Mal versenden kann. Und das könnte ja durchaus gewünscht sein ;)
dead_orc
12.03.2008, 15:10
Deine hat den Nachteil, dass man eine PN nicht zwei Mal versenden kann. Und das könnte ja durchaus gewünscht sein ;)
if($row['sendtime'] > time()-300)
*shrug*
So macht es das Forum auch mit identischen Beiträgen...
Bluescreen
21.03.2008, 17:42
Für mein kleines Forumsystem brauche ich wie hier im Forum nach dem "Beitrag verfassen" einen Antworten und einen Vorschau-Button. Wie kann ich das in einem Forum übertragen, das man mit den verschiedenen Button's zb. unterschiedliche Argumente überliefert, damit ich darunter unterscheiden kann.
Wie löst man das am Besten?
drunken monkey
21.03.2008, 17:49
Wenn du meinst, was ich meine dass du meinst, musst du den Buttons einfach nur Namen (übers name-Attribut) geben. Dann kannst du im Skript, dass den Formularinhalt bekommt, überprüfen, ob $_POST['abschicken'] oder $_POST['vorschau'] gesetzt ist (wobei "abschicken" und "vorschau" dann die jeweiligen name-Attribute wären).
Ich glaube, irgendwelche Browser-spezifischen Besonderheiten gab's da evtl. auch noch, aber das müsstest du wo nachschauen.
Ja, du musst dazu input-Elementy vom Typ „submit“ mit verschiednenen name-Werten erstellen (so wird es auch hier im Forum gehandhabt).
button-Elemente, mit denen die Sache theoretisch einfacher wird sind problematisch weil diese im Internet Explorer bis Version 7 (und darüberhinaus in allen nicht-standardkonformen-Modi) fehlerhaft implementiert sind. Der IE versendet den Inhalt des bzw. der button-Elemente statt dem Inhalt des value-Attributs.
deadshox
23.03.2008, 12:20
Kommt n bissel Spaet aber danke fuer die Hilfe letztes mal. ;)
Dann will ich gleich mal das naechste erfragen, is jetz n bissel was theoretisches.
Thema: MySQL Verbindungen + Performance, Traffic und Rechenaufwand.
Also ich habe ein Script "sA", womit ich auf andere kleine Scripte "sB,sC,sD ..." zugreifen kann. "sA" Braucht keinen MySQL Zugriff aber "sB,sC,sD ...", empfiehlt es sich jetzt einmal eine MySQL Verbindung in "sA" aufzubauen, es die ganze Zeit laufen zulassen (obwohl es nicht die ganze Zeit genutzt wird) und am ende wieder zu schließen oder fuer "sB,sC,sD ..." eine Verbindung aufzubauen und sie dann wieder zuschließen wenn es durchgelaufen ist?
Vlt noch mal direkter gefragt, habe ich mehr von wenn ich einmal eine MySQL Verbindung starte und sie die ganze zeit laufen lasse und am ende schließe oder wenn ich sie nur bei gebrauch starte und beende?
mfg deadshox
Xardas der Dunkle
23.03.2008, 12:45
Du hast eindeutig mehr, davon wenn die Verbindung offen bleibt.
Es epfiehlt sich meist sich eine kleine Classe zu schreiben, bzw. die mysqli-Classe zuverwenden und das Object dann immer wieder abzurufen.
deadshox
23.03.2008, 12:51
Die Klasse habe ich ja, ging mir nur darum ob es besser ist sie Offen zulassen oder sie immer wieder auf und zu zu machen.
Weil es in HTML Strict nicht erlaubt ist.
Bluescreen
24.03.2008, 15:47
Stimmt, jetzt hab ich's auch gesehen. Kann ich das Problem (mit einem alternativen Tag) lösen?
Xardas der Dunkle
24.03.2008, 15:50
<span style="text-decoration:underline;">...</span>
Bluescreen
24.03.2008, 16:04
<span style="text-decoration:underline;">...</span>Naja, so ja immer.
Warum wurde es eigentlich als missbilligt eingestuft? Verstehe ich bei diesem Element wirklich nicht.
Eher noch mit span@class.
Nunja, die Unterstreichung von text ist im Web die Kennzeichnung für Verweise schlechthin. Unterstrichene Texte, die keine Links darstellen verwirren den Benutzer, da deren Erwartung nicht erfüllt wird (das folgen eines Links).
Meiner Meinung nach hätten entsprechend auch b und i entfernt werden sollen, aber die wär man wohl so oder so nicht mehr losgeworden. Da finde ich die nachträgliche Definierung von HTML5 durchaus sinnvoll.
Bluescreen
29.03.2008, 16:30
Naja, ich verwende den Unterstrich im allgemein eigentlich gar nicht, ich hab was persönliches gegen den... Naja, wieder ne andere Frage:
Ich brauche eine MySQL Abfrage die mir die Daten eines bestimmten Monats ausgibt, die Datumswerte sind als DATE( ) in der Datenbank.
So möchte ich per SELECT zb. alle Datensätze des aktuellen Monats holen, wie mach ich das? Da gibt es doch bestimmt auch ein Spezielles Schlüsselwort?!
Xardas der Dunkle
29.03.2008, 17:50
MONTH( date ) dürfte helfen.
Nur hatte ich mit Datumsfeldern bisher immer Probleme und verwende persöhnlich dafür nur noch int.
Bluescreen
29.03.2008, 19:13
MONTH( date ) dürfte helfen.Dankö!
Nur hatte ich mit Datumsfeldern bisher immer Probleme und verwende persöhnlich dafür nur noch int.Jo, aber bei den Timestamps hat man halt Probleme mit Zeitverschiebung und Zeitumstellung.
Dankö!
Jo, aber bei den Timestamps hat man halt Probleme mit Zeitverschiebung und Zeitumstellung.
Inwiefern? Ich hatte damit noch nie Probleme.
[wichtige Vorrausinfo] Nun, ich hab von JS keine Ahnung. [/wichtige Vorrausinfo]
function klicken(bla) {
document.getElementById(bla).style.backgroundImage = 'url(images/'bla'/0'number'.png)';
var number = number + 1;
}
Ich will, dass wenn ich die Funktion aufrufe meine Variable "number" immer um +1 erhöht wird. Desweiteren soll in dem Pfad für das BG-Image die Variable "bla", die ja an die Funktion übergeben wurde, und mein "number" vorkommen.
Gut. Kann mir jemand erklärn wie ich das zum laufen bringe?
Wär kewl. Danke.
Xardas der Dunkle
31.03.2008, 22:56
<script type="text/javascript">
var number = 0;
function klicken(bla) {
number++;
document.getElementById(bla).style.backgroundImage = 'url(images/'bla'/0' + number + '.png)';
}
</script>
2 Sachen:
Die Variable muss global deklariert werden, sprich ausserhalb der Function. Zudem hast du sie jedes mal neudeklariert :(.
Eine Zeichenkette (String) wird mit dem + Zeichen verbunden.
mfG
<script type="text/javascript">
var number = 0;
function klicken(bla) {
number++;
document.getElementById(bla).style.backgroundImage = 'url(images/'bla'/0' + number + '.png)';
}
</script>
2 Sachen:
Die Variable muss global deklariert werden, sprich ausserhalb der Function. Zudem hast du sie jedes mal neudeklariert :(.
Eine Zeichenkette (String) wird mit dem + Zeichen verbunden.
mfG
Nachdem ich das noch geändert hab:
url(images/' + bla + '/0' + number + '.png) gehts jetzt. :)
Danke für die rasche Antwort.
PHP:
ist es möglich die folgenden Fälle zu hacken, muss ich also addslashes hinzufügen? :
$id = $_GET['id'];
$wert = $array['blabl_'.$id];
oder
$id = $_GET['id'];
removeDir('../ordner_'.$delete_id);
Edit: oder soll ich einfach is_numeric verwenden?
ist es möglich die folgenden Fälle zu hacken, muss ich also addslashes hinzufügen?
Durchaus.
Sinnvoller wäre jedoch $var = (int) $var; bzw. $var = int($var); zu verwenden, wodurch der Wert der Variable in eine Zahl umgewandelt wird (genauer gesagt wird der Datentyp umgewandelt).
Durchaus.
Sinnvoller wäre jedoch $var = (int) $var; bzw. $var = int($var); zu verwenden, wodurch der Wert der Variable in eine Zahl umgewandelt wird (genauer gesagt wird der Datentyp umgewandelt).
Meinst du intval() ? Kann man dann nicht z.B. ) in den String tun und so hacken?
Meinst du intval() ? Kann man dann nicht z.B. ) in den String tun und so hacken?
intval(), ja, hab PHP schon eine Weile nicht mehr angefasst.
Und nein, das in $var enthaltene Stringobjekt kann nicht mit der Skriptsprache selbst verknüpft werden, ein „)“ innerhalb des Strings ist also keine Gefahr.
Javascript/Ajax
Mit folgendem Script erstelle ich über die getdata.php einen DB Request und alsse ihn ausgeben
function loadData(nid)
{
if (xmlHttp) {
xmlHttp.open('GET', 'getdata.php?nid='+nid+'', true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById("comments").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(null);
}
}
Dazu muss ich sagen, dass es um ein Newsscript geht, wobei der Ajax-Anteil die Kommentare ausgibt.
Der Parameter "nid" steht für die News-Id. Das Problem ist nur folgendes:
Das Newsscript wird in die index.php includet, und dort wird auch die Variable "nid" festgelegt, allerdings befindet sich der Javascript der index.php schon im Head-Teil, obwohl die Funktion (loadData) erst im body-Teil ausgeführt wird.
Von daher kennt das Javascript die Variable nid noch nicht.
Klar, man kann die Variable nid selbstverständlich auch vor dem Head-Teil in der index.php festlegen, aber das will ich nicht, ich will dass sie erst in der includeten Datei festgelegt wird.
Also, wie kann ich die Funktion loadData ausführen, sodass nur Kommentare mit der entsprechenden Newsid ausgegeben werden?
dead_orc
23.05.2008, 14:49
Javascript/Ajax
Mit folgendem Script erstelle ich über die getdata.php einen DB Request und alsse ihn ausgeben
function loadData(nid)
{
if (xmlHttp) {
xmlHttp.open('GET', 'getdata.php?nid='+nid+'', true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById("comments").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(null);
}
}
Dazu muss ich sagen, dass es um ein Newsscript geht, wobei der Ajax-Anteil die Kommentare ausgibt.
Der Parameter "nid" steht für die News-Id. Das Problem ist nur folgendes:
Das Newsscript wird in die index.php includet, und dort wird auch die Variable "nid" festgelegt, allerdings befindet sich der Javascript der index.php schon im Head-Teil, obwohl die Funktion (loadData) erst im body-Teil ausgeführt wird.
Von daher kennt das Javascript die Variable nid noch nicht.
Klar, man kann die Variable nid selbstverständlich auch vor dem Head-Teil in der index.php festlegen, aber das will ich nicht, ich will dass sie erst in der includeten Datei festgelegt wird.
Also, wie kann ich die Funktion loadData ausführen, sodass nur Kommentare mit der entsprechenden Newsid ausgegeben werden?
Irgendwie verstehe ich dein Problem nicht so recht. Du hast eine Funktion in einer Datei die includet wird. Diese Funktion willst du später mit einem Parameter aufrufen. Spätestens dort, wo du den Funktionsausruf mit PHP ausgeben lässt, müsste dir doch aber die News-ID bekannt sein, oder? Also im Stil von
while($row = mysql_fetch_assoc($result)) {
// ...
echo '<a href="news.php?id='.$row['id'].'" onclick="javascript:loadData('.$row['id'].');">Kommentare</a>';
// ...
}
Oder verstehe ich das falsch?
Also, der Javascript, welcher die Funktion erhält befindet sich im Head-Teil der index.php
Danach (und das ist warscheinlich das Problem meines Scripts) wird die Funktion loadData() im Body-Teil der index.php aufgerufen.
Das ist insofern problematisch, weil die Funktion auf diese Weise quasi immer aufgerufen wird, da sie in der index definiert ist, auch wenn das entsprechende News-Script nicht includet wird.
Demnach habe ich den Body folgendermaßen definiert.
<?php if ($content == "news_single") { $nid=$_GET["nid"]; echo"<body onLoad='loadData($nid);'>"; } else { echo"<body>"; } ?>
Wobei der content=news_single hier für das newsscript steht.
Am liebsten wäre es mir aber, wenn sich loadData() in der includeten Datei ausführen lässt, allerdings ohne klicken.
Das Problem ist, dass mir hierbei nur noch <body onload=""> bleibt, aber in eine Datei, welche man includet gehört nunmal kein <body>
dead_orc
23.05.2008, 15:05
Also, der Javascript, welcher die Funktion erhält befindet sich im Head-Teil der index.php
Danach (und das ist warscheinlich das Problem meines Scripts) wird die Funktion loadData() im Body-Teil der index.php aufgerufen.
Das ist insofern problematisch, weil die Funktion auf diese Weise quasi immer aufgerufen wird, da sie in der index definiert ist, auch wenn das entsprechende News-Script nicht includet wird.
Demnach habe ich den Body folgendermaßen definiert.
<?php if ($content == "news_single") { $nid=$_GET["nid"]; echo"<body onLoad='loadData($nid);'>"; } else { echo"<body>"; } ?>
Wobei der content=news_single hier für das newsscript steht.
Am liebsten wäre es mir aber, wenn sich loadData() in der includeten Datei ausführen lässt, allerdings ohne klicken.
Das Problem ist, dass mir hierbei nur noch <body onload=""> bleibt, aber in eine Datei, welche man includet gehört nunmal kein <body>
<script type="text/javascript">loadData(<?php echo $_GET['nid']; ?>);</script>
Kannst du überall unterbringen und dürfte auch valid sein.
Wenn du die Daten aber eh ohne Userinteraktion anzeigen willst, frage ich mich, warum du sie nicht gleich mit ausgibst o_O
<script type="text/javascript">loadData(<?php echo $_GET['nid']; ?>);</script>
Kannst du überall unterbringen und dürfte auch valid sein.
Wenn du die Daten aber eh ohne Userinteraktion anzeigen willst, frage ich mich, warum du sie nicht gleich mit ausgibst o_O
Joa..hätte ich auch drauf kommen können :D
Trotzdem danke !
Naja, ich lasse sie doch ausgeben, nur eben per Ajax. Sie aktualisieren sich eben nur nicht im Shoutboxstil, sondern nur dann, wenn jemand einen Kommentar schreibt, was mich auch gleich zur zweiten Frage führt, denn genau das möchte ich auch irgendwie erreichen..
Bei meinem Eingabeformular benutze ich folgenden Code im Form Tag
onsubmit='saveData(); return false;'
Schreibe ich jetzt hinter savaData(); noch loadData(); so trägt er den Kommentar zwar ein, aber ich lande wieder auf der index ohne $content.
Wie kann ich also am besten die Kommentare aktualisieren, wenn jemand einen Eintrag verfasst?
Xardas der Dunkle
23.05.2008, 22:30
<script type="text/javascript">loadData(<?php echo $_GET['nid']; ?>);</script>
Man sollte niemals eine Benutzereingabe direkt ausgeben bzw. anders weiterverwenden.
Man sollte die Eingabe immer erst prüfen bzw. dafür sorgen, das keine gefährlichen Daten drin vorkommen.
In diesem Fall kämme wohl intval in Frage.
<script type="text/javascript">loadData(<?php echo $_GET['nid']; ?>);</script>
Man sollte niemals eine Benutzereingabe direkt ausgeben bzw. anders weiterverwenden.
Man sollte die Eingabe immer erst prüfen bzw. dafür sorgen, das keine gefährlichen Daten drin vorkommen.
In diesem Fall kämme wohl intval in Frage.
Javascript und HTML kann ja sowieso vom Benutzer geändert werden, also was kann denn in diesem Falle passieren?
Javascript und HTML kann ja sowieso vom Benutzer geändert werden, also was kann denn in diesem Falle passieren?
Der Inhalt der Seite kann über die URL beinflußt werden, in diesem Falle könnte beliebiges HTML eingeschleust werden. Damit lässt sich beliebiger Inhalt in die Seite einfügen und damit kann man den User wunderbar täuschen, indem man falsche Informationen einbindet. Oder man stiehlt dem User einfach seine Cookies und damit möglicherweise seine Login-Informationen. Im Zweifelsfalle wartet man, bis der User sein Passwort eingibt und schickt es dann an den Angreifer. XSS (http://de.wikipedia.org/wiki/Cross-Site_Scripting) sollte man nicht unterschätzen.
dead_orc
24.05.2008, 09:18
Ist mir durchaus bewusst, aber ich sehe mich einfach nicht in der Pflicht, produktionsreifen Code zu liefern. ;)
Ich denke, sowas sollte man jemandem nicht vorkauen, sondern wenn überhaupt gleich mit erklären.
Hallo,ich bin ein absoluter PHP-Anfänger,und möchte ein Formular erstellen,dass die Ergebnisse auf eine andere Seite überträgt und anzeigt.
Das funktioniert aber nicht,sooft ich das auch umändere.
Das Formular in HTML:
<html>
<body>
<form action="dataget.php" method="post">
Name: <input type="text" name="benutzername" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Und ab!" />
</form>
</body>
</html>
Das PHP-Script,wo es ausgelesen wird:
<?php
echo $_POST['benutzername'];
?>
Ich habe irgendwie das Gefühl,dass was fehlt...
Ist es überhaupt möglich,die Daten in einem reinen HTML-Dokument (ohne irgendwelche PHP-Zeilen) zu erhalten?
Das seltsamste ist eigentlich,dass der größte Teil eigentlich aus einer anderen Seite rüberkopiert wurde und trotzdem im dem Zieldokument nix steht!(Ich benutze Firefox 2.0.0.14)
Befindet sich die Zeile
<?php echo $_POST['benutzername']; ?>
auch in der dataget.php (der im form-Element verlinkten Datei)?
Wenn nein, hineinschreiben. Falls ja: HTML-Quelltext anschauen, ob der PHP-Code überhaupt verarbeitet wurde.
Natürlich ist
<?php echo $_POST['benutzername']; ?>
in der dataget.php.Aber wenn ich ja mir die dataget.php ansehe,steht da nichts!
Zur Verarbeitung:Ich habe die Form action auf ="Abc.html" umbenannt,die Seite,wo die die Formulardaten eingebe,damit sie sich selbst wieder aufruft.Und unter dem Formular-Code habe ich die
<?php echo $_POST['benutzername']; ?> eingegeben,damit er sie ausgibt.Aber das funktioniert auch nicht.Oder wie soll man das machen?
Also so:
<html>
<body>
<form action="Abc.html" method="post">
Name: <input type="text" name="benutzername" value="a1" /><br />
Email: <input type="text" name="email" value="234" /><br />
<input type="submit" name="submit" value="Und ab!" />
</form>
<?php echo $_POST['benutzername'];
echo $_POST['email']; ?>
</body>
</html>
Ich hab echt keine Ahnung...;)
Aber wenn ich ja mir die dataget.php ansehe,steht da nichts!
Wird nichts angezeigt oder nichts ausgegeben (Rechtsklick, Seitenquelltext anzeigen)?
.html-Dateien werden in der Regel von PHP nicht verarbeitet, ist aber abhängig von der Konfoguration.
Im moment kannst du nur mal versuchen, als erstes im PHP-Codeblock
error_reporting(E_ALL);
oder
error_reporting(E_ALL|E_STRICT);
anzugeben, eventuell enthüllt dies das Problem.
Fangen wir doch erstmal mit den blöden Fragen an ;)
Wenn du alles auf deinem Rechner testest, hast du überhaupt Apache (oder einen anderen Webserver) bzw. PHP installiert?
Falls du Webspace besitzt, unterstützt dein Webspaceanbieter überhaupt PHP?
Sry, wegen den Fragen, aber ich weiß nicht, was du unter absoluter Anfänger verstehst. :)
drunken monkey
25.05.2008, 18:33
Noch ein Tipp: Zum Testen fand ich es am Anfang immer sehr praktisch, die Methode auf "get" statt auf "post" zu stellen (und natürlich dementsprechend in der PHP-Datei $_GET zu verwenden), da man dann die übergebenen Daten gleich in der URL sieht. Und auch selber leicht Sachen einspeisen kann, indem man einfach (als Beispiel den jetzigen Fall) ".../dataget.php?benutzername=blabla" in die Adressleiste eingibt.
Und wie mitaki schon gesagt hat, wenn du sagst, dass da "nichts steht", schau auf jeden Fall auch in den Seitenquelltext, um zwischen "der Server gibt nichts aus" und "der Browser zeigt nichts an" zu unterscheiden.
deadshox
25.05.2008, 18:53
Hi hab da n kleines denk Problem.
Dreht sich um PHP und MySQL.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich? :D
Wie kann ich das Verhindern oder Optimieren?
Hi hab da n kleines denk Problem.
Dreht sich um PHP und MySQL.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich? :D
Wie kann ich das Verhindern oder Optimieren?
Sofern du den Kategorienamen nicht per phpmyAdmin veränderst, sondern mit einem Script, sehe ich da keine Probleme.
$update0 = mysql_query("UPDATE kategorien Set kategorie_name='456'");
$update = mysql_query("UPDATE tabelle Set kategorie='456' WHERE kategorie = '123'");
dead_orc
25.05.2008, 19:14
Hi hab da n kleines denk Problem.
Dreht sich um PHP und MySQL.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich? :D
Wie kann ich das Verhindern oder Optimieren?
Sorry, aber wie grauenhaft schlechter Stil ist das denn bitte? :p
Du legst gefälligst in der Tabelle für die Kategorien eine Spalte ID (die meinetwegen auch anders heißen kann) an, die eine einzigartige und unveränderliche Nummer enthält (also einfach PRIMARY KEY auto_increment in PMA setzen) und referenzierst diese Nummer in der Tabelle der Spiele statt des Namens. Problem solved, so musst du den Namen eh erst abfragen und er wird nur einmal gespeichert.
Neben der Lösung deines Problems spart es Speicherplatz in der Tabelle und erhöht die Performance (da du vermutlich den Namen nicht zum Key gemacht hast), auch wenn du erst noch den Namen abfragen musst. Geht sogar mit nur einem Query:
SELECT g.*, c.name AS category_name FROM games AS g LEFT JOIN categories AS c ON (g.category = c.id)
(und bitte kommt mir jetzt nicht mit "ne ganze Zeile zu selecten ist schlechter Stil", das ist nur Beispielcode! :p)
deadshox
25.05.2008, 19:23
@Antares, das sieht cool aus, danke!
@dead_orc, die ID hab ich ja in der Tabelle. Das ist natürlich auch ne Möglichkeit. ;D
Danke euch beiden! Endlich hat meine Blockade ein Ende. xD
Ja das abern Schlechter Progg Stil. xD Werd deine Variante nehmen auch wenn Antares Schneller war. ;D
Ich habe eine DATE Spalte. Wie kann ich alle Einträge von z.B. 5 Tagen abfragen, mit nem gewissen Offset, der Offset ist eine Anzahl Tage nicht eine Anzahl Einträge?
Die Anzahl der Daten(pl. von Datum) kann ich ja über
$sql = "SELECT COUNT( DISTINCT `date` ) as `anz` FROM table;"; abfragen.
Hab gedacht mit einer Group By Selektion, dann bekomm ich ja 5 Einträge, müsste dann aber eine zweite Anfrage durchführen. Get das nun auch eleganter?
drunken monkey
26.05.2008, 22:18
Hm, je nachdem, was du genau willst. Mit der jetzigen Methode würdest du ja, wenn ich's recht verstehe, die Einträge von den letzten fünf Tagen mit existierenden Einträgen bekommen, also z.B. die Einträge der letzten sechs Tage, falls für einen der letzten fünf keine Einträge vorhanden sind.
Aber falls das nicht gewünscht ist, würde ich's wahrscheinlich mit TO_DAYS() oder UNIX_TIMESTAMP() machen, und auf eine Differenz kleiner 5 (bzw. kleiner 5 * 24 * 60 * 60) filtern. Also:
SELECT * FROM `table` WHERE TO_DAYS(`date`) - TO_DAYS(NOW()) < 5
Hm, je nachdem, was du genau willst. Mit der jetzigen Methode würdest du ja, wenn ich's recht verstehe, die Einträge von den letzten fünf Tagen mit existierenden Einträgen bekommen, also z.B. die Einträge der letzten sechs Tage, falls für einen der letzten fünf keine Einträge vorhanden sind.
Ja das will ich, nur jetzt noch mit einem Offset, also die 5 Tage vor den aktuellen 5 Tagen. Nur könnten da z.B.... sagen wir mal es ist der 12. Tag, der 8. und der 4. sind ohne Eintrag, jetzt will ich z.B. 12-7 herausfiltern können, aber auch auf einer anderen Seite 6-1.
dead_orc
27.05.2008, 06:26
So vielleicht?
SELECT * FROM `table` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 < 5 AND TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 > 0
So vielleicht?
SELECT * FROM `table` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 < 5 AND TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 > 0
Nein, das beachtet ja nicht, ob es keine Einträge zu einem Datum hat, wie drunken monkey gesagt hat, will ich, falls 2 leer sind, 7 Tage anzeigen lassen.
drunken monkey
27.05.2008, 13:45
Ja das will ich, nur jetzt noch mit einem Offset, also die 5 Tage vor den aktuellen 5 Tagen. Nur könnten da z.B.... sagen wir mal es ist der 12. Tag, der 8. und der 4. sind ohne Eintrag, jetzt will ich z.B. 12-7 herausfiltern können, aber auch auf einer anderen Seite 6-1.
In dem Fall würde ich wohl einfach die zwei Abfragen verwenden. Wahrscheinlich ging's auch mit komplizierten geschachtelten Abfragen, aber sich darüber den Kopf zu zerbrechen ist es wohl nicht wert, und ob's performanter oder klarer wäre ist auch sehr stark die Frage. <__<
Hallo :)
Da ich vorzugsweise mit Ajax arbeite, möchte ich den Usern selbstverständlich auch eine javascriptfreie Möglichkeit der Datenübermittlung anbieten.
<a href="linkziel" onClick="jsfunktion(); return false;">Link</a>
So wäre es eigentlich gut gelöst. Ist JS aktiviert wird das linkziel per "return false" außer Kraft gesetzt und die JS Instruktionen werden befolgt.
Ist JS deaktiviert wird der User zum Linkziel geleitet.
Das Problem an der Sache ist nur, dass die Javascript Eventhandler, soweit ich weiß, nicht mehr mit dem aktuellen HTML konform sind.
Welche andere Lösungsmöglichket gibt es denn hier?
Btw. Wie lassen sich den generell die recht nützlichen Eventhandler ersetzen? (OnFocus, OnBlur z.B.) ?
dead_orc
22.06.2008, 15:45
Hallo :)
Da ich vorzugsweise mit Ajax arbeite, möchte ich den Usern selbstverständlich auch eine javascriptfreie Möglichkeit der Datenübermittlung anbieten.
<a href="linkziel" onClick="jsfunktion(); return false;">Link</a>
So wäre es eigentlich gut gelöst. Ist JS aktiviert wird das linkziel per "return false" außer Kraft gesetzt und die JS Instruktionen werden befolgt.
Ist JS deaktiviert wird der User zum Linkziel geleitet.
Das Problem an der Sache ist nur, dass die Javascript Eventhandler, soweit ich weiß, nicht mehr mit dem aktuellen HTML konform sind.
Welche andere Lösungsmöglichket gibt es denn hier?
Btw. Wie lassen sich den generell die recht nützlichen Eventhandler ersetzen? (OnFocus, OnBlur z.B.) ?
Da liegst du falsch. Die Event-Handler sind sogar in XHTML 1.1 noch konform, wenn man sie komplett klein schreibt. Wenn der Validator also bei onClick meckert, nenn ihn onclick und alle sind glücklich.
Außerdem könnte man sie notfalls durch reines Javascript ersetzen:
document.getElementById('link').onclick = handler_function;
Da liegst du falsch. Die Event-Handler sind sogar in XHTML 1.1 noch konform, wenn man sie komplett klein schreibt. Wenn der Validator also bei onClick meckert, nenn ihn onclick und alle sind glücklich.
Außerdem könnte man sie notfalls durch reines Javascript ersetzen:
document.getElementById('link').onclick = handler_function;
Nagut, hab ich mich wohl getäuscht ;)
Danke jedenfalls =)
Wieso sollte man in PHP array() verwenden? Sollte man es der Lesbarkeit zu liebe tun oder kann ich mir die Linien sparen? (mal ausgenommen man gibt die Variable in einer Funktion zurück und die Array könnte leer bleiben)
Xardas der Dunkle
12.07.2008, 21:53
Ganz simpel, in erster Regel ist die "Funktion" (ist eig. keine richtige Funktion, sondern ein festes Element) dafür da um einer Variable einen Anfangswert zu geben, bzw. ein Array einer Funktion zu übergeben:
tuWas(Array('wert', 'wer2', 'wert3'));
Auch wenn in PHP Variablen nicht direkt deklariert werden müssen, brauchen gerade wenn man einem Array in einer Schleife Werte hinzufügen möchte diese ein Anfangswert der PHP mitteilt das die Variable auch existiert und das es sich um ein Array handelt.
$tmp = Array();
while($row = mysql_fetch_assoc($result)) {
$tmp[] = $row;
}
Ganz simpel, in erster Regel ist die "Funktion" (ist eig. keine richtige Funktion, sondern ein festes Element) dafür da um einer Variable einen Anfangswert zu geben, bzw. ein Array einer Funktion zu übergeben:
tuWas(Array('wert', 'wer2', 'wert3'));
Auch wenn in PHP Variablen nicht direkt deklariert werden müssen, brauchen gerade wenn man einem Array in einer Schleife Werte hinzufügen möchte diese ein Anfangswert der PHP mitteilt das die Variable auch existiert und das es sich um ein Array handelt.
$tmp = Array();
while($row = mysql_fetch_assoc($result)) {
$tmp[] = $row;
}
Ich weiss nicht, aber dein Beispiel hat bei mir auch ohne $tmp = array(); funktioniert. :confused: (bzw. ein konvergentes Beispiel)
Xardas der Dunkle
12.07.2008, 22:26
Tut es nur augenscheinlich.
Schreib mal ein error_reporting(E_ALL); an den vor die Schleife, du wirst eine "Notice"-Fehlermeldung bekommen.
Desweiteren bei dem Beispiel oben werden ja Daten aus der db eingelesen, wenn nun, aber keine gefunden werden, würde das Array $tmp gar nicht erst angelegt werden und wenn du es später dann später z.B. in einer foreach schleife abarbeiten willst, würdest du nicht nur eine E_NOTICE bekommen sondern eine E_WARNING, die besagt das foreach eben ein Array erwartet und nicht eine Variable vom Typ null.
Huhu.
Nun, ich habe eine einfache Frage zu einem Query, es geht um folgenden :
$sql = "INSERT INTO `spieler` SET `y` = '".$_SESSION['y']."' WHERE `id` = '".$_SESSION['spieler_id']."'";
Beim Ausführen sagt der Browser mir folgendes :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id` = '6'' at line 1
Ich frage mich, warum er das sagt.
Vielleicht bin ich gerade blind und sehe den einfachen Fehler nicht, aber meine Augen zeigen mir, dass ich nach dem Einbinden der ID in den Query ein ' stehen habe und die anderen " als Abgrenzungen zum String gebraucht werden.
Wieso kriege ich diesen Fehler?
EDIT : Jaaa. INSERT mit UPDATE vertauscht xD
Xardas der Dunkle
17.09.2008, 14:10
Zudem niemals Variablen (Vorallem Request-Variablen) ungeparsed an n' Query anhängen.
Desweiteren sind die ' bei numerischen Werten unnötig ;).
dead_orc
17.09.2008, 14:29
Zudem niemals Variablen (Vorallem Request-Variablen) ungeparsed an n' Query anhängen.
Desweiteren sind die ' bei numerischen Werten unnötig ;).
Request-Variablen sind (neben $_REQUEST natürlich) $_POST, $_GET, $_COOKIE und $_FILES (sowie deren $HTTP_*_VARS Pendants). $_SESSION besteht nicht aus Daten, die der User übermittelt hat, daher sollte es kein zu großes Problem sein, sie direkt zu benutzen. Natürlich wäre folgendes sauberer:
$sql = sprintf("UPDATE `spieler` SET `y` = '%s' WHERE `id` = %d", mysql_real_escape_string($_SESSION['y']), $_SESSION['spieler_id']);
Hier wird sichergestellt, dass $_SESSION['spieler_id'] eine Zahl ist und $_SESSION['y'] wird vorher mit mysql_real_escape_string() behandelt, um ' zu escapen. Aber wenn man davon ausgeht, dass die Variablen bereits beim Setzen verifiziert wurden, ist das unnötig. Denn wenn jemand die Session-Variablen, die aufm Server gespeichert werden, verändern kann, hat man noch ganz andere Probleme.
Xardas der Dunkle
17.09.2008, 15:08
Da man die MySQL-Api mit neueren MySQL-Versionen eh nicht mehr benutzen sollte, sondern die MySQLi API oder PDO, kann man ggf. auch auf Statemants zurück greifen und somit auf escaping verzichten:
http://de3.php.net/manual/de/mysqli.prepare.php
http://de3.php.net/manual/de/pdo.prepare.php
Request-Variablen sind (neben $_REQUEST natürlich) $_POST, $_GET, $_COOKIE und $_FILES (sowie deren $HTTP_*_VARS Pendants). $_SESSION besteht nicht aus Daten, die der User übermittelt hat, daher sollte es kein zu großes Problem sein, sie direkt zu benutzen.
Da sollte man sich nicht vertun. Ich hatte schon mal Probleme, weil ich die Request URI in der Datenbank speichern wollte, und die halt ein ' enthielt. Lieber absichern, als nachher Lücken offen haben ;)
Wie definiere ich in meiner .css Link-Farben (Hover, Active, Visited...) für einzelne DIVs? Die in #navi sollen andere Farben als die in #main haben.
Hab mal ein bisschen rumprobiert, bin aber nicht wirklich zu einem Ergebnis gekommen.
Xardas der Dunkle
26.09.2008, 21:56
#navi a:link {
color:....;
}
#navi a:visited {
....
}
[...]
#main a:link {
....
}
[...]
Einfacher geht es eig. nicht^^. Nur meine ich das du bei den pseudo-classen eine feste Reihenfolge einhalten musst, wenn nicht habe ich Blödsinn gelernt xD.
/edit: *zurück edetier* :D
Wie definiere ich in meiner .css Link-Farben (Hover, Active, Visited...) für einzelne DIVs? Die in #navi sollen andere Farben als die in #main haben.
Hab mal ein bisschen rumprobiert, bin aber nicht wirklich zu einem Ergebnis gekommen.
a:hover meint Xardas 1mal noch. ;)
Edit: sorry, steht ja #main. http://www.multimediaxis.de/images/smilies/old/3/coffee.gif
a:hover meint Xardas 1mal noch. ;)
Ich editier das mal schnell rein...
Xardas der Dunkle
26.09.2008, 23:54
*verwirrt bin*
Die in #navi sollen andere Farben als die in #main haben.
Fragt er, wieso ändert ihr dann das #main a:link auf #main a:hover o_Ô?
Das war doch nur ein Beispiel. :confused:
Wenn ihr es so genau haben wollt:
#navi a:link {
...
}
#navi a:active {
...
}
#navi a:visited {
...
}
#navi a:hover {
...
}
#main a:link {
...
}
#main a:active {
...
}
#main a:visited {
...
}
#main a:hover {
...
}
Sorry, ich schätze, wir haben uns beide verlesen :D
Hab da noch mal 'ne Frage, die nicht unbedingt einen eigenen Thread benötigt, imo.
Hat vllt. irgendwer 'nen Plan, warum der IE (7. 6, denke ich, dann wohl auch) diese Seite (http://gonto.go.funpic.de/losthyrule/) falscht anzeigt?
Also der BG wird etwas nach unten verschoben, 1, 2 Pixel.
Whiz-zarD
30.09.2008, 23:23
erstmal:
Du arbeitest mit tranparenten png Dateien.
Der IE unterstützt sowas nicht.
Und wenn nur das Deisgn um 1,2 Pixel nach unten verschoben ist, solltest du dich freuen und dies so lassen.
Es ist allgemein bekannt, dass der IE bei CSS Mist baut.
Ansonsten versuch mal im Body
padding:0px;
margin:0px;
einzutragen. AFAIR benutze der IE einen Standardrahmen um die Webseite.
erstmal:
Du arbeitest mit tranparenten png Dateien.
Der IE unterstützt sowas nicht.
Und wenn nur das Deisgn um 1,2 Pixel nach unten verschoben ist, solltest du dich freuen und dies so lassen.
Es ist allgemein bekannt, dass der IE bei CSS Mist baut.
Ansonsten versuch mal im Body
padding:0px;
margin:0px;
einzutragen. AFAIR benutze der IE einen Standardrahmen um die Webseite.
IE 7 unterstützt zum Glück transparente png-Bilder.
* {
margin: 0;
padding: 0;
}
Ist meinerseits eigentlich immer empfohlen. Manche Browser setzen zudem automatisch Rahmen um <img>'s.(Das ist aber OT)
Und eigentlich ist der Allgemeine Fragethread dafür gedacht nicht extra ein Thema eröffnen zu müssen. ;)
Edit:
probiers doch bei body mit
background: url(../images/bg.jpg) top left repeat;
Edit2:
War das falsche Hintergrundbild, müsste wohl eher bei .header_left sein:
background: url(../images/bg.jpg) top;
Aber ich hab nicht das Gefühl, dass das wirklich das Problem ist.
Gibt es etwas zu beachten, damit sich dynamisch generierte div's im IE voll ausbreiten? :confused: Das obere Fenster ist statisch und wird ja eigentlich auch richtig angezeigt. Ich hab mal Rahmen rein gemacht zur Veranschauung:
http://drakes.dr.ohost.de/pz/ (man muss die Werbung wegklicken und dann neuladen -.-)
Zudem wär es toll wenn mir jemand sagen könnte was der Opera zu meckern hat, ich verstehs nicht.
Xardas der Dunkle
01.10.2008, 20:54
Also bei mir der Safari, der einzige der die Funktionen der Seite halbwegs richtig umsetzt^^.
Im FF werden diese Fenster zwar angezeigt, aber wenn man diese Ecken zieht um die Größen zu ändern dann verschiebt man nur die Ecken im Fenster.
Im Safari funzt das vergrößern und verkleinern zwar, aber danach befinden sich die ecken in der Mitte der Fenster.
Opera, zeigen diese Fenster gar nicht an.
Beim IE 7 gehen ganz plötzlich sogar die Resizebutton, wobei er eben noch net einmal die Fenster angezeigt hat :eek: (Verstehe wer diesen Browser).
Der 6er zieht die Fenster auf volle Fensterbreite o_Ô.
Das mit dem Resizen war klar ^^ war nur ne schlechte Konvention, habe Draggable von scriptaculous verwendet, was ja nicht direkt für das gedacht ist. Aber eben, ich versteh nicht wieso, dass z.B. im IE7 das div 'headMiddle' sich nicht ganz ausbreitet und somit das Hintergrundbild sich nicht genug weit 'repeated' (und das auch bei baseMiddle), oder wieso nichts im Opera erscheint, er meckert da irgend was wegen falschen Typen beim erzeugen eines Window Objekts....
(btw. gehen transparente Pngs im IE schon früher mit AlphaImageLoader)
Edit: das Problem, dass keine Fenster beim Opera auftauchen, ist von selber verschwunden, nachdem ich ein paar Sachen verändert habe und ich mehr Funktionen hinzugefügt habe. (wobei beim Bewegen das Fenster ganz nach oben geht) Aber der IE will es einfach nicht richtig machen. :( Oder sieht es nur bei mir falsch aus?
Edit2: Es sieht jetzt auch richtig im IE aus, und der Grund war, dass ich beim Titel eine Höhenangaben gemacht habe, wieso hatte er damit eine Problem? Wieso hat er nur deswegen die Breite nicht auf die verfügbare Breite angepasst? :confused::confused::confused::confused::confused:
Ich meine damit eher, dass der Navi-Bereich sich um ca. 1-2 Pixel vom Content-Bereich entfernt. Seht euch das Ganze einfach mal mit dem IE an.
Mit dem Code würde es funzen, wäre laut Validator aber invalide:
<img src="images/content_top.png" alt="" width="711" height="10" border="0" align="absbottom" />
(Hab' den Code derzeit nur bei meiner anderen Seite geändert. Daher nicht über die Breite von 711 Pixeln wundern.)
Trotzdem danke. Werd' mir dafür jetzt keinen invaliden Code einheimsen, sollen die Nutzer doch Firefox/Opera nutzen. oo
Mir fiele nämlich nun keine andere Möglichkeit mehr ein.
Und was genau daran müsstest du einfügen?
Weil du kannst ja auch im CSS
img { border: 0; } einfügen.
align="absbottom"
Das ist laut Validator aber unvalide und dein Vorschlag funktioniert nicht.
Ach so, du redest vom IE-Bilder Bug. Das Problem sollte mit display: block; behoben sein, wobei du sie dann floaten müsstest.
Firefox < v3 macht das da:
http://browsershots.org/png/original/54/548b12318e8f55691850063a33f140cd.png
Edit: die Adresse der Seite ist: http://www.juz-bul.de/index.php?var=opp
In allen anderen Browsern sieht die Navigation gut aus. Warum? oO
Ich komm da echt nicht weiter. Hab alles versucht. Liegt das am float?
Das sollen ja einige Browser rumzicken...
HTML
<ul id="sidebar">
<li><a href="index.php?content=content/news">Neuigkeiten</a></li>
<li><a href="index.php?content=content/events">Programm</a></li>
<li><a href="http://picasaweb.google.com/juzbul">Bildergalerie</a></li>
<li><a href="index.php?content=content/newsletter">Newsletter</a></li>
<li><a href="index.php?content=content/about">Über das Juz</a></li>
<li><a href="index.php?content=content/contact">Kontakt</a></li>
<li><a href="index.php?content=content/guestbook">Gästebuch</a></li>
<li><a href="forum">Forum</a></li>
</ul>
CSS
ul#sidebar {
margin: 0px;
padding:0px;
list-style-type: none;
margin-top:2px;
}
ul#sidebar li a:hover {
background-color: f72622;
}
ul#sidebar li a {
background-image:url('img/star.gif');
background-repeat:no-repeat;
background-position:center left;
font-family:Verdana;
font-weight:regular;
font-size:9pt;
padding:3px;
padding-left:16px;
float:left;
clear:both;
width: 94px;
color: #000000;
background-color: #ffffff;
text-decoration: none;
border-bottom:solid 1px #000000;
filter:alpha(opacity=80);
-moz-opacity:.80;
opacity:.80;
}
Mich wundert schon ein bischen, wieso du geradie die Links floatest. O.o
Die sind ja sowieso inline-Elemente, und wenn du willst das sie am Text vorbei gehen, könntest du nicht einfach die sidebar floaten?
Standardkonformes Design ist immer problematisch, wenn man nicht in einem der standardkonformen Modi arbeitet (fehlender Doctype!).
Ältere Browser, nicht nur der Firefox haben schon so ihre Probleme mit float und Positionierung, aber als trost kann man sagen, dass Firefox 2 noch dieses jahr sein Lebensende erreicht und die meisten benutzer schnell aktualisieren.
Xardas der Dunkle
23.11.2008, 15:26
Ältere Browser, nicht nur der Firefox haben schon so ihre Probleme mit float und Positionierung, aber als trost kann man sagen, dass Firefox 2 noch dieses jahr sein Lebensende erreicht und die meisten benutzer schnell aktualisieren.
Bezweifle ich, es gibt immer noch Leute die Firefox 1.5 benutzen, zudem geht nicht nur mir der Firefox 3 mit seinen ständigen abstürzen auf den Sack, ich bin manchmal kurz davor wieder auf den 2er umzusteigen ...
Und leider gibt es noch mehr die noch den IE 6 benutzen :(
Underserial
17.12.2008, 09:32
Hallo,
kann mir jemand sagen wie ich es hinbekomme das wenn ich eine Homepage besitze mit www.123.de zum Beispiel
und man eingibt www.123.de/TEST
das man zu der Test Seite weitergeleitet wird.
Denn ich kann in bei meinem Webspace hoster nur einen Link auf Ordner machen nicht aber auf Seiten.
Danke.
Milchbox
17.12.2008, 13:23
Das ist mit dem mod_rewrite-Modul des Apache Servers möglich. Auf dieser Seite (http://www.modrewrite.de/) und in der Apache Doc (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteBase) findet man Informationen dazu.
Es gibt außerdem einen recht praktischen mod_rewrite Generator der einem (meistens) die Umformung mit regulären Ausdrücke erspart.
Underserial
17.12.2008, 16:42
Das ist mit dem mod_rewrite-Modul des Apache Servers möglich. Auf dieser Seite (http://www.modrewrite.de/) und in der Apache Doc (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteBase) findet man Informationen dazu.
Es gibt außerdem einen recht praktischen mod_rewrite Generator der einem (meistens) die Umformung mit regulären Ausdrücke erspart.
Habs nun mit nem befehl gemacht =)
danke! ;)
treeghost
17.12.2008, 16:47
http://www.npshare.de/thumbnails/e57ba941/360x240/seven%20Kopie.th.png (http://www.npshare.de/files/e57ba941/seven%20Kopie.png)
Ich weiß wirklich nicht wie ich die Seite umsetzen soll... -__-
Kann mir jemand sagen ob ich die Seite in PHP oder XHTML schreiben soll?
Vorallem ist es Frag würdig ob man sowas überhaupt hinbekommt. xD
Xardas der Dunkle
17.12.2008, 17:26
Kann mir jemand sagen ob ich die Seite in PHP oder XHTML schreiben soll?
!? Beides xD? PHP und XHTML sind zwei total verschiedene Schuhe o_Ô
Vorallem ist es Frag würdig ob man sowas überhaupt hinbekommt. xD
Ja tut man. Auch wenn ich die ecken und Kanten beim Banner etwas merkwürdig finde^^.
http://www.npshare.de/thumbnails/e57ba941/360x240/seven%20Kopie.th.png (http://www.npshare.de/files/e57ba941/seven%20Kopie.png)
Ich weiß wirklich nicht wie ich die Seite umsetzen soll... -__-
Kann mir jemand sagen ob ich die Seite in PHP oder XHTML schreiben soll?
Vorallem ist es Frag würdig ob man sowas überhaupt hinbekommt. xD
PHP? oO Damit etzt man kein Layout um, sondern schreibt die ganze Technik, die hinter der Seite arbeitet. Die Funktionen von foren usw werden in PHP geschrieben.
Umsetzbar sollte das Ding was du da zeigst aber auf jeden Fall sein, ich sag nur CSS + XHTML.
Ansonsten finde ich das aber relativ langweilig und das Banner ist schlampig eingesetzt.
treeghost
19.12.2008, 18:43
Ich weiß, aber mir wahr die funktion flow in CSS noch nicht bekannt darum fragte ich einfach. Ausserdem fragte ich nach der Form und nicht nach dem Layout da die ganze Webseite noch nicht fertig ist. (Vorallem das Layout nicht.)
deadshox
27.12.2008, 14:52
Moin Leute, hab da mal ein Problem zu einem Mehrdimensionalen Array!
Mein MDarray sieht grob gesagt so aus:
1 => 1
2 => array
a => a
b => b
c => array
1a => 1a
1b => 1b
3 => 3
4 => array
d => d
e => array
2a => 2a
2b => 2b
Ich will aber das er so aussieht:
1 => 1
a => a
b => b
1a => 1a
1b => 1b
3 => 3
d => d
2a => 2a
2b => 2b
Wie bekomm ich das hin? Weiß schon garn nicht mehr weiter. ;(
Wär cool wenn mir jemand dabei Helfen könnte. ;)
gruß deadshox
Was für ne Sprache? PHP?
Edit:
function foo($array){
$na = array();
foreach($array as $key => $value){
if(is_array($value))
$na = array_merge(foo($value), $na);
else
$na[$key] = $value;
}
return $na;
}
drunken monkey
27.12.2008, 15:54
Ja, ich nehme mal an, er meint PHP. Zumindest hier mal eine Lösung, wie's darin klappen sollte (ungetestet):
<?php
$neu = array();
// $alt ist das alte Array, das auch Arrays enthält.
linearize($alt, $neu);
// $neu sollte jetzt ein eindimensionales Array mit allen skalaren Werten von $alt sein.
function linearize($alt, &$neu) {
foreach ($alt as $name => $val) {
if (is_array($val)) {
linearize($val, $neu);
}
else {
$neu[$name] = $val;
}
}
}
Ahja, und ich würde das Array nicht wirklich "mehrdimensional" nennen, da es ja auch auf höchster Ebene teils skalare Werte enthält und daher nicht wirklich eine definitive Dimension hat. http://www.multimediaxis.de/images/smilies/old/1/gruebel.gif
Edit: Argh, doofer Drakes, erst schlägt er mich im Spielecontest und dann sowas. XD
Edit: Argh, doofer Drakes, erst schlägt er mich im Spielecontest und dann sowas. XD
http://www.multimediaxis.de/images/smilies/old/1/keks.gif Hab wahrscheinlich früher begonnen. :)
deadshox
28.12.2008, 14:19
Coole Sache, Funktioniert! ;) Danke euch beiden!
Hallo
hab ne kurze Frage zum Thema Internetrecht:
Dass ich kein Bild einer andern Seite für meine Webseite benutzen darf ist mir logischerweise klar, aber es heißt, dass die bei sogenannter "Entfremdung" möglich ist. Aber wie ist es genau definiert? Wenn ich nen per Photoshop nen Filter draufhau, der die Linien verschmiert, verzerrt etc. gilt das auch als entfremdet, so dass ich es nutzen kann?
Spark Amandil
16.01.2009, 01:18
Hier ist das ganze recht vage und eine rechtlich einwandfreie Antwort wird man kaum geben können. Der O-Ton besagt dass der Urheber Rechte besitzt solange sein Werk noch erkennbar ist. Wenn es etwas ganz furchtbar banales ist dann reichen dafür selbst gröbste Anhaltspunkte wie eben verworrene Linien etc. Selbst grobe Formen und Muster hat sich so mancher schon erfolgreich sichern können.
Streng genommen müsste man deine Filterfrage also mit einem Nein beantworten. Um auf der sicheren Seite zu sein, müsste das Motiv dermaßen verändert werden dass du es genau so gut selbst zeichnen könntest. Die einfachste Variante wäre sofern möglich den Urheber, oder zumindest Webmaster der Seite von der die Grafik ist anzuschreiben, und erklären was du aus welchem Zweck heraus machen willst. Meine persönlichen Erlebnisse sind in der Hinsicht überraschend positiv, solange man sich vorher erkundigt und nicht erst im Nachhinein damit konfrontiert (wird).
Hm ok, danke für die Antwort :)
Wie siehts denn mit Wikipedia-Bildern aus?
Soweit ich weiß, darf ich die benutzen (ob verfremdet oder nicht), sofern ich mit meiner Webseite kein Geld verdiene. Bzw. die Seite nicht kommerzieller Natur entspricht. AdWords müsste erlaubt sein (?)
Flying Sheep
18.01.2009, 10:14
Wenn du in Wikipedia auf ein Bild klickst, dann siehst du auf der folgenden Seite unten einen kleinen Kasten, in dem die Lizenz für das jeweilige Bild drinsteht. Das kommt eben immer drauf an, welches Bild du verwenden möchtest ^^
Moin moin,
ich habe ein <select> Feld mit mehreren Ordnern aus einem Verzeichnis, diese soll man auswählen können. Ich würde das ganze aber gerne so machen, dass ich nicht auf einen submit button klicken muss, sondern dass die Seite gleich lädt, wenn man die Option aus dem Select-feld auswählt.
<b>Verzeichnis:</b><br>
<form action="index.php?section=upload" method="post">
<select type="Submit" name="ordner">
{foreach from=$ordner item=folder}
<option value="{$folder}">{$folder}</option>
{/foreach}
</select>
</form>
drunken monkey
15.02.2009, 10:12
Moin moin,
ich habe ein <select> Feld mit mehreren Ordnern aus einem Verzeichnis, diese soll man auswählen können. Ich würde das ganze aber gerne so machen, dass ich nicht auf einen submit button klicken muss, sondern dass die Seite gleich lädt, wenn man die Option aus dem Select-feld auswählt.
<b>Verzeichnis:</b><br>
<form action="index.php?section=upload" method="post">
<select type="Submit" name="ordner">
{foreach from=$ordner item=folder}
<option value="{$folder}">{$folder}</option>
{/foreach}
</select>
</form>
Ins select-Element folgendes Attribut: onchange="this.form.submit();". Habe ich jetzt einfach mal aus dem Forum hier abgeschrieben. ;P
Einen Submit-Button solltest du aber in jedem Fall noch dazugeben (falls du das noch nicht hast), falls jemand Javascript deaktiviert hat.
<b>Verzeichnis:</b><br>
<form action="index.php?section=upload" method="post">
<select type="Submit" name="ordner">
{foreach from=$ordner item=folder}
<option value="{$folder}">{$folder}</option>
{/foreach}
</select>
</form>
Ich wollte nur noch anmerken, dass das <select> Element kein type-Attribut hat (weil es vom Typ her ja schon eine Auswahlliste ist). Ansonsten geht es wie schon gesagt mit Javascript. Und falls der Submit-Button dich stört, kannst du ihn ja über Javascript ausblenden, dann können User ohne JS die Seite trotzdem benutzen ;)
Kurze Frage: Um welche Sprache handelt es sich hier? Ist das eine obskure Form von Php, oder doch JS?
Xardas der Dunkle
15.02.2009, 23:38
Welche meinst du?
Alles rund rum ist HTML. Das was hier zwischen den " steht ist JavaScript: onchange="this.form.submit();" und das:
{foreach from=$ordner item=folder} ist Smarty (http://smarty.net/) =).
{foreach from=$ordner item=folder} ist Smarty (http://smarty.net/) =).
Ah, genau das meinte ich ! ^^ Hab mir schon lange keine PHP Tutorials/Dokus mehr angesehen, und dachte schon, dass ne neue Version, in neuer Schreibweise draußen wäre :D
Wie kann man in PHP ein Element an einer spezifischen Position einer Array hinzufügen? (Die Reihenfolge der Elemente ist wichtig)
Ich kann ja kaum alle späteren Elemente löschen und dann das neue Element hinzufügen und dann wieder die anderen? Wäre doch zu langsam, oder? (Die Schlüssel sind nicht wichtig)
Xardas der Dunkle
21.02.2009, 13:02
/edit: Kommando zurück!!!
http://de3.php.net/manual/de/function.array-splice.php
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 3, 0, "lila");
// $input is now array("rot", "grün",
// "blau", "lila", "gelb");
Anders ist es, aber kaum möglich:
function array_add_to_position($arr, $idx, $value) {
if(!isset($arr[$idx]) ) {
$arr[$idx] = $value;
return $arr;
} else {
$begin = array_slice($arr, 0, $idx);
$end = array_slice($arr, $idx);
$begin[] = $value;
return array_merge($begin, $end);
}
}
$arr = Array(
'foo', 'bar', 'lul', 'moo', 'test', 'affe2',
);
print_r($arr);
print_r(array_add_to_position($arr, 2, 'Testwert'));
mfG
/edit: Das mit dem -1 dachte ich auch erst^^, ist aber nicht so xD
Na dann halt nicht. :p Danke für das Script, klappt so, bis auf ein Verständnisproblem(man sollte idx eventuell in der Funktion um 1 verringern).
Edit: k mal schauen ob es mit array_splice geht.
deadshox
25.02.2009, 18:20
Hallo Leute,
ich hab mal ne frage zu array_merge().
Kann es sein das er keine verschachtelten Arrays vermischen kann?
Ich habe jetz die 2 Arrays:
$array1 = array
(
'a' => '1',
'd' => array
(
'aa' => '11',
)
);
$array2 = array
(
'a' => '',
'b' => '',
'c' => '',
'd' => array
(
'aa' => '',
'ab' => '',
'ac' => '',
'ad' => ''
)
);
array_merge($array2, $array1);
Nach dem merge sieht der Array so aus:
Array
(
[a] => 1
[b] =>
[c] =>
[d] => Array
(
[aa] => 11
)
)
Sollte aber so aussehen:
Array
(
[a] => 1
[b] =>
[c] =>
[d] => Array
(
[aa] => 11
[ab] =>
[ac] =>
[ad] =>
)
)
Gibt es da irgend einen Trick? Bin grad verwirrt weil ich mir das nicht erklären kann. ;(
Hoffe ihr könnt mir da weiterhelfen. ;)
gruß deadshox
//edit
lo, ja lesen sollte man können. xD Wusste gar nicht mehr das ich ähnliches schon mal gepostet habe.
Danke dir.
//edit2
Ah, die Lustige Sieben, kann jemand ein Fotomachen? ;)
Diese Frage wurde auf dieser Seite ganz oben von mir und drunkenMonkey schon mal beantwortet. ;)
Edit: okay, die Frage war nicht ganz die selbe, sry, das Prinzip ist aber das gleiche, ausserdem hat Xardas jetzt ja noch auf die in PHP integrierte Funktion verwiesen. (Thx @ Xardas, hab die Funktion noch nicht gekannt)
Xardas der Dunkle
26.02.2009, 13:08
Wobei es hier für auch diese Funktion gibt: http://de3.php.net/manual/de/function.array-merge-recursive.php
The Majora
10.03.2009, 00:06
soooo leute :)
Ich habe eine HTML Seite,und im html wird eine css Datei included!
DAS PROBLEM:
Wenn ich mti Mozilla es betrachte,dann sieht es wudnerbar aus,ABER im Internet Explorer ist es einfach nur KATASTROPHAL!
Gibt es ein Script,womit ich dann die jeweilige sagen wir mal cssforie.css lade,wenn ich den IE benutze und cssforMF.css lade,wenn ich MF benutze!
Ist es möglich dann bestimtme css Dateien zu laden,welches vom Internet Browser abhängig ist?
Ein kleiner Script reicht aus...weiß leider nicht wie es gehen kann :(
Danke im Voraus!
drunken monkey
10.03.2009, 00:19
Zum Glück ist sich Microsoft bewusst genug, dass der IE kompletter Dreck ist, um eine einfache Methode dafür anzubieten, komplett ohne Javascript, was andere Browser null beeinträchtigt.
Das Ganze nennt sich "Conditional Comments", google einfach für nähere Informationen.
Hier (http://de.selfhtml.org/css/layouts/browserweichen.htm) noch ein Link, für mehr habe ich atm leider keine Zeit. ^^''
Moin,
ich hab Probleme mit folgendem Befehl:
echo $_SERVER['HTTP_REFERER'];
Und das Problem sieht so aus, dass nicht immer die richtige url ausgegeben wird. Wenn ich innerhalb der Seite auf einen Link klicke passiert es, dass die Url sich nicht verändert, erst wenn ich nochmal auf den Link klicke.
Die Url verändert sich immer nur hinter index.php, z.B.: /index.php?section=news
Moin,
ich hab Probleme mit folgendem Befehl:
echo $_SERVER['HTTP_REFERER'];
Und das Problem sieht so aus, dass nicht immer die richtige url ausgegeben wird. Wenn ich innerhalb der Seite auf einen Link klicke passiert es, dass die Url sich nicht verändert, erst wenn ich nochmal auf den Link klicke.
Die Url verändert sich immer nur hinter index.php, z.B.: /index.php?section=news
Du willst wissen wo der User vorher war, oder?
Der Wert kommt vom Browser und nicht von allen wird dieser Wert gesendet. Kann es sein, dass du die aktuelle Adresse erwartest statt der letzten? ^^"
Ja genau, ich brauche die aktuelle Adresse, um diese im Template als link+erweiterung zu benutzen.
Schau mal hier: http://ch.php.net/manual/en/reserved.variables.server.php Aber das mit Scriptpath und so stimmt nicht immer mit dem überein, was du erwartest, eventuell einfach mal testweise alle ausgeben lassen in einem kleinen Skript.
Danke, dass hat mir weitergeholfen. :)
echo $_SERVER['HTTP_HOST']; //gibt die Adresse aus
echo $_SERVER['REQUEST_URI']; // gibt den kram dahinter z.B "section=news" aus
Habe nun aber ein neues Problem:
Und zwar geht es um mein counterscript, bei dem gleichzeitig das Feld `headpic` fuer die Headgrafik ausgefüllt wird mit rand(1,20);.
Ich habe festgestellt, dass bei verschiedenen Leuten unterschiedliche Ergebnisse rauskommen, bei mir wird immer nur "0" eingetragen wird, bei jemand anderem wird das script scheinbar Problemlos ausgeführt.
Hier die function:
function counter($date, $g_prefix) {
$ipcheck = $_SERVER['REMOTE_ADDR'];
$checkip = mysql_query("SELECT `last_ip` FROM `".$g_prefix."_mitglieder` WHERE `last_ip` = '".$ipcheck."'");
$checkip2 = mysql_query("SELECT `ip` FROM `".$g_prefix."_visitors` WHERE `ip` = '".$ipcheck."'");
if(mysql_num_rows($checkip)) {
mysql_query("UPDATE `".$g_prefix."_mitglieder` SET `last_action` = '".$date."' WHERE `last_ip` = '".$_SERVER['REMOTE_ADDR']."'");
}
if(mysql_num_rows($checkip2)) {
mysql_query("UPDATE `".$g_prefix."_visitors` SET `last_action` = '".$date."' WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'");
}
else {
$headerpic = rand(1,20);
mysql_query("INSERT INTO `".$g_prefix."_visitors` (`ip`, `hostmask`, `browser`, `headpic`, `first_visit`, `last_action`) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".gethostbyaddr($_SERVER['REMOTE_ADDR'])."', '', '".$headerpic."', '".time()."', '".time()."')");
}
}
Kann es sein, dass es bei dir nicht funktioniert, weil deine IP irgendwie im Zusammenhang mit der Tabelle '_mitgieder' steht und bei denen wo es funktioniert mit '_visitors'?
Das Script läuft ja nur in den Block mit der rand Anweisung, wenn '$checkip2' keinen Eintrag findet oder komplett fehl schlägt.
...oder ich hab das Prob nicht verstanden ^^
Hi Freezy, lang nichts voneinander gehört! :)
Also daran kann es eigentlich nicht liegen, da in der momentanen Testphase alle nur eingeloggt auf die Seite kommen, es ist also immer schon ein Eintrag in `_mitglieder` vorhanden.
Und es funktioniert ja auch eigentlich, halt nur bei mir komischerweise bei einigen nicht, hier mal ein Auszug aus `_visitors`:
Die Einträge mit "alicedsl" stammen mit sehr hoher Wahrscheinlichkeit alle von mir.
http://www.third-diablo.de/sonstiges/visitors.PNG
Huff, die 0 ist warscheinlich der Standartwert für diesen Wert. Post mal was dir 'SHOW CREATE TABLE _visitors' sagt. Am einfachsten wäre nun, das Script live zu debuggen und alle Querys ausgeben zu lassen die gefeuert werden. Entweder du schreibst die in einem display:none Element oder (hint hint) benutzt awesome FireBug (http://getfirebug.com/) zusammen mit FirePhp (http://www.firephp.org/).
Also im Grunde nach jeder Query die in deinem Script gefeuert wird eine Ausgabe mit dieser machen. Dann kannst genau nachvollziehen, was hier passiert.
Soo, ich habe ein kleines Problem mit der ORDER BY Funktion..
Seit wann ist 943916400 denn größer als 1238882400 ?
Der erste Timestamp datiert sich auf November 1999 und der zweite auf April 2009. Das Problem ist jetzt, wenn ich die Einträge nach dem Timestamp sortieren will, taucht das erste Datum immer an der entgegengesetzten Stelle auf.
Bei "DESC" befindet sich November 1999 also vor April 2009 und umgekehrt.
Theoretisch könnte ich die Einträge auch nach id ordnen, aber das Problem ist, dass bei jedem Eintrag der Timestamp quasi beliebig gewählt werden kann und ich alles gerne nach der Zeit ordnen möchte.
Hat jemand eine Idee, woran das liegen könnte?
Xardas der Dunkle
09.04.2009, 15:51
Als was zu ein Datentyp, hast du den Timestamp in der DB stehen?
Für mich sieht das stark nach dem Text-Feld aus. Den 9 > 1 ;).
Als was zu ein Datentyp, hast du den Timestamp in der DB stehen?
Für mich sieht das stark nach dem Text-Feld aus. Den 9 > 1 ;).
Verdammt ! :D
Ok, danke für deine Hilfe =)
Taro Misaki
23.04.2009, 16:14
So,
das ist höchstwahrscheinlich der erste einer Reihe ganz vieler Noobfragenposts.^^
Ich muss jetzt aus Berufsgründen Webdesign lernen, dafür habe ich auch schon eine Domain zur Verfügung gestellt bekommen und einen HTML-Editor habe ich auch schon, nämlich KompoZer.
Ich habe mir gerade den Anfang des Tutorial-Threads durchgelesen und gemerkt, dass der (zumindest für mich) schon zu weit in der Materie anfängt.:\
Irgendwie hapert es bei mir schon daran, eine veränderte HTML-Datei für die Website zu publizieren.
Also das ist der Vorgegebene Quelltext der Website:
<html>
<header>
<title>websites.ina-koeln.org</title>
</header>
<body>
<p align=center>websites.ina-koeln.org</p>
<p align=center>Hier entsteht eine neue Webpräsenz!</p>
</body>
</html>
Wenn ich jetzt aber die Site speichere und mit KompoZer öffne, sieht der Quelltext so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1"><title>websites.ina-koeln.org</title>
</head>
<body><header></header>
<p align="center">websites.ina-koeln.org</p>
<p align="center">Hier entsteht eine neue Webpräsenz!</p>
</body></html>
Wenn ich jetzt den Rot markierten Satz gegen "TEST TEST TEST" austausche, speichere und die veränderte Datei publizieren will, kommt immer ein unbekannter Publizierungsfehler.
Die Felder habe ich wie folgt ausgefüllt:
http://i41.tinypic.com/250p1jm.png
und
http://i43.tinypic.com/2r6h1j5.png
Wenn ich es so versuche, bekomme ich immer diese Fehlermeldung:
http://i40.tinypic.com/16beryq.png
Was mache ich falsch?:(
Versuch mal bei der zweiten Seite statt http bei den Logininformationen ftp anzugeben, wie in dem Beispiel. Über HTTP wirst du deine Seite wohl nicht hochladen können.
Taro Misaki
23.04.2009, 17:11
Versuch mal bei der zweiten Seite statt http bei den Logininformationen ftp anzugeben, wie in dem Beispiel. Über HTTP wirst du deine Seite wohl nicht hochladen können.
Wow, es hat sofort geklappt, THX.:)
Aber komischerweise hat sich der Text auf der Website nicht gändert, da steht immernoch "Hier entsteht eine neue Webpräsenz!" anstatt "TEST TEST TEST".:confused:
Es hat den Titel nicht übernommen, weil du header statt head geschrieben hast. Mit dem Problem, dass sich nichts ändert, schauen, dass du die richtige Datei aufrufst, sonst mal ein ftp Programm wie Filezilla oder FireFTP(Plugin für Firefox) verwenden.
Taro Misaki
23.04.2009, 18:40
Es hat den Titel nicht übernommen, weil du header statt head geschrieben hast. Mit dem Problem, dass sich nichts ändert, schauen, dass du die richtige Datei aufrufst, sonst mal ein ftp Programm wie Filezilla oder FireFTP(Plugin für Firefox) verwenden.
Das "header" war ja schon im Quelltext der vorgegebenen Seite.
Jetzt habe ich es mal in head umgeändert, aber es ändert sich nichts.
Und die richtige Datei ist es auf jeden Fall, ich habe jetzt extra alle Dateien, außer dieser einen mit TEST TEST TEST gelöscht und er bestätigt ja jetzt auch, dass das Publizieren erfolgreich war.
Es kommt mir nur seltsam vor, dass die Datei auf deinem rechner websites.ina-koeln.org.htm heissen soll und dass Kompozer es dann als index.html hochlädt. (oder meinst du nicht diese Datei? index.html sieht zumindest so aus:
<html>
<header>
<title>websites.ina-koeln.org</title>
</header>
<body>
<p align=center>websites.ina-koeln.org</p>
<p align=center>Hier entsteht eine neue Webpräsenz!</p>
</body>
</html>
sollte aber so aussehen (oder anderen doctype(erste Zeile)):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>websites.ina-koeln.org</title>
</head>
<body>
<p align=center>websites.ina-koeln.org</p>
<p align=center>Hier entsteht eine neue Webpräsenz!</p>
</body>
</html>
)
Edit: BTW. bei dem Screenshot, wo das Publizieren nicht geklappt hat, hast du wbsites geschrieben statt websites.
Taro Misaki
23.04.2009, 20:03
Index.HTML?
So eine Datei hab ich nicht bei mir drauf, das mit dem fehlenden e war die ganze Zeit so, hatte ich gerade gar nicht gemerkt.^^
Habe ich jetzt aber verbessert und es hat auch nichts gebracht, vielleicht verstehe ich dich auch nicht ganz so richtig, wie gesagt, bin in dem Gebiet noch ein absoluter Vollnoob.:\
Ich meine, dass die von dir beschrieben Seite bei mir über http://websites.ina-koeln.org/ erscheint, was ein redirect zu http://websites.ina-koeln.org/index.html ist.
Taro Misaki
23.04.2009, 21:29
Ich meine, dass die von dir beschrieben Seite bei mir über http://websites.ina-koeln.org/ erscheint, was ein redirect zu http://websites.ina-koeln.org/index.html ist.
Du wirst dir jetzt wahrscheinlich vor Fassungslosigkeit die Haare raufen, aber ich verstehe immernoch nicht, was du meinst.:\
Was bedeutet index.html?
wenn ich die eine Datei, die ich habe, mit KompoZer öffne und auf Quelltext gehe, kommt jedenfalls das hier:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1"><title>websites.ina-koeln.org</title></head>
<body><header></header><p align="center">websites.ina-koeln.org</p>
<p align="center">TEST TEST TEST</p>
</body></html>
Genau das publiziert er auch erfolgreich, aber wieso steht dann da immernoch "Hier entsteht eine neue Webpräsenz!" und nicht "TEST TEST TEST"?
Wahrscheinlich weisst du einiges davon schon:
Auf dem Webserver ist auch ein Betriebssystem, das ein Dateisystem wie dein PC hat, http://websites.ina-koeln.org/ ist vereinfacht gesagt ein Verweis auf einen Ordner auf dem Webserver, wenn du ins Verzeichnis für alle Webdateien z.B. blabla.txt hochlädst, dann ist diese über http://websites.ina-koeln.org/blabla.txt erreichbar, am besten du packst dir ein FTP Programm, dann siehst du das Dateisystem des Servers und kannst dort auch selber Unterordner erstellen, das ganze ist transparenter, als das was Kompozer macht. (Jedoch musst du dann auch selber die Dateien neu hochladen)
Taro Misaki
23.04.2009, 22:25
Wahrscheinlich weisst du einiges davon schon:
Auf dem Webserver ist auch ein Betriebssystem, das ein Dateisystem wie dein PC hat, http://websites.ina-koeln.org/ ist vereinfacht gesagt ein Verweis auf einen Ordner auf dem Webserver, wenn du ins Verzeichnis für alle Webdateien z.B. blabla.txt hochlädst, dann ist diese über http://websites.ina-koeln.org/blabla.txt erreichbar, am besten du packst dir ein FTP Programm, dann siehst du das Dateisystem des Servers und kannst dort auch selber Unterordner erstellen, das ganze ist transparenter, als das was Kompozer macht. (Jedoch musst du dann auch selber die Dateien neu hochladen)
OK, das klingt sehr verständlich, THX.:)
Ich melde mich morgen nach der Arbeit wieder, wenn ich es ausprobiert habe.
Ach ja, auf der Seite von KompoZer steht, dass der einen FTP site manager hat, eigentlich sollte das Ganze ja schon im KompoZer funktionieren, nur das mit den Dateinamen verwirrt mich.
Taro Misaki
13.05.2009, 16:46
So, ich hatte leider erst heute wieder Zeit, mich darum zu kümmern, aber ich habe gerade einen großen Fortschritt gemacht.*g*
Ich habe mir FileZilla runtergeladen, mich damit auf meiner Testpage eingeloggt und gesehen, dass dort mehrere Dateien sind, dann habe ich erstmal verdutzt geschaut, dass dort keine Datei mit dem Namen, dem ich meiner veränderten Datei gegeben habe, zu finden ist und einfach mal die index.html verändert und ersetzt, auf die Seite gegangen, aktualisiert und siehe da, meine Änderung wurde endlich übernommen.:)
Also gehe ich recht in der Annahme, dass man alle diese Veränderungen im Quellcode in der index.html machen muss?
EDIT:
So, jetzt habe ich mal ein bisschen rumprobiert und auch schon ein Bild eingefügt, aber ich habe für´s Erste noch zwei Fragen:
Wie mache ich Untermenüs und werden die auch in der Index-Datei verändert, oder wie funktioniert das genau?
Wie mache ich Hintergründe?
EDIT2:
OK, das mit dem Hintergrund habe ich jetzt rausgefunden und schon in meine Testseite eingebaut.^^
Bluescreen
13.10.2009, 15:43
Ich würd gerne einen Footer platzieren, der immer am unteren Ende einer Seite erscheint.
Er ist also nicht statisch immer im Fenster zu sehen. Bei Seiten die so viel Text haben, dass man scrollen muss, soll die Box dann dem Text folgen.
Bei Seiten mit wenig Text soll sie aber nicht irgendwo in der Mitte des Bildschirms rumgurken, sondern am unteren Rand des Browserfensters kleben. Klar geworden? Ich suche das CSS für eine Box, die am unteren Bildschirmrand klebt.
Also, soweit ich weiß, gibt es keine Definition.
Ich kenn nur den Trick:
HTML
<div id="layout"></div>
<div id="footer"></div>
CSS
#layout, body, html {
height:100%;
margin:0;
}
#footer {
background-color:#666666;
height:30px;
margin-top:-30px;
}
Das sorgt aber dafür, dass Teil Immer GANZ unten rumhängt.
Ich weiß jetzt aber nicht, ob du wolltest, dass es immer AM BILDSCHIRMRAND klebt.
Das sähe nämlich so aus:
#footer {
height:40px;
width: 100%;
position: fixed;
bottom: 0px;
right: 0px;
text-align: center;
background-color: #000066;
margin-top: 20px;
}
Bluescreen
13.10.2009, 18:22
Also, soweit ich weiß, gibt es keine Definition.
Ich kenn nur den Trick:
HTML
<div id="layout"></div>
<div id="footer"></div>
CSS
#layout, body, html {
height:100%;
margin:0;
}
#footer {
background-color:#666666;
height:30px;
margin-top:-30px;
}
Das sorgt aber dafür, dass Teil Immer GANZ unten rumhängt.Aber das bedeutet doch, dass ich immer einen Scrollbalken hab, oder?
Ich weiß jetzt aber nicht, ob du wolltest, dass es immer AM BILDSCHIRMRAND klebt.
Das sähe nämlich so aus:
#footer {
height:40px;
width: 100%;
position: fixed;
bottom: 0px;
right: 0px;
text-align: center;
background-color: #000066;
margin-top: 20px;
}Das ist, was ich nicht brauche.
Aber das bedeutet doch, dass ich immer einen Scrollbalken hab, oder?Nein (sofern du height auf 100% lässt). Wieso probierst dus nicht einfach aus? oO
Was ich vergessen hab zu sagen: der div "layout" ist ein unsichtbarer, welcher sozusagen den Inhalt deiner Homepage einschließt.
Eigentlich geht es schon in die Richtung von Eli, was du willst, aber eher position: absolute als position: fixed. ;)
body, html {
height:100%;
margin:0;
}
#layout {
margin-bottom: 50px;
}
#footer {
height: 50px;
position: absolute;
bottom: 0;
}
Dafür ist die Höhe dann aber fixiert.
Eine andere möglichkeit wäre, einfach eine Mindesthöhe für #layout anzugeben, damit wäre footer zwar nicht ganz am Ende des Browsers wenn #layout wenig Inhalt hat, hat aber wenigstens einen gewissen Abstand.
Hä, was soll dein Post?xD
Das was ich gepostet hab, macht doch das richtige. @_@
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.