Hallo,
Ja aber dann bekommst Du die Anzahl aller Downloads doch ganz einfach:
Wenn Du das pro downlad_id haben möchtest, gruppierst Du das noch:
Zumindest, wenn ich das jetzt richtig verstanden habe?
Gruß Arne
Hallo,
Ja aber dann bekommst Du die Anzahl aller Downloads doch ganz einfach:
Wenn Du das pro downlad_id haben möchtest, gruppierst Du das noch:
Zumindest, wenn ich das jetzt richtig verstanden habe?
Gruß Arne
Hallo,
Ja, das weiß ich. Ich wollte nur auf die Stolpersteine darin hinweisen.
Gruß Arne
Hallo,
Du scheinst doch irgendwas auf die Beine gestellt zu haben, ansonsten hättest Du ja keine 383 Downloads veröffentlicht.
Wo liegt das Problem mit der Datenbank-Verbindung? Gibt es schon eine?
Gruß Arne
Hallo,
Wie sind denn die Voraussetzungen?
Wie sieht Deine Datenbank aus?
Was hast Du bisher versucht?
Gruß Arne
Hallo,
ZitatTja, wer kein Javascript nutzt kann auch keine Fremdinhalte einbinden. Oder es wird eine Alternative angeboten.
Wie kommst Du auf den Trichter?
Eine andere Vorgehensweise habe ich Dir in #10 genannt.
ZitatMit str_replace werden die Zeilenumbrüche durch <br> ersetzt und in $final gespeichert.
Es gibt zum Ersten auch nl2br() und zum zweiten, sprach ich nicht vom $final als resultierende Variable, sondern davon, dass Du $final bereits als Source-Variable verwendest.
Woher kommt diese? Die ist in Deinem Script bis dahin nicht existent.
ZitatDer Inhalt kann auch direkt in einer Variablen geschroeben werden.
Ändert nichts daran, dass allow_url_fopen aktiv sein muss!
ZitatMit preg_match hole ich nur den Inhalt vom ersten <pre>..</pre> Element der Seite.
Ja gut, was das generell macht weiss ich. Mir war ncht klar, wo Du die Anforderung gelesen hast.
Aber es scheint, als wenn das nur ein Beispiel sein sollte.
Die Lösung bleibt insgesamt unsauber, man sollte das wie in #10 beschrieben über cURL und DOMDocument/DOMXPath lösen.
Gruß Arne
Hallo,
djheke: Kannst Du Deinen Dreizeiler kurz erläutern?!
Mir fallen direkt ein paar Dinge auf:
Voraussetzung für URLs mit file_get_contents() ist ein aktiviertes allow_url_fopen.
Dies ist nicht bei jedem Provider aktiv!
Eine bessere Lösung wäre cURL und den Response mit DOMDocument/DOMXPath verarbeiten.
Gruß Arne
Hallo,
Zitat von modem-kindwenn du ein KindElement
(ALLE Elemente im HTML sind KindElemente von irgend einem anderem )
float: ...; zuweist, !Verlassen! sie die Ebene des ElternElements / und aller Vorfahren -
Was ist das denn für ein Humbug?!
Verlassen tut kein Element irgend ein anderes, das Verhalten, was Du meinst trifft eher auf position:absolute; zu.
float gibt eine Art Flussplan für Elemente an. Wenn ich folgendes habe:
.wrapper { width:75%; }
.wrapper > DIV { display:inline-block; width:45%; }
.left { float:left; }
.right { float:right; }
.right:after { clear:both; }
Dann verlässt keiner der beiden inneren DIVs den wrapper-DIV! Sie werden beide nebeneinander innerhalb dessen angezeigt.
Zitat von modem-kindIhr weiteres Verhalten hat dadurch keinen Einfluss mehr auf Ihr ElternElement / zb. die höhe -
das ist so als würde man einen Luftballon aufblasen
wollen aber hält den neben den Mund
nix passiert !
Das von Dir nachfolgend angesprochene clear an der richtigen Stelle behebt das Problem!
Die Elemente bleiben dennoch innerhalb des Elternelementes, überragen aufgrund des floating allerdings dessen Rahmen, bis korrekt gecleared wird!
Gruß Arne
Hallo,
ZitatSehr oft wird auch der Einsatz einer Sitemap empfohlen, aber diese würde ich jetzt nur noch bei einer mindestens 3-stufig verschachtelten Website-Struktur einsetzen, wo es auch Unterseiten gibt, die nicht direkt von der Startseite zu erreichen sind, sondern von Unterseite zu Unterseite.
Ich würde die immer einsetzen, wenn Du willst, dass Google ein Interesse an Deiner Seite hat.
Eine Sitemap hilft Google, Deine Seite bzw. deren Struktur zu kennen und verstehen.
Anhand der Daten bist Du dann auch mit entsprechenden Tools in der Lage Schwachstellen besser zu analysieren.
Ich stelle immer eine XML, eine HTTP und eine TXT zur Verfügung.
Google favorisiert allerdings HTML noch vor XML, wenn ich mich grad nicht täusche.
Das müsste ich nochmal unbestätigt stehen lassen, aber ich meine das war so.
Gruß Arne
Hallo,
Zitat von paine_oneich hab sonst immer alles direkt da hin geschrieben wo es gebraucht wird, war für mich immer einfacher dann direkt was zu finden und co.
Du findest Dich bei Einhaltung des EVA-Prinzips besser zurecht, als vorher
Nur mal als Beispiel, Dein Rechner in die grobe Richtung EVA gewandelt:
1. Die reine HTML-Ansicht, die nur noch aus HTML und Platzhaltern für die Werte aus PHP besteht ( content.html ):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Maximalkraft Rechner</title>
<style type="text/css">
.itext,.iselect,.ibutton {
/*width:200px;*/
border:1px solid #999;
-webkit-border-radius: 3px;-khtml-border-radius:3px;-moz-border-radius:3px;border-radius:3px;
margin:0;
padding:5px;
background: #fff;
background: -webkit-gradient(linear, left top, left 25, from(#fff), color-stop(6%, #eee), to(#fff));
background: -moz-linear-gradient(top, #fff, #eee 2px, #fff 25px);
box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
-moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
-webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
}
.ifont1 { font: bold 32px Helvetica,Arial,sans-serif; }
.ifont2 { font: bold 16px Helvetica,Arial,sans-serif; }
.ifont3 { font: 16px Helvetica,Arial,sans-serif; }
.ifont4 { font: 14px Helvetica,Arial,sans-serif; }
</style>
</head>
<body>
<table width="500" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#000000">
<tr>
<td align="center" valign="top">
<table width="100%" border="0" align="center" bgcolor="#FFFFFF">
<tr>
<td align="center" valign="top"><font class="ifont1">Maximalkraft Rechner</font>
<table width="100%" border="0" align="center">
<form method="POST" action="">
<tr>
<td colspan="2" align="center"><hr size="2"></td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Uebungsgewicht in KG</font></td>
<td width="50%" align="left" valign="middle">
<select class="iselect" name="gew">
{WEIGHTOPTIONS}
</select>
</td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Wiederholungen</font></td>
<td width="50%" align="left" valign="middle">
<select class="iselect" name="wdh">
<option value="100;1">1</option>
<option value="95;2">2</option>
<option value="90;3-4">3-4</option>
<option value="85;5-6">5-6</option>
<option value="80;7-8">7-8</option>
<option selected="selected" value="75;9-10">9-10</option>
<option value="70;11-13">11-13</option>
<option value="65;14-16">14-16</option>
<option value="60;17-20">17-20</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<br>
<input type="submit" class="ibutton" name="Submit" value="Maximalkraft Berechnen">
</td>
</tr>
<tr>
<td colspan="2" align="center"><hr size="2"></td>
</tr>
</form>
<tr>
<td colspan="2" align="center"><font class="ifont2">Deine Werte:</font></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
{YOURMAXPOWER}
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont3">Uebungsgewicht in KG</font></td>
<td width="50%" align="left" valign="middle"> <font class="ifont3"><?php echo $gew ?></font>
</td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont3">Wiederholungen</font></td>
<td width="50%" align="left" valign="middle"> <font class="ifont3"><?php echo $sLoops; ?></font></td>
</tr>
<tr>
<td colspan="2" align="center"><hr size="2" width="75%"></td>
</tr>
<tr>
<td colspan="2" align="center"><font class="ifont2">Ergebnis:</font></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Maximalgewicht (1RM) in KG</font></td>
<td width="50%" align="left" valign="middle"> <input class="itext" type="text" readonly="readonly" size="3" value="{YOURMAXPOWER}"></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
{RMPOWER}
<tr>
<td colspan="2"> </td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Alles anzeigen
2. Die Verarbeitungsdatei, in der die Berechnungen durchgeführt und einige HTML-Elemente vorbereitet werden:
/*** EVA::VERARBEITUNG ***/
/******************************/
// berechnen der Werte
list( $fmp, $sLoops ) = explode( ';', $_POST['wdh'] );
$gew = (float)$_POST['gew'];
$fMaxPower = number_format(round(($gew * 100 / $fmp), 2), 2);
// gewichtsoptionen
$sWeightOptions = '';
for ( $weight=10; $weight<=300; $weight++ ) {
$sWeightOptions .= ( $weight == 20 )
? '<option value="' . $weight . '" selected="selected">' . $weight . '</option>'
: '<option value="' . $weight . '">' . $weight . '</option>';
}
// rm power tabelle
$sRMPower = '';
for ( $rm=95; $rm>=30; $rm-=5 ) {
$fPower = number_format(round(($fMaxPower / 100 * $rm), 2), 2);
$sRMPower .= '<tr><td width="50%" align="right" valign="middle"><font class="ifont4">' . $rm . '% (1RM) in KG</font></td>';
$sRMPower .= '<td width="50%" align="left" valign="middle"> <input class="itext" type="text" readonly="readonly" size="3" value="' . $fPower . '"></td></tr>';
}
/*** EVA::AUSGABE ***/
/**************************/
echo strtr(
file_get_contents( 'content.html' ),
array(
'{WEIGHTOPTIONS}' => $sWeightOptions,
'{YOURMAXPOWER}' => $fMaxPower,
'{RMPOWER}' => $sRMPower
)
);
Alles anzeigen
Das ist grob angeschnitten das EVA-Prinzip. Ich habe mir hier nicht die Mühe gemacht, alles anzupassen, sondern wollte Dir nur kurz zeigen, wie Du es Dir einfacher machen kannst, wenn Du bestimmte Dinge beachtest.
Ich denke, auch wenn Du in PHP am Anfang stehst, sollte Dir der Vorteil klar werden.
Gruß Arne
Hallo,
Zweimal das gleiche Keyword im Dateinamen finde ich zu viel.
Der Seitentitel ist für die Suchmaschinen übrigens auch sehr prägnant.
Und bei Bildern niemals das alt-Attribut unterschätzen.
Gruß Arne
Oha... Da ist einiges im Argen, sorry.
Dein SELECT-Bandwurm mit dem Gewicht kannst Du schonmal als Beispiel so kürzen:
<select class="iselect" name="gew">
<?php
for ( $weight=10; $weight<=300; $weight++ ) {
echo ( $weight == 20 )
? '<option value="' . $weight . '" selected="selected">' . $weight . '</option>'
: '<option value="' . $weight . '">' . $weight . '</option>';
}
?>
</select>
Alles anzeigen
Das ersetzt die kompletten 300 Options per Hand!
Zitat von paine_oneich habe die ranges noch mal eingebaut aber umgekehrt so das bei "Deine Werte" die Wiederholungsanzahl ausgegeben werden soll, dort erscheint aber nur "float(X)" (X steht für eine Zahl)
Im Prinzip soll bei Deine Werte bei Wiederholungen der % Wert zurück gewandelt werden in den Wert den man oben ausgewählt hat.
Am einfachsten ist, Du übergibst das direkt im Value mit und trennst das PHP seitig voneinander:
<select class="iselect" name="wdh">
<option value="100;1">1</option>
<option value="95;2">2</option>
<option value="90;3-4">3-4</option>
<option value="85;5-6">5-6</option>
<option value="80;7-8">7-8</option>
<option selected="selected" value="75;9-10">9-10</option>
<option value="70;11-13">11-13</option>
<option value="65;14-16">14-16</option>
<option value="60;17-20">17-20</option>
</select>
Alles anzeigen
Zitat von paine_onedort erscheint aber nur "float(X)" (X steht für eine Zahl)
Das zeigt so ein wenig, dass Du so gar nicht weisst, was Du tust, kann das sein?
Nimm halt echo anstatt dem var_dump()!
Zitat von paine_oneDie angaben sind mehrstellig nach dem komma des ergebnisses, wie kann ich das auf eine stelle nach dem komma reduzieren?
Mit round() rundet man Fliesskommazahlen und mit number_format() kann man dafür sorgen, dass auch wirklich alle die gleichen Nachkommastellen haben:
Deine (1RM)-Tabelle - was auch immer das ist - kannst Du übrigens mit einem Loop auch deutlich kürzen:
<?php
for ( $rm=95; $rm>=30; $rm-=5 ) {
$fPower = number_format(round(($fMaxPower / 100 * $rm), 2), 2);
echo '<tr><td width="50%" align="right" valign="middle"><font class="ifont4">' . $rm . '% (1RM) in KG</font></td>';
echo '<td width="50%" align="left" valign="middle"> <input class="itext" type="text" readonly="readonly" size="3" value="' . $fPower . '"></td></tr>';
}
?>
Alles anzeigen
Einigermassen gekürzt sieht Dein Code zum Vergleich dann so aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Maximalkraft Rechner</title>
<style type="text/css">
.itext,.iselect,.ibutton {
/*width:200px;*/
border:1px solid #999;
-webkit-border-radius: 3px;-khtml-border-radius:3px;-moz-border-radius:3px;border-radius:3px;
margin:0;
padding:5px;
background: #fff;
background: -webkit-gradient(linear, left top, left 25, from(#fff), color-stop(6%, #eee), to(#fff));
background: -moz-linear-gradient(top, #fff, #eee 2px, #fff 25px);
box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
-moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
-webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
}
.ifont1 {
font: bold 32px Helvetica,Arial,sans-serif;
}
.ifont2 {
font: bold 16px Helvetica,Arial,sans-serif;
}
.ifont3 {
font: 16px Helvetica,Arial,sans-serif;
}
.ifont4 {
font: 14px Helvetica,Arial,sans-serif;
}
</style>
</head>
<body>
<table width="500" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#000000">
<tr>
<td align="center" valign="top"><table width="100%" border="0" align="center" bgcolor="#FFFFFF">
<tr>
<td align="center" valign="top"><font class="ifont1">Maximalkraft Rechner</font>
<table width="100%" border="0" align="center">
<form method="POST" action="<?php echo $PHP_SELF ?>">
<tr>
<td colspan="2" align="center"><hr size="2"></td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Uebungsgewicht in KG</font></td>
<td width="50%" align="left" valign="middle">
<select class="iselect" name="gew">
<?php
for ( $weight=10; $weight<=300; $weight++ ) {
echo ( $weight == 20 )
? '<option value="' . $weight . '" selected="selected">' . $weight . '</option>'
: '<option value="' . $weight . '">' . $weight . '</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Wiederholungen</font></td>
<td width="50%" align="left" valign="middle">
<select class="iselect" name="wdh">
<option value="100;1">1</option>
<option value="95;2">2</option>
<option value="90;3-4">3-4</option>
<option value="85;5-6">5-6</option>
<option value="80;7-8">7-8</option>
<option selected="selected" value="75;9-10">9-10</option>
<option value="70;11-13">11-13</option>
<option value="65;14-16">14-16</option>
<option value="60;17-20">17-20</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<br>
<input type="submit" class="ibutton" name="Submit" value="Maximalkraft Berechnen">
</td>
</tr>
<tr>
<td colspan="2" align="center"><hr size="2"></td>
</tr>
</form>
<tr>
<td colspan="2" align="center"><font class="ifont2">Deine Werte:</font></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<?php
list( $fmp, $sLoops ) = explode( ';', $_POST['wdh'] );
$gew = (float)$_POST['gew'];
$fMaxPower = number_format(round(($gew * 100 / $fmp), 2), 2);
?>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont3">Uebungsgewicht in KG</font></td>
<td width="50%" align="left" valign="middle">
<font class="ifont3"><?php echo $gew ?></font></td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont3">Wiederholungen</font></td>
<td width="50%" align="left" valign="middle"> <font class="ifont3"><?php echo $sLoops; ?></font></td>
</tr>
<tr>
<td colspan="2" align="center"><hr size="2" width="75%"></td>
</tr>
<tr>
<td colspan="2" align="center"><font class="ifont2">Ergebnis:</font></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td width="50%" align="right" valign="middle"><font class="ifont2">Maximalgewicht (1RM) in KG</font></td>
<td width="50%" align="left" valign="middle"> <input class="itext" type="text" readonly="readonly" size="3" value="<?php echo $fMaxPower; ?>"><?php echo $fMaxPower; ?></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<?php
for ( $rm=95; $rm>=30; $rm-=5 ) {
$fPower = number_format(round(($fMaxPower / 100 * $rm), 2), 2);
echo '<tr><td width="50%" align="right" valign="middle"><font class="ifont4">' . $rm . '% (1RM) in KG</font></td>';
echo '<td width="50%" align="left" valign="middle"> <input class="itext" type="text" readonly="readonly" size="3" value="' . $fPower . '"></td></tr>';
}
?>
<tr>
<td colspan="2"> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Alles anzeigen
Es gibt aber zudem noch so einiges, was Du verbessern solltest:
Gruß Arne
Hallo,
Ja, wenn Du von Responsive redest, geht es erstmal nur um das Ein-/Ausblenden von Elementen in Abhängigkeit des Viewports.
Wenn Du Elemente gar nicht erst laden willst, kannst Du eine Mischung aus dem Link von MrMurphy und dem Responsive-Gedanken nutzen:
Das ist aber kein wirkliches Responsive im eigentlichen Sinne!
Und ich halte den Aufwand dafür auch für viel höher, als die zusätzlichen HTTP Requests, die Du damit generierst.
Nutze Responsive so, wie es gedacht ist oder baue verschiedene Seiten für die Viewports.
Gruß Arne
Hallo,
Warum setzt Du das erst in Backticks und entfernst die danach wieder
EDIT: Grad gesehen, Du nutzt die als Delimiter, war ich geistig nicht drauf vorbereitet...
Mit diesem Pattern greifst Du auch sftp und subdomains ab:
Geht sicherlich besser, aber für Dein Zweck sollte das passen.
Gruß Arne
Hallo,
Die Ajax-Variante ist keine allgemeine Lösung!
Dabei geht es um Inhalte, die auf Wunsch des Users angezeigt werden können.
Beim ResponsiveDesign geht es aber nicht darum, Imhalte nachladbar zu gestalten, sondern die Views für Endgeräte zu optimieren.
So macht es bei Smartphones bspw. in vielen Fällen keinen Sinn, grosse Slider ( oder auch einfach nur Header-Bilder ) anzuzeigen, weil die Viweports dann meist schon dicht sind.
Der Sinn, dem User jetzt anbieten, dies nachzuladen erschliesst sich mir nicht.
Um generell Platz zu sparen und nur die für den User entsprechende Informationen anzuzeigen, ist das Event bezogene Nachladen von Inhalten sinnvoll und gebräuchlich.
Aber mit Responsive hat das erstmal nichts zu tun.
Im Responsive gibt es nur die Größenanpassung oder das tatsächliche Ausblenden über display:none;
Zitat von AnyKeyWerden Bilddateien, die man in der mobilen Darstellung mit 'display:none' oder 'visibility:hidden' trotzdem geladen?
Ja...
Gruß Arne
Hallo,
Zitat von mike36Meine Funktion html_link() steht gleich am anfang von dem Code den ich gepostet habe.
Stimmt. Hatte ich übersehen.
Zitat von mike36Die Ausgabe der abgefragten Dateien funktioniert, nur werden mir eben die Links aus dem Text welchen ich abfrage nicht in "klickbare" links umgewandelt.
Ach so, Du meinst Links, die sich quasi im node_revisions.body befinden?
Ja, Deine Pattern matchen nicht.
Ich habe mal als Test ein ganz einfaches Pattern verwendet:
Das ist zwar kein sehr genaues Pattern, aber das matcht zumindest.
Du musst also Deine Pattern überarbeiten, der Rest des Scriptes scheint zu stimmen.
Gruß Arne
Hallo,
Kann es sein, dass Du Suchmaschinen freundliche URL's suchst?
Einstieg - SEO friendly URL
Gruß Arne
Hallo,
Das bekommt man recht gut über MediaRules/-Queries selbst hin.
Anders machen Responsive-"Frameworks", wie bootstrap & Co. auch nicht.
Gruß Arne
Hallo,
$aPowerRange kannst Du dann ablösen durch Dein zweites Dropdown wdh.
Da musst Du allerdings dann in den Option-Values die jeweilige Leistung in % reinschreiben.
Zugriff hast Du dann über POST:
Damit sparst Du Dir dann auch den array_filter- & Co. Aufwand.
Gruß Arne
Hallo,
Grundsätzlich kann man dazu nur etwas sinnvolles sagen, wenn Du etwas mehr Infos gibst.
Bspw. kennen wir Deine Funktion html_link() nicht.
Zudem:
Gruß Arne