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)
Druckbare Version
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)
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:
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.PHP-Code:
tuWas(Array('wert', 'wer2', 'wert3'));
PHP-Code:
$tmp = Array();
while($row = mysql_fetch_assoc($result)) {
$tmp[] = $row;
}
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 :
Beim Ausführen sagt der Browser mir folgendes :PHP-Code:
$sql = "INSERT INTO `spieler` SET `y` = '".$_SESSION['y']."' WHERE `id` = '".$_SESSION['spieler_id']."'";
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
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:
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.PHP-Code:
$sql = sprintf("UPDATE `spieler` SET `y` = '%s' WHERE `id` = %d", mysql_real_escape_string($_SESSION['y']), $_SESSION['spieler_id']);
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
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.
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.Code:#navi a:link {
color:....;
}
#navi a:visited {
....
}
[...]
#main a:link {
....
}
[...]
/edit: *zurück edetier* :D
a:hover meint Xardas 1mal noch. ;)
Edit: sorry, steht ja #main. http://www.multimediaxis.de/images/s...d/3/coffee.gif
*verwirrt bin*
Fragt er, wieso ändert ihr dann das #main a:link auf #main a:hover o_Ô?Zitat:
Die in #navi sollen andere Farben als die in #main haben.
Das war doch nur ein Beispiel. :confused:
Wenn ihr es so genau haben wollt:
Code:#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
Vielen Dank :)
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 falscht anzeigt?
Also der BG wird etwas nach unten verschoben, 1, 2 Pixel.
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.
Ist meinerseits eigentlich immer empfohlen. Manche Browser setzen zudem automatisch Rahmen um <img>'s.(Das ist aber OT)Code:* {
margin: 0;
padding: 0;
}
Und eigentlich ist der Allgemeine Fragethread dafür gedacht nicht extra ein Thema eröffnen zu müssen. ;)
Edit:
probiers doch bei body mit
Edit2:Code:background: url(../images/bg.jpg) top left repeat;
War das falsche Hintergrundbild, müsste wohl eher bei .header_left sein:
Aber ich hab nicht das Gefühl, dass das wirklich das Problem ist.Code:background: url(../images/bg.jpg) top;
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.
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:
(Hab' den Code derzeit nur bei meiner anderen Seite geändert. Daher nicht über die Breite von 711 Pixeln wundern.)HTML-Code:<img src="images/content_top.png" alt="" width="711" height="10" border="0" align="absbottom" />
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 CSSeinfügen.Code:img { border: 0; }
Das ist laut Validator aber unvalide und dein Vorschlag funktioniert nicht.HTML-Code:align="absbottom"
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...3a33f140cd.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
CSSHTML-Code:<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>
HTML-Code: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.
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 ...Zitat:
Ä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.
Und leider gibt es noch mehr die noch den IE 6 benutzen :(
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.
Das ist mit dem mod_rewrite-Modul des Apache Servers möglich. Auf dieser Seite und in der Apache Doc 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.
http://www.npshare.de/thumbnails/e57...20Kopie.th.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
!? Beides xD? PHP und XHTML sind zwei total verschiedene Schuhe o_ÔZitat:
Kann mir jemand sagen ob ich die Seite in PHP oder XHTML schreiben soll?
Ja tut man. Auch wenn ich die ecken und Kanten beim Banner etwas merkwürdig finde^^.Zitat:
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.
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.)
Moin Leute, hab da mal ein Problem zu einem Mehrdimensionalen Array!
Mein MDarray sieht grob gesagt so aus:
Ich will aber das er so aussieht:Code: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
Wie bekomm ich das hin? Weiß schon garn nicht mehr weiter. ;(Code:1 => 1
a => a
b => b
1a => 1a
1b => 1b
3 => 3
d => d
2a => 2a
2b => 2b
Wär cool wenn mir jemand dabei Helfen könnte. ;)
gruß deadshox
Was für ne Sprache? PHP?
Edit:
PHP-Code:
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;
}
Ja, ich nehme mal an, er meint PHP. Zumindest hier mal eine Lösung, wie's darin klappen sollte (ungetestet):
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/s.../1/gruebel.gifPHP-Code:
<?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;
}
}
}
Edit: Argh, doofer Drakes, erst schlägt er mich im Spielecontest und dann sowas. XD
http://www.multimediaxis.de/images/s...old/1/keks.gif Hab wahrscheinlich früher begonnen. :)
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?
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 (?)
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.
HTML-Code:<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?
Welche meinst du?
Alles rund rum ist HTML. Das was hier zwischen den " steht ist JavaScript: onchange="this.form.submit();" und das:
ist Smarty =).PHP-Code:
{foreach from=$ordner item=folder}
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)
/edit: Kommando zurück!!!
http://de3.php.net/manual/de/function.array-splice.php
PHP-Code:
$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:
mfGPHP-Code:
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'));
/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.
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:
Nach dem merge sieht der Array so aus:PHP-Code:
$array1 = array
(
'a' => '1',
'd' => array
(
'aa' => '11',
)
);
$array2 = array
(
'a' => '',
'b' => '',
'c' => '',
'd' => array
(
'aa' => '',
'ab' => '',
'ac' => '',
'ad' => ''
)
);
array_merge($array2, $array1);
Sollte aber so aussehen:Code:Array
(
[a] => 1
[b] =>
[c] =>
[d] => Array
(
[aa] => 11
)
)
Gibt es da irgend einen Trick? Bin grad verwirrt weil ich mir das nicht erklären kann. ;(Code:Array
(
[a] => 1
[b] =>
[c] =>
[d] => Array
(
[aa] => 11
[ab] =>
[ac] =>
[ad] =>
)
)
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)
Wobei es hier für auch diese Funktion gibt: http://de3.php.net/manual/de/functio...-recursive.php
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!
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 noch ein Link, für mehr habe ich atm leider keine Zeit. ^^''
Moin,
ich hab Probleme mit folgendem Befehl:
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.PHP-Code:
echo $_SERVER['HTTP_REFERER'];
Die Url verändert sich immer nur hinter index.php, z.B.: /index.php?section=news
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...les.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. :)
Habe nun aber ein neues Problem:PHP-Code:
echo $_SERVER['HTTP_HOST']; //gibt die Adresse aus
echo $_SERVER['REQUEST_URI']; // gibt den kram dahinter z.B "section=news" aus
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:
PHP-Code:
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 zusammen mit FirePhp.
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?
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 ;).
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:
Wenn ich jetzt aber die Site speichere und mit KompoZer öffne, sieht der Quelltext so aus:Code:<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 den Rot markierten Satz gegen "TEST TEST TEST" austausche, speichere und die veränderte Datei publizieren will, kommt immer ein unbekannter Publizierungsfehler.Code:<!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>
Die Felder habe ich wie folgt ausgefüllt:
und
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.
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:
sollte aber so aussehen (oder anderen doctype(erste Zeile)):HTML-Code:<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>
)HTML-Code:<!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.
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.
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:
Genau das publiziert er auch erfolgreich, aber wieso steht dann da immernoch "Hier entsteht eine neue Webpräsenz!" und nicht "TEST TEST TEST"?Code:<!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>