Derzeit online: ca. 112 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


Allgemein

FAQ

PHP: hallo! Danke für die gute Seite und vor allem für die Möglichkeit, Fragen zu stellen! Und ich habe gleich eine ... (war klar, nicht?): Ich suche eine Möglichkeit, beim Anhängen an eine Datei mit fWrite die letzten (sagen wir) 10 Zeichen zu überschreiben. Die Datei hat variable Länge, und die Funktion zum Positionieren des Dateizeigers von EOF aus scheint es nicht mehr zu geben. Hintergrund: Das Ganze wird ein sehr minimalistischer Blog. Die Inhalte werden in eine Datei geschrieben, und diese Datei wird mit include ausgegeben, in einem scrollbaren Bereich. Die Sortierung soll chronologisch sein, daher mit fwrite r+ anhängen - nur muss dann eben die Anzeige auf das Dateiende focussieren. Was an sich einfach wäre, mit einer Sprungmarke. Nur, eben diese Sprungmarke muss ja 'mitwandern', wenn Text angehängt wird ... Und daran scheitere ich grad

von der Uli
Dateizeiger ganz am Ende reicht dir nicht? Ich mache quasi nie was mit Dateifunktionen, daher bin ich da nicht so fit. Ich könnte mir aber gerade eine Lösung über die Stringfunktionen vorstellen... die komplette Datei in eine Variable auslesen, über strlen die Länge des Textes auswerten, mit substr alles außer die letzten 10 Zeichen auslesen lassen und dann deinen zusätzlichen Text anhängen. Zum Schluss den neuen Text komplett in deine Datei schreiben.
vor langer Zeit

PHP: Hallo! Vielen Dank erstmal für diese schöne Seite. Sie hat mir sehr geholfen. Ich habe allerdings ein Problem, dass ich zur Zeit nicht lösen kann. Ich habe bisher wenig mit arrays gearbeitet und vieles ist mir daher noch nicht ganz schlüssig. Ich programmiere gerade eine Facebook app in der ich Daten auslesen möchte. Diese werden in folgender Form vom wiedergegeben: Array ( [id] => blbadsf [name] => asdfasdf [email] => tasf@adsfasdf.de [events] => Array ( [data] => Array ( [0] => Array ( [name] => Geburtstagsparty [start_time] => 2013-06-21T22:00:00+0200 [timezone] => Europe/Berlin [location] => asdfasdf [id] => 322135641 [rsvp_status] => attending ) [1] => Array ( [name] => adsfsadfasdf [start_time] => 2013-05-04T21:00:00+0200 [end_time] => 2013-05-05T04:00:00+0200 [timezone] => Europe/Berlin [location] => aadsfasdfasdf [id] => 13613216164161 [rsvp_status] => attending ) ) [paging] => Array ( [previous] => https://graph.facebook.com/100002820231099/events?limit=25&since=1371844800&__paging_token=586891944661821&__previous=1 [next] => https://graph.facebook.com/100002820231099/events?limit=25&until=1365879600&__paging_token=527392493965728 ) ) ) Ich kann mir zum Beispiel mit $data[name] meinen namen auslesen (zweite Zeile). Aber wie komme ich an die Daten der Events heran? Ich hätte gedacht: $data[events][data][0] oder so ähnlich?! Aber leider funktioniert das nicht so richtig. Wo liegt der Trick? Ich fänds super wenn ihr mir helfen würdet!!! Vielen Vielen Dank ! =)

von Thomas
Die Lösung mit $data[events][data][0] ist schon richtig. Ich würde die Namen der Unterarrays noch in Anführungszeichen setzen, aber wenn es auch beim Namen ohne Anführungszeichen klappt, scheint PHP da nicht so pingelig zu sein.

So verschachtelte (eigentlich mehrdimensionale) Arrays sind aber immer ein bisschen umständlich. Ich kann nur empfehlen, jede Ebene ausgeben zu lassen (über print_r). Dann sieht man immer Schritt für Schritt wie es weiter geht und auch, wo es dann eventuell nicht mehr weiter geht.
vor langer Zeit

PHP: Guten Abend Frau Dunkelbach, ich hoffe Sie können mir weiterhelfen. Ich betreibe eine private Wetterstation. Nun möchte ich in ein bestehendes Panoramabild oder Banner (in jpg oder png) die aktuellen Wetterdaten (werden alle 15 Minuten neu eingelesen) einfügen. Diese Wetterdaten sind als Textfile vorhanden und werden auf den Server hochgeladen. Können Sie mir dazu ein kurzes Beispiel geben - wie ich dies (Anfänger) hinbekomme. Hoffe ich habe mich verständlich ausgedrückt. DANKE - und schöne Grüße Klaus

von Klaus
Als reiner Anfänger könnte das schwierig werden. Sie werden Kenntnisse über das Arbeiten mit Dateien benötigen, um die Daten aus den Textfiles auszulesen und sich mit Bildverarbeitung von PHP beschäftigen müssen. Bei den Schnipseln gibt es eine Einführung zur gdlib (siehe auch die beiden weiteren Artikel zu gdlib).
Kurz zusammengefasst: Sie lesen ihr bestehendes Bild über gdlib ein, rufen aus der Textdatei die Wetterdaten ab und fügen diese dann mittels der gdlib-Textfunktion in das Bild ein. Anschließend generieren Sie mit PHP das Endbild. Da Sie vermutlich nicht alle 15 Minuten die PHP-Datei aufrufen wollen, um das Bild neu zu generieren, bietet es sich an, anstatt später das fertige Bild einzubinden, direkt die PHP-Datei einzubinden, siehe hier.
vor langer Zeit

PHP: Hallo, gibt es einen weg um eine Variable hochzählen zu lassen, wenn man über einen link etwas downloaded? Für Hilfe und ein kleines beispiel wäre ich sehr dankbar.

von BTL
Grundsäztlich ja, allerdings nicht eine Variable im eigentlich Sinne, da diese immer nur innerhalb eines Scriptes zur Verfügungen steht. Die Downloadanzahl muss also extern gespeichert werden, entweder über eine Textdatei oder in einer Datenbank, das funktioniert ähnlich wie der Counter unter "Arbeiten mit Dateien".
In deinem Fall musst du noch zusätzlich dafür sorgen, dass die Downloads nicht direkt verlinkt werden, sondern über ein PHP-Script abgerufen werden, sprich der Downloadlink führt zum PHP-Script. Dieses Script ändert dann zuerst deinen Zähler und stellt dann den Download zur Verfügung. Das funktioniert über Headerinformationen, da musst du dich aber bitte selbst informieren.
vor langer Zeit

PHP: Hallo Frau Claudia Ihnen vielen Dank für die gute Seite, die schon sehr hilfreich gewesen ist. Ich habe eine Frage zur if Bedingung bei php. Leider hab ich auf Ihren Seiten diese Möglichkeit nicht gefunden, also weiss ich gar nicht ob php dass lösen kann. Das ganze kommt seltener vor daher schreib ich das etwas ausführlicher. ERstellt soll eine Abfrage für eine Laborauswertung. Auf der Ausgangsseite können Checkboxen, angeklickt werden. Feld 1 für den Laborwert_1 Feld 2 für den Laborwert_2 Feld 3 für den Laborwert_3 Wenn nur Feld 1 angeklickt wird, dann ist die Schilddrüse verändert. Wenn nur Feld 1 bis 2 angeklickt wird, dann ist die Schilddrüse mehr verändert. Wenn nun Feld 1 - 3 vollständig angeklickt wird bedeutet das: die Schilddrüse arbeitet gar nicht mehr. Als php Lösung müsste das so ähnlich aussehen (funktioniert aber leider nicht): das "and" gibts nicht bei php und else ist gar nicht richtig. <?php if ( isset ( $_POST [ 'Laborwert_1' ] ) ) and if ( isset ( $_POST [ 'Laborwert_2' ] ) ) and if ( isset ( $_POST [ 'Laborwert_3' ] ) ) { echo "Laborwert_1 und Laborwert_2 und Laborwert_3 ist erhöht. Der Patient ist viel krank. " ; echo implode ( ', ' , $_POST [ 'Laborwert_1' ] ) ; echo implode ( ', ' , $_POST [ 'Laborwert_2' ] ) ; echo implode ( ', ' , $_POST [ 'Laborwert_3' ] ) ; echo "Die Schilddrüse arbeitet gar nicht mehr "; } else { echo "Laborwert_1 und Laborwert_2 ist normal und Laborwert_3 ist normal. Die SChilddrüse ist gesund. " ; } ?> Mit else if geht das auch nicht vereinfacht soll einfach nur folgendes funktionieren Die Ausgangslage: "Morgen" ist angeklickt "Mittag" ist angeklickt "Abend" ist angeklickt Die Auswertung: Wenn "Morgen" angeklickt ist und "Mittag" angeklickt ist und Abend angeklickt ist dann sage "Ganzer_Tag" Ist diese Bedingung möglich Ich würde mich sehr freuen, wenn Sie mir einen Hinweis geben könnten, wie diese Lösung aussehen könnte. Mit freundlichen Grüssen und vielen Dank Antera

von Antera
Natürlich gibt es bei if-Abfragen in PHP ein AND, allerdings müssen Sie sie anders verknüpfen, siehe "Logische Operatoren".
vor langer Zeit

PHP: Hallo Frau Unkelbach, hoffe Sie können mir helfen. In einer MySql-Datenbank wird per Sript geschaut ob am aktuellen Tag jemand Geburtstag hat. Wenn ja, wird mir ein Mail mit Telefon und Vorname zugesandt. Möchte nun aber gern noch den Nachnamen mit übertragen haben. Also einen 5. Parameter. mail("xxx@xxxxx.de", "Heute Geburtstag PRIVAT", $row["telefon"], $row["vorname"]); So geht es wunderbar. ___________ mail("xxx@xxxxx.de", "Heute Geburtstag PRIVAT", $row["telefon"], $row["vorname"], $row["nachname"]); Der --Nachname-- wird leider nicht mit übertragen. Was mache ich falsch? Danke. gruss horst

von horst
Das 5. Argument bei mail dient nur zusätzlichen "Kommandozeilenparamentern", daher klappt es nicht, einfach noch was 5. dazu zu schreiben. Am sinnvollsten erscheint es mir, das gesamte 4. Argument anzupassen, da das der eigentliche Mailtext ist. Also z. B. vor dem Mailversand eine eigene Variable mailtext definieren, da alles, was im Text enthalten sein muss hinein speichern und dann als 3. Argument die Variable mailtext übergeben statt direkt einen Wert aus der Datenbank zu nehmen.
$mailtext = $row["vorname"]." ".$row["nachname"]." ".$row["telefon"];
mail("xxx@xxx.de", "Heute Geburtstag PRIVAT", $mailtext);
(Je nach Einstellung in der php.ini ist auch das 4. Argument zwingend erforderlich, siehe auch meine Seite über die Mailfunktion.)
vor langer Zeit

PHP: Hallo Claudia, kann ich bei einem include ein if in der einen Datei öffnen und in der includierten schließen? Also zB: Datei1.php <?php code code code if($heute == "Dienstag") { echo "Halo Welt"; ?> Datei2 code code code include ('Datei1.php"); } else echo "Peep"; Gibt ne Fehlermeldung.

von Ollie
Soweit ich weiß, funktoiniert das nicht. Du musst "Klammern" innerhalb der selben Datei schließen, in der du sie auch geöffnet hast. Das, was innerhalb der Anweisung steht, kannst du aber auslagern.
vor langer Zeit

PHP: Hallo Claudia, nachdem ich auf Deiner wirklich tollen Seite schon oft Hilfe finden konnte, komme ich nun nicht mehr weiter. Ich betreue ehrenamtlich die Seite http://www.msc-schrobenhausen.de und habe folgendes Problem: Beim "Solitaer" http://www.msc-schrobenhausen.de/solitaerspiel.html gibt es eine Bestenliste, die auf einer Textdatei mit einzelnen Einträgen in folgendem Format basiert: Kugeln|Sekunden|Nickname|Zeit| Bei einem Neueintrag wird die Liste neu sortiert. Meine Frage: wie bekomme ich es hin, daß ein User mit seinem Nicknamen nur mit seinem besten Wert (am wenigsten Kugeln übrig und kürzeste Zeit) in der Liste auftaucht? Im Moment mache ich das manuell durch Löschen. Die Werte im array werden sortiert und die besten 20 ausgegeben. Ich kann das array sortieren, aber wie mache ich es, daß schlechtere Daten von einem User, der z. B. an erster Stelle steht, bei den nächsten Einträgen ignoriert werden. Beispiel: 2 Kugeln|70 Sekunden|Paul|Zeit 1:10| 3 Kugeln|60 Sekunden|Heinz|Zeit 1:00| 3 Kugeln|65 Sekunden|Karl|Zeit 1:05| 3 Kugeln|80 Sekunden|Paul|Zeit 1:20| 3 Kugeln|85 Sekunden|Fritz|Zeit 1:25| .... Paul würde nun an 1. und an 4. Stelle stehen. Er soll aber nur einmal an erster Stelle stehen und wenn er besser wird, dieses Ergebnis überschrieben werden. Hoffentlich habe ich das verständlich ausgedrückt! array_unique ist nicht für mehrdimensionale arrays, array_multi_unique löscht die Felder, die "komplett" identisch sind. Ich aber möchte doch nur nach dem Nicknamen suchen und, falls der Wert schon vorhanden ist, den "ganzen" Eintrag, also Nickname, Kugelanzahl, Zeit und Sekunden löschen. Wäre toll, wenn Du mir helfen könntest. Ein Eintrag als Dankeschön bei den "Sponsoren" könnte ich arrangieren ;-) Viele Grüße und mach weiter so - tolle Seite!! Martin

von Martin Babst
Hallo Martin,
mir fällt leider keine wirkliche Lösung ein. Ich könnte mir höchstens vorstellen, das mehrdimensionale Array aufzulösen und die Einzelteile zu bearbeiten, aber das erscheint mir zum einen sehr kompliziert und zum anderen bin ich mir nicht sicher, ob das zum Erfolg führen wird. Tut mir leid.
vor langer Zeit

PHP: Hallo, Erstmal: super seite hat mir seeehr weiter geholfen. Nun habe ich aber eine frage: Ich habe eine Tabelle mit mehreren spalten und jeder angemeldete User hat dort eine zeile. nun möchte ich jeden wert aus einer Userzeile ausgeben nach folgendem schema: Spalten name 1: 23 Spalten name 2: 354 usw. wenn allerdings ein wert in einer Zelle=0 ist soll er automatisch diese zelle überspringen und mit der nächsten in der Zeile weiter machen. ist das irgendwie möglich? Danke im vorraus Fabi

von Fabi
Du musst nur vor der Ausgabe jeweils mittels if überprüfen, ob die Zelle einen Wert enthält und nur dann etwas ausgeben lassen.
vor langer Zeit

PHP: Hi, ich habe ein Problem mit Imagepng Den Script habe ich lokal getestet, und er zeigt mir die Grafik auch richtig an. Jezt habe ich diesen auf einen Webserver hochgeladen, aber nun zeigt der script rein garnichts mehr an und speichert das Bild auch nicht ab. Alle Datein besitzen die Rechte 777 und im script ist auch kein Pfadfehler. Ich weiss nicht woran es liegen kann, dass der Script nicht arbeitet. Habe alle Möglichkeiten etwas zuändern, auch am Webserver. Freue mich auf eine Antwort. Mit freundlichen Grüßen Michael

von Michael
Das einzige, was mir noch als Fehlerquelle einfallen würde: Ist auf dem Webserver die gdlib (korrekt) installiert?

Ich würde zu Testzwecken die Grafik direkt anzeigen lassen, anstatt sie in eine Datei zu schreiben, dann siehst du auch eventuelle Fehlermeldungen. Sonst fällt mir leider nichts ein.
vor langer Zeit

PHP: Schoenen Abend :) hab ein Problem zwar ich habe einen Adventskalender und habe dafür mit Photoshop CS4 Zwei Design's gemacht das eine Design heißt "Nacht" und das andere Design "Tag" beide Design's sind jeweils in 5 Teile Gesliced (da auch noch Animationen mit im Spiel sind) Der Adventskalender soll eine bestimmte funktion haben zwar soll der Himmel ab 16:19 Uhr Dunkelblau werden (einfach die 5 bilder austauschen Bilder sollten sich dann im ordner Nacht befinden) und Tags über um 07:50 Uhr soll der Himmel wieder Hellblau werden (bilder im Ordner "Tag") oder wenn es möglich wäre mach ich 2 HTML Dokumente das eine nenne ich "Tag" & das andere "Nacht" und dann einfach das Jeweilige Html-Dokument für die entsprechende Uhrzeit das habe ich im Internet gefunden <img src="<?php // Abfrage der momentanen Stunde $std = date("G"); // Headerzuordnung $tag = "Bilder/tag.png"; $nacht = "Bilder/nacht.png"; // Vergleichsoperatoren if ($std >= 7 && $std < 19) { // von 7.oo Uhr bis 18.59 Uhr echo $tag; } else {// von 19.oo Uhr bis 6.59 Uhr echo $nacht; } ?>" width="1002" height="700" border="0" style="position:absolute; top: 0; left:0"> leider kann man dort nur 1 bild für "Tag" verlinken müsste aber 5 Bilder Für "Tag" verlinken. ich habe schon in einem Forum nachgefragt aber hab leider nur eine Antwort bekommen wie man Grüße nach Uhrzeit Anzeigen lassen kann :/ Vielen Dank schon einmal Lg, Soulstah.

Entweder du bindest jedes Bild so ein, wie in deinem Beispiel, oder du macht den PHP-Teil außerhalb des img-Tags und lässt dann dort, wo du zurzeit die Variable tag oder nacht ausgibst, die kompletten img-Tags schreiben. Das würde dann so aussehen:
<?php
$std = date("G");
if($std >= 7 && $std < 19)
{
echo "<img src=\"bildfpad1.png\" width=\"1002\" height=\"700\" usw.>";
echo "<img src=\"bildpfad2.png\" usw.";
echo "<img src=\"bildpfad3.png\" usw.";
}
else
{
echo "siehe oben";
}
?>

Für dich noch einfacher wäre es, wenn du nach den geschweiften Klammern PHP beendest und vor der schließenden erst wieder beginnst. Dann kannst du normales HTML schreiben:

<?php
$std = date("G");
if($std >= 7 && $std < 19)
{
?>
<img src="bildpfad1.png" usw.>
<img src="bildpfad2.png" usw.>
<?php
}
else
{
?>
Hier kann ganz normales HTML stehen.
<?php
}
?>

Hilfreich ist es für dich wahrscheinlich, wenn du dir zumindest die ersten paar Kapitel hier durchliest, damit du weißt, wie man Variablen verwendet, was man bei echo beachten muss und wie if funktioniert.
vor langer Zeit

PHP: Bei mir zählt der code nicht. wieso? <?php $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } $counterstand++; echo $counterstand; rewind($datei); fwrite($datei, $counterstand); fclose($datei); ?> bei mir zählt das nicht? bitte hilf mir

von hilfsbereit
Kann die Datei gelesen werden und funktioniert nur das Schreiben nicht oder ist gar kein Zugriff möglich?
Wenn Lesen nicht funktioniert: Ist die Datei counter.txt auf dem Server vorhanden?
Wenn nur Schreiben nicht funktioniert: Hat die Datei die notwendigen Zugriffsrechte/Dateiberechtigungen? Standardmäßig besteht nur Lesezugriff auf Dateien am Server, du musst aber zusätzlich Schreibrechte haben, um mit PHP eine Datei verändern zu können. Das lässt sich normalerweise in deinem FTP-Programm einstellen z. B. über einen Rechtsklick auf die Datei am Server.
vor langer Zeit

PHP: Hi, ich bins wieder ich hab ne Frage zu Arrays: ich frage eine Reihe Werte aus einer Datenbank ab, ob ein bestimmter Wert stimmt. Wenn das der Fall ist wird der Name des Datensatzes in das Array gespeichert. Soweit funktioniert alles auch ganz gut. Ich bräuchte jetzt nur einen Weg alle Werte auszugeben ABER Werte, die schon ausgegeben wurden zu übergehen, wenn sie doppelt im Array gespeichert sind. Ich hoffe du kannst etwas mit dieser Beschreibung anfangen xD glg Herry und Danke im Voraus

von Herry
Es gibt die Funktion array_unique, die alle mehrfachen Einträge aus einem Array aussortiert, so dass jeder Wert nur einmal im Array vorhanden ist. Wenn du die doppelten Werte im Array behalten magst und sie nur für die Ausgabe quasi ausblenden möchtest, solltest du allerdings nur die Ausgabe mit der Funktion bearbeiten oder eine eigene Variable dafür verwenden.
vor langer Zeit

PHP: Hallo, ich schreibe momentan an einem System zur einfachen kommunikation unter Freunden und habe ein Problem. ich arbeite bei dem Neuigkeitssystem mit einer Datei namens news.txt da die neuesten News oben stehen sollen, lese ich die ganze datei ein und spiechere jede Zeile in einer extra variable( $a bis $i) wenn jetzt eine neue Neuigkeit hinzukommt, so wird im code die Neuigkeit in die Variable $text gespeichert und anschließend wird alles wieder eingespeichert, wenn ich jetzt die Datei ansehe, ist immer nur der letzte eintrag zu finden, d.h. die alten einträge werdeen gelöscht, obwohl eigentlich die letzten 10 einträge angezeigt werden müssten. DER CODE IST: <?php session_start(); $timestamp = time(); $datum = date("d.m.Y",$timestamp); if ($_POST["passt"]) { $datei = fopen("news.txt","w+"); echo "DATEI OFFEN <br />TEXT:<br />"; $text = $datum; $text .= $_POST["passt"]; $text .= "<br />"; $text .= $_SESSION["benutzer"]; echo $text, "<br />0:"; $a = fgets($datei); $b = fgets($datei); $c = fgets($datei); $d = fgets($datei); $e = fgets($datei); $f = fgets($datei); $g = fgets($datei); $h = fgets($datei); $i = fgets($datei); $j = fgets($datei); rewind($datei); fwrite($datei, $text); fwrite($datei, $a); fwrite($datei, $b); fwrite($datei, $c); fwrite($datei, $d); fwrite($datei, $e); fwrite($datei, $f); fwrite($datei, $g); fwrite($datei, $h); fwrite($datei, $i); fclose($datei); } ?> was mache ich denn falsch, vielen dank schon mal im voraus

Ich denke, das Problem liegt im Modus w+. Dieser löscht den gesamten Dateiinhalt und du kannst nichts daraus lesen (ich bin mir nicht sicher, ob das tatsächlich so funktionieren soll).

Ich würde außerdem empfehlen, nicht jede Zeile in einer eigenen Variable zu speichern, sondern die Variable text jeweils zu erweitern über

$text .= "\n".fgets($datei);

(so oft verwenden, wie du Zeilen auslesen magst (schöner wird's über eine Schleife)) und am Ende nur einmal in die Datei zu schreiben, weil dann ja der gesamte Inhalt in der Variable text gespeichert ist. Außerdem kannst du dann alle Texte über die gleiche Variable ausgeben lassen.
vor langer Zeit

PHP: Wie kann ich einen Linktext aus Ausgaben aus der DB machen? (Originalfrage versehentlich gelöscht).

Du musst eigentlich nur dem echo-Befehl genau das übergeben, was du auch ausgegeben haben magst. Wenn du also <href="LINK" target="_self">LINKTEXT</a> haben magst, setzt du das so zusammen:
echo "<a href=\"",$row->link,"\" target=\"_self\">",$row->linktext,"</a>";
Oder, Schritt für Schritt:
echo "<a href=\"";
echo $row->link;
echo "\" target=\"_self\">";
echo $row->linktext;
echo "</a>";
Im ersten Fall werden die "normalen" Textteile von den Variablen-Teilen durch Komma getrennt, beim zweiten Mal wird jedes Mal ein eigener echo-Befehl ausgegeben - in jedem Fall werden die normalen Texte in Anführungszeichen gesetzt, die eigentlichen Anführungszeichen mit einem Backslash maskiert und die Variablen ohne Anführungszeichen angegeben. Nimm einfach die Methode, die für dich besser verständlich ist.
Am Ende würde sich dann noch ein Zeilenumbruch oder ähnliches anbieten, damit der nächste Link nicht direkt daran angeschlossen wird.
vor langer Zeit

PHP: emm.. ich haette da mal eine kleine frage,wuerde gerne wissen wen ich in einen arrey datein aus der db ausgebe wie z.b moechte ich die commente von meinen usern ausgeben und dan die moeglichkeit wen ein komment von MIR ist das ich mein komment jeder zeit loschen kan wie kan ich es machen das ich MEIN komment losche den bis jetz loscht sich immer entweder das letze oder das erste komment. hier mein code,vlt hilft es dir mehr micht zu verstehen: $query = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 5"); while($row = mysql_fetch_assoc($query)){ $comment_id = $row['id']; $post_id = $row['postid']; $post_firstname = $row['firstname']; $post_lastname = $row['lastname']; $post_date = $row['date']; $post_avatar = $row['avatar']; $post_news = $row['comment']; echo(" <div id='post' style='background-image:url(../images/info_background.png);'> Posted by: <img src='$post_avatar' height='50' width='50'> $post_firstname $post_lastname at: $post_date<p/> <b>$post_news</b><br/> <hr> <form action='user_login.php' method='post'> <input type='submit' name='commentbtn' id='commentbtn' value='Comment' style='background-image:url(images/info_background.png); border:0px;' /> <input type='submit' name='deletebtn' id='deletebtn' value='Delete' style='background-image:url(images/info_background.png); border:0px;' /> </form> </div><p/> "); } if($_POST['deletebtn']){ mysql_query("DELETE FROM news WHERE id='$comment_id'"); } else echo(""); Dankeschoen schonmal im vorraus.

Du weist die Datenbank an, den Datensatz mit der id, die in der Variable comment_id gespeichert ist zu löschen. Um den Fehler zu finden, musst du dir erstmal überlegen, woher diese Variable kommt. In deinem Fall sind das die aus der Datenbank ausgelesenen Werte; da deine Lösch-Aktion nach der DB-While-Schleife kommt, ist diese Variable also ganz einfach mit dem letzten Wert, den die Schleife ausgegeben hat, gefüllt. Das was du löschst hat also überhaupt keine "Verbindung" zu dem Datensatz, bei dem du den Löschen-Button gedrückt hast.
Du musst in deinem Formular angeben, welcher Datensatz es ist, den du gerade "bearbeiten" (also in deinem Fall löschen) möchtest. Es gibt dafür nicht sichtbare Formularfelder, mit denen du dann die ID übergeben kannst.
vor langer Zeit

PHP: Hallo, ich wollte gerade mal ihren Kalender realisieren. Bei mir kommen jedoch immer jedemege Fehlermeldungen dieser art. Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in E:\xampplite\htdocs\kalender.php on line 5 Wo kann der Fehler liegen. Das Skriot habe ich von ihrem Beispiel Kalender übernommen.

Das liegt an einer nicht gesetzten Zeitzone in XAMPP. Wie in der Fehlermeldung beschrieben, kannst du es über zwei Methoden abstellen:
1. In der php.ini die Zeitzone setzen mit date.timezone = "Europe/Berlin" - danach bitte Apache neu starten.
2. Direkt in der PHP-Datei mit date_default_timezone_set("Europe/Berlin"); - das funktioniert aber erst ab PHP 5.1 und führt bei älteren PHP-Versionen zu einer Fehlermeldung (lässt sich aber über eine if-Abfrage mit function-exists abfangen).
vor langer Zeit

PHP: Hallo Claudia, ich habe zur Zeit ein HTML-Formular, dass Dtane per POST an eine folgende Seite weiterschickt. Ich möchte an die POST-Zielseite aber innerhalb der action= Zeile im Formular auch noch GET Daten anhängen. Wie ist das zu realisieren? Viele Grüße

Einfach bei action im Formular nicht nur den Dateinamen übergeben, sondern auch die Get-Variablen - so, wie du das auch bei einem normalen Link machen würdest.
vor langer Zeit

PHP: Hallo ich habe gerade mit dem Tutorial angefangen und habe das Beispiel mal in eine Php Datei kopiert. <?php if($user == "Claudia") { echo "Bist du Cloud?"; } else { echo "Also Cloud bist du sicher nicht!"; } ?> und als Formular: <form action="form2.php" method="post"> <input type="text" size="17" name="user"> <input type="submit" value="OK"> </form> Wenn ich aber jetzt in dem Formular Claudia eingebe, dann kommt trotzdem immer der else Zweig als Ausgabe. Warum das kann doch eigentlich nicht möglich sein.

von Jenny
Da du das ganze über ein Formular machst, würde ich mal darauf tippen, dass es deswegen nicht funktioniert, weil du die Variable $user überprüfst, anstatt $_POST["user"] (siehe auch Variablen übergeben).
Falls das nicht das Problem ist (und allgemeiner Tipp bei solchen Problemen): Einfach mal die Variable, die überprüft wird per echo ausgeben lassen, dann fällt es einem meistens direkt auf.
vor langer Zeit

PHP: Hallo, ich habe ein Array[] mit folgendem Inhalt: 1,2,4,3,2,3,1,2 usw. Nun möchte ich wissen, wieiviele 1sen, 2en, 3en usw. in diesem Array sind. Das Spektrum der Zahlen ist von Fall zu Fall anderes (Umfrage). Wie kann ich das machen?

von Fabian Gruber
Dafür gibt es die Funktion array_count_values, die genau das macht. Die Werte und ihre Häufigkeit werden dann als Array zurück gegeben und können dementsprechend weiter verwendet werden. Mehr Infos auf php.net.
vor langer Zeit

PHP: Hallo kannst du mal bitte Kontrollieren ob des auf meinem Server überhaupt geht? http://reckel.eu/test/notizen2/i.php bei mir wird immer ausgegeben: "Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/webb/71/67/52608167/htdocs/test/notizen2/Login.php:9) in /mnt/webb/71/67/52608167/htdocs/test/notizen2/Login.php on line 13" hier mein Quelltext: "<?php $_POST[Benutzername] = $username; session_start(); $_SESSION["berechtigter_User"] = 1; $_SESSION["Username"] = $username; ?>" die Variable $username ist in dem Dokument auch wirklich mit einem Namen belegt... (das habe ich bereits kontrolliert) Grüße Marcel

von Marcel
Marcel, wie soll ich bitte kontrollieren, ob irgendetwas auf deinem Server funktioniert?

Die Fehlermeldung sagt dir aber schon, wo das Problem liegt: Zum einen funktioniert der Aufruf von session_start() nicht und der Grund dafür ist, dass "headers already sent", spricht deine Datei hat bereits (Header-)informationen an den Browser übertragen. Das passiert immer dann, wenn du vor dem Befehl session_start() irgendetwas ausgibst, weswegen man das normalerweise direkt an den Anfang der Datei schreibt.
vor langer Zeit

PHP: Es handelt sich dabei um einen Formmailer. Ich habe ein Eingabefeld erstellt, in das ein Link eingegeben werden soll. In der Vorschau des abgesendeten Links wird dieser gar nicht angezeigt: Name wcgrtg eMail dwrf@rfgce.de Kategorie PC Notdienst Homepage www.xyz.de Backlink -- Hier müsste der Linkcode stehen So sollte er aussehen: <a href="" title=""></a> Wenn die Mail ankommt, wird die Eingabe zwar angezeigt, aber maskiert: Backlink............: <a href=\"\" title=\"\"></a>

von Uwe
Dich stört also gar nicht das a href, sondern die Backslashes? Das hat nichts damit zu tun, dass es sich um einen Link handelt, sondern liegt einfach an den Anführungszeichen, die von PHP maskiert werden. Stripslashes (Stück runter scrollen) hilft dir in dem Fall weiter.
vor langer Zeit

PHP: Hallo Frau Unkelbach, ich bekomme bei Datum&Uhrzeit auf deutsch die englische Variante angezeigt, obwohl im Code de_DE vorkommt. Woran kann das liegen ? Hier das Script <? setlocale(LC_TIME, "de_DE"); echo "Heute ist ein "; echo strftime("%A"); echo " im "; echo strftime("%B"); echo ". Und zwar der "; echo strftime("%x"); ?> MfG B.Drefert

Das liegt an den Servereinstellungen. Sie können es noch mit einer der folgenden Varianten (jeweils anstatt de_DE) probieren:
deutsch
german
de_DE.iso88591
de_DE.iso885915.euro
de_DE.utf8
de_DE.utf8.euro
de_DE.euro

Außerdem gibt es das alles theoretisch auch noch mit de_AT, de_BE, de_CH und de_LU. Leider gibt es keine garantierte Version und auf einem anderen Server können wieder andere funktionieren.
vor langer Zeit

PHP: Liebe Frau Unkelbach, ich habe Ihr Buch erworben und heute damit begonnen. Auf Seite 32 werden die Variablen per URL vergeben. Ist "test.php" eine extra Datei, die ich anlegen muß ? Und was muß da genau drin stehen ? Ich habe jetzt verschiedene Variantien probiert <?php test.php?Vorname=Britta&Nachname=Drefert ?> <?php echo "Vorname: ", $_GET["Vorname"]; echo "<br>"; echo "Nachname: ", $_GET["Nachname"]; ?> test.php?Vorname=Britta&Nachname=Drefert <?php echo "Vorname: ", $_GET["Vorname"]; echo "<br>"; echo "Nachname: ", $_GET["Nachname"]; ?> und das ganze in zwei Dateien gesplittet, komme aber nicht zum Ergebnis ... Mit freundlichem Gruß Britta Drefert

Es handelt sich hierbei um die Übergabe via URL, Sie rufen also über die Adresszeile Ihres Browsers die URL einer Datei auf, in der Sie dann Variablen verwenden. Erst durch diesen Aufruf über den Browser stehen Ihnen die Variablen auch zur Verfügung und auch das nur in der Datei, die sie ansprechen - im Beispiel also test.php

Sie benötigen also eine Datei test.php in der Sie - wie im Beispiel erwähnt die Variablen verwenden, indem Sie in die Datei
<?php
echo "Vorname: ";$_GET["Vorname"];
echo "
";
echo "Nachname: ",$_GET["Nachname"];
?>
schreiben.

Rufen Sie jetzt einfach nur die Datei test.php auf, wird Ihnen lediglich
Vorname:
Nachname:
angezeigt werden, da die beiden Variablen nicht in der Datei mit einem Wert gefüllt werden, sondern über Ihren Aufruf über die Adresszeile. Erst wenn Sie die Datei also über test.php?Vorname=Britta&Nachname=Drefert aufrufen, wird dort korrekt
Vorname: Britta
Nachname: Drefert
stehen können.
vor langer Zeit

PHP: HalloClaudia, ich habe mich mal an einer Blätterfunktion probiert aber irgendwie funktioniert sie nicht. Ich kann einfach nicht weiter als seite 2 klicken obwohl die Berechnungen stimmen wehre dir sehr verbunden wenn du mir dieses Phänomen erklären könntest Liebe Grüße Petra <?php $seite = $_REQUEST['seite']; if($seite == '') { $seite = 1; } $zeigen = 5; $anfang = ($seite - 1) * $zeigen + 1; $ende = $anfang + $zeigen - 1; $gesamt = 18; echo "Seite:".$seite."<br>"; if ($seite == 1) { echo" zurück "; } else { $seite--; echo "<a href='test.php?seite=".$seite."'> zurück </a>"; } echo " <==> "; if ($ende >= $gesamt) { echo" weiter "; } else { $seite++; echo "<a href='test.php?seite=".$seite."'> weiter </a>"; } ?>

Dieses Phänomen liegt an deinen if-Anweisungen bzw. dem, was du darin tust.

In der ersten if-Anweisung reduzierst du die Variable $seite um 1 (sofern sie nicht bereits 1 ist), in der zweiten erhöhst du sie dann wiederum um 1. Das führt aber dazu, dass sie nach der Erhöhung nicht 1 größer als am Anfang ist - was sie aber sein müsste, um im Link auf die nächste Seite zu verweisen -, sondern genauso groß. Auf Seite 2 verlinkst du also nicht auf Seite 3, sondern wiederum auf Seite 2, auf der du ja bereits bist.

Ich würde um auf die Seitenanzahl für die Links zu kommen, nicht die Variable selbst erhöhen, sondern nur etwas anderes via echo ausgeben. Dafür die einzelnen Teile nicht via Punkt, sondern mit Komma trennen und direkt $seite+1 (bzw. -1) schreiben, also so:

echo "<a href='test.php?seite=",$seite-1,"'> zurück </a>";
echo "<a href='test.php?seite=",$seite+1,"'> weiter </a>";

Die In- bzw. Dekrementierung dann natürlich löschen. Der eigentlich Wert der Variable bleibt dann bestehen.
vor langer Zeit

PHP: Liebe Claudia, ich hab eine Frage an dich. Die ist. Ich will mit PHP eine Fehlermeldung programmieren, aber ich weiß nicht wie. Ich muss ein Formular erstellen. Wenn ich aber nichts z.B. als Name eingebe, dann soll eine Fehlermeldung erscheinen, wo z.B. steht "Der Name fehlt!". Ich wäre idr sehr dankbar, wenn du mir helfen könntest. MfG Ahmet Bilgic

von Ahmet Bilgic
Du brauchst zunächst eine if-Abfrage, die überprüft ob dein Formular Daten aus dem entsprechenden Feld übergeben hat, also ob sich in der POST-Variable Daten befinden. Sollte das nicht der Fall sein, gibst du via echo deine gewünschte Fehlermeldung aus, falls die Daten aber übergeben wurden, lässt du sie verschicken/eintragen/etc. Also ganz schlichtes if-else-Konstrukt.

Wenn du die Fehlermeldung an einer anderen Stelle ausgeben magst, als sich die if-Abfrage befinden soll, kannst du die Fehlermeldung natürlich auch in einer Variable speichern, oder über Fehlercodes arbeiten (also eine Zahl als Fehlercode zuweisen und später z. B. mittels switch den Fehlercode auslesen und eine entsprechende Fehlermeldung ausgeben).

Wenn du das für mehrere Felder einsetzen möchtest, kannst du entweder eine if-Abfrage machen, die über OR verknüpft und dadurch überprüft, ob mindestens eines der Felder nicht gefüllt war oder mehrere if-Abfragen ausführen lassen. Bei der ersten Variante kannst du danach allerdings nicht direkt sagen, welches Fehld nicht ausgefüllt war.
vor langer Zeit

PHP: Hallo Claudia. Ich habe in einer php Datei eine Variable angelegt und möchte diese gern in einer HTML Datei über <? echo $variable ?> auslesen. Woher weiß die HTML Datei aus welcher php Datei die Variable zu holen ist? Verzweifel langsam...)-: Für eine Antwort wäre ich sehr dankbar. Viele Grüße Andy

von Andy
Deine HTML-Datei wird schon Schwierigkeiten damit haben, den echo-Befehl überaupt auszuführen. Im Normalfall sind Server so eingestellt, dass sie bei HTML-Dateien PHP überhaupt nicht umsetzen.
Wenn du etwas aus einer anderen Datei etwas einbinden möchtest, hast du grundsätzlich die Möglichkeit über das Auslesen von Dateien oder über Includes zu arbeiten.

Ich weiß nicht, was genau du vorhast, aber ich würde wahrscheinlich Includes verwenden. Dabei hast du dann allerdings alles, was in der Include-Datei steht auch in deiner anderen Datei, in wie weit das erwünscht ist, weiß ich natürlich nicht.
vor langer Zeit

PHP: Hallo Claudia, ganz herzlichen Dank für Deine schnelle Antwort auf meine Frage von gestern bezüglich der Aktualisierung von mehr als einem Satz einer Datenbank über eine Tabelle. Sorry, ich glaube, ich habe mich nicht exakt ausgedrückt. Daher hier der Code: <blockquote> <p>&nbsp;</p> <table border="0" width="90%" id="table1"> <tr> <td align="left" valign="top" width="010"><font face="Arial" size="3"><b>Datum Beginn</b></font></td> <td align="left" valign="top" width="010"><font face="Arial" size="3"><b>Datum Ende</b></font></td> <td align="left" valign="top" width="010"><font face="Arial" size="3"><b>Zeit</b></font></td> <td align="left" valign="top" width="050"><font face="Arial" size="3"><b>Inhalt</b></font></td> <td align="left" valign="top" width="050"><font face="Arial" size="3"><b>Veranstaltungsort</b></font></td> </tr> <font face="Arial"> <?php $sql = mysql_query("SELECT * FROM kalamtsanzin WHERE ingkw LIKE '$vw' ORDER BY ingkw, ingkwf, ingkjahr"); while ($ds = mysql_fetch_object($sql)) { $vw1 = $ds -> ingkw; $vwf1 = $ds -> ingkwf; $vj1 = $ds -> ingkjahr; $sw1 = $ds -> ingkwfs; $vda1 = $ds -> ingamb; $dats1 = $ds -> ingdates; $date1 = $ds -> ingdatee; $zeit1 = $ds -> ingzeit; $was1 = $ds -> ingwas; $wo1 = $ds -> ingwo; $was11 = trim($was1); $wo11 = trim($wo1); echo "<tr><td align=left valign=top width=012>", "<font face=Arial size=3>", "<textarea wrap=virtual name=dats1 cols=12 rows=1>", $dats1, "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=012>", "<font face=Arial size=3>", "<textarea wrap=virtual name=date1 cols=12 rows=1>", $date1, "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=007>", "<font face=Arial size=3>", "<textarea wrap=virtual name=zeit1 cols=07 rows=1>", $zeit1, "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=50>", "<font face=Arial size=3>", "<textarea wrap=virtual name=was1 cols=50 rows=4>", $was11, "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=50>", "<font face=Arial size=3>", "<textarea wrap=virtual name=wo1 cols=50 rows=4>", $wo11, "</textarea>", "</font>", "</td>", "</tr>"; }; $fehler = mysql_error(); if (!empty($fehler)) {echo "<b> Es trat ein Fehler auf. Die Datenbank Kalender konnte nicht ausgelesen werden, ADMIN benachrichtigen! </b> MySql meldet: <br><b> $fehler</b>"; exit;} mysql_Close($dz); echo "<tr><td align=left valign=top width=012>", "<font face=Arial size=3>", "<textarea wrap=virtual name=dats1 cols=12 rows=1>", 'Datum Beginn', "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=012>", "<font face=Arial size=3>", "<textarea wrap=virtual name=date1 cols=12 rows=1>", 'Datum Ende', "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=010>", "<font face=Arial size=3>", "<textarea wrap=virtual name=zeit1 cols=07 rows=1>", 'Uhrzeit', "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=50>", "<font face=Arial size=3>", "<textarea wrap=virtual name=was1 cols=50 rows=4>", 'Inhalt', "</textarea>", "</font>", "</td>"; echo "<td align=left valign=top width=50>", "<font face=Arial size=3>", "<textarea wrap=virtual name=wo1 cols=50 rows=4>", 'Ort', "</textarea>", "</font>", "</td>", "</tr>"; ?> </table> </blockquote> Das Problem liegt nun darin, dass alle Inhalte zwar angezeigt werden, ich aber nicht auf die Reihe bekomme, wie ich jetzt nach dem submit alle Sätze auf einmal (klar, durch abarbeiten in einer Schleife) in die Datenbank bekomme. Weil ja die Input-Namen immer gleich heißen. Ich müsste also inizieren. Aber wie?.... Vielleicht kannst Du mir helfen. Ich habe nur den Code-Teil geschickt, der der Datenbankanzeige dient. Submit, und Post- oder Get-Variablen sind mir vom Prinzip zwar klar, aber eben nicht das Abarbeiten mehrerer Sätze aus einer Tabelle.

von Hartmann
Ich weiß nicht, ob es wirklich die schönste/sauberste Lösung ist, aber ich würde - wie du es ja auch vorhast - mit unterschiedlichen Zahlen bzw. Zählvariablen je Datensatz arbeiten.

Vor deiner while-Schleife legst du die Zählvariable fest und weist ihr den Wert 1 zu (kann auch 0 - oder etwas anderes - sein, aber die 1 ist für Menschen meistens der logischere Zählbeginn), als einfach nur $zaehler = 1; Bei der Ausgabe der einzelnen Felder verwendest du dann diese Variable, um die Feldnamen unterscheidbar zu machen, also z. B. echo "blabla name=dats",$zaehler," blabla"; Am Ende der while-Schleife erhöhst du dann die Variable mit $zaehler++; um 1, so dass sie im nächsten Schleifendurchlauf um 1 höher ist. Dein Feld heißt dann also für den ersten Datensatz dats1, für den zweiten dats2 usw.

Beim Eintragen kannst du dann ähnlich vorgehen. Du verwendest auch dort eine Zählvariable (oder eine for-Schleife, die ja ohnedies eine solche hat). Um die einzelnen Formularfelder zu bekommen, musst du dann mit variablen Variablen arbeiten, deine Namen also zusammen setzen, der Zugriff auf eine Get-Variable sieht dann z. B. so aus: $_GET["dats$zaehler"], was zu $_GET["dats1"], $_GET["dats2"] usw. wird, je nach Schleifendurchlauf.

Das Eintragen in die DB erfolgt dann ganz normal, über diese Variablen (die du natürlich auch vorher noch überprüfen/ändern/etc. kannst.
vor langer Zeit

PHP: Hallo Claudia, in vielen Dingen hat mir Dein Tutorial geholfen. Jetzt habe ich aber ein Problem, vielleicht kannst Du mich gedanklich auf den richtigen Weg bringen. Ich gebe mehrere Sätze aus einer Datenbank aus und bringe diese zur Anzeige. Iimmer dann, wenn im 1. Teil des Schlüssels die zu bearbeitende Kalenderwoche steht (im zweiten Teil des Schlüssels steht ein Folgenummer). Die zugehörigen Texte (Veranstaltungshinweise und Ort etc) werden überschreibbar angezeigt (in einer tabelle). Das klappt auch alles ganz wunderbar. Nur das mit dem anschließenden zurückschreiben.... Keine Ahnung wie ich bei der Ausgaben die entsprechenden input-namen hochzählen kann um mit den entsprechenden post-variablen dann in den update zu gehen (die Ausgabe erfolgt ja bei mir ganz einfach mittels while nach vorgehendem select mittels when, da dürfte mein Denkfehler liegen). Kannst Du mir einen Denkanstoß geben? Vielen Dank

von Hartmann
Ich kann dem leider nicht entnehmen, wie deine Inputnamen aussehen sollen, wenn es dir aber nur darum geht, innerhalb der Schleife hochzuzählen, solltest du vor der Schleife eine Zählvariable festlegen und dann in der Schleife einfach mit $variablenname++; hoch zählen. Mit dieser Variable könntest du dann deine Inputnamen zusammen setzen.

Alternativ könntest du auch einfach den Schlüssel als Teil des Namens verwenden?

Ich bin mir leider nicht sicher, ob ich dein Problem richtig verstanden habe.
vor langer Zeit

PHP: Hi Claudia, ich habe da mal ein Problem und hoffe du kannst mir helfen... Mein Script: $body .= "EMAIL: ".$_REQUEST['EMAIL']." \n"; $body .= "Stadt: ".$_REQUEST['Stadt']." \n"; -->$recipient = "newsletter@meinedomain.de"); $subject = "Eintragen"; $location = "index.html"; $email = $_REQUEST['EMAIL'] ; mail( $recipient, $subject, $body, "From: $EMAIL" ) or die ("Mail could not be sent."); header( "Location: "index.html" ); Folgendes Problem: in der Markirten Zeile "-->" befidnet sich das problem. leider reicht die eine newsletteradresse nicht auch, sodass ich diese aus der "$Stadt" und der newsletteradresse ".newsletter@meinedomain.de" zusammensetzen möchte. Das script soll also nicht jedes formular an ein und die selbe mailadresse senden. Der abonnent möchte den newsletter für Berlin empfangen, also soll das script das formular an "berlin.newsletter@meinedomail.de" senden.

von Benjamin aus Berlin
Du kannst Variablen mit Punkten zusammen setzen. Also z. B. $recipient = $_REQUEST['Stadt'].".newsletter@meinedomain.de"

Wie üblich der Hinweis: Wenn die Daten aus einem Formular kommen, können sie unsicher sein und es bietet sich an, sie - bevor sie eingesetzt werden - zu überprüfen.
vor langer Zeit

PHP: Hi Claudia, einmal angenommen, meine webseite soll alle 5min die Datei hallo.php includieren, wenn in einer Datenbank ein Wert auf 0 ist und diesen Wert auf 1 setzen. Wie würde das gehen? Das mit der Datenbank bekomm ich hin nur die Regelmäßigkeit, das geht irgendwie nicht.

von Herry
Wenn du das nur brauchst, während eine Seite geöffnet ist, könntest du es mit einem Reload der Seite lösen. Ist aber nicht gerade schön und auch sehr fehleranfällig.

Ansonsten brauchst du Cronjobs dafür. Wenn dein Hoster die nicht anbietet, gibt es z. B. die Seite Cronjob.de, die habe ich aber nicht getestet und kann daher nichts weiter dazu sagen.
vor langer Zeit

PHP: Hallo, hatte vor meine Website zu erneuern und ein php elemeit einzubringen um zu vermeiden dass immer alles neu geladen wird... Versuchte es mit den mitteln die auf http://schattenbaum.net/php/datei.php beschreiben sind zu meistern. Muss jedoch gestehen dass ich gescheitert bin :( Ich hatte vor: <div id="Inhalt" > <p style="padding-top:40px; padding-left:40px;" > <?php echo "Hallo"; ?> </p> </div> an der stelle von echo "Hallo"; eine oder mehrere variable einzubauen dass sich nur der text je nach link ändert... der inhalt der variable sollte ausgelagert sein, so dass Impressum in einer .html datei und Über mich in einer .html datei gespeichert werden kann Wie mache ich das?

von Marcel
Includes sollten dir weiter helfen. Allerdings kommst du damit nicht vom neu laden weg. Bei PHP wird alles serverseitig bearbeitet, du musst also den Server auch ansprechen, damit sich irgendetwas tut und damit die Seite laden. Wenn du etwas direkt verändern willst, wirst du JavaScript verwenden müssen, bzw. die in Richtung Ajax beschäftigen.
vor langer Zeit

PHP: Hi^^ wenn ich nach ein paar verschachtelten if-Abfragen letztenendes in die Session $_SESSION["e"]=1; speichere, wird die auf einer zweiten Seite nicht angezeigt. Was hab ich falsch gemacht?

von Manuel
Grundsätzlich kann das mehrere Ursachen haben. Wenn die Sessions prinzipiell auf beiden Seiten funktionieren, du auf beiden Seiten die Variable richtig geschrieben hast und dir sicher bist, dass der if-Zweig, in dem deine Variable geschrieben wird, auch angesprochen wird, könnte es noch an dem Variablennamen liegen. Es gibt ein paar Variablennamen, die bei Sessions Probleme machen. Ob "e" dazu gehört, kann ich dir leider nicht sagen.
Grundsätzlich sind die Angaben aber für eine genaue Fehleranalyse nicht ausreichend.
vor langer Zeit

PHP: Hallo php Spezialisten! Wenn ich den folgenden Befehl in body einfüge und diese Datei im gleichen Verzeichnis, wie die index.php ist, funtioniert es. <?php include("linke_box.inc"); ?> Füge ich die Datei in das Verzeichnis: "http://allgemein.daten.de/basis/" ein, also http://allgemein.daten.de/basis/linke_box.inc, komme ich mit dem linkstring, den ich in die index.php Datei einfügen miuss nicht zurecht. <a href="http: http://allgemein.daten.de/basis/linke_box.inc"></a> funktioniert leider nicht. Für die richtige String-Eingabe Zeile wäre ich sehr dankbar. Gruß Martin

von Martin
Verzeichnisübergreifende Includes sind ein bisschen tricky. Links, die in der includierten Datei stehen werden so behandelt, als würden sie in der Datei stehen, in der du die Include-Datei eingebunden hast. Zum Includen musst du das Verzeichnis mit angeben.

Um in index.php also die Datei aus dem Unterverzeichnis basis einzubinden, verwendest du include("basis/linke_box.inc"), um in der Datei linke_box.inc einen Link außerhalb des Unterverzeichnisses aufzurufen, gibst du einfach den Namen an. Wenn du aber eine weitere Datei im Unterverzeichnis aufrufen möchtest, musst du dieses wiederum mit angeben also über "basis/Dateiname".
vor langer Zeit

PHP: hallo. Erst einmal ein kompliment für diese tolle seite. dann zu meiner frage ... ist es möglich die IF-anweisung in eine schleife einzubauen ? so dass man quasi schon bestimmte bedingungen festlegt, um so die schleife zu "vereinfachen" ? wäre sehr dankbar um eine antwort.morgen steht die klausur an :/ liebe grüße

von N1899
Mir ist nicht klar, was du dir genau vorstellst. Schleifen an sich haben ja schon Bedingungen. Ansonsten kannst du innerhalb einer Schleife (fast?) alles machen, was du auch außerhalb kannst.
vor langer Zeit

PHP: Hab ich das richtig verstanden, alle Variablen, welche man über ein Formular in html erstellt hat, (<input name="beispiel" size=6>) kann man diese über $_POST["beispiel"] über echo ausgeben oder auch in dieser Form weiterverwenden?

Wenn du im Formular als "method" post verwendest, ja.

Sinnvoll ist es, die übergebenen Formulardaten zu überprüfen und es kann die spätere Verwendung erleichtern, wenn du sie in "normale" Variablen schreibst (also wieder in $beispiel).
vor langer Zeit

PHP: <?php $string = " Webapplikation "; echo trim($string) ; echo ltrim($string); echo rtrim($string); ?> Wie kann ich einen zeilenumbruch bekommen?

Wo magst du denn den Zeilenumbruch haben? Zwischen den einzelnen echos? Dann einfach nur dazwischen echo "<br>"; bzw. XHTML konform echo "<br />"; schreiben. Wenn du innerhalb deines Strings Zeilenumbrüche haben magst, ist das allerdings ein bisschen komplizierter. In dem Fall könntest du zB mit Wordwrap Zeilenumbrüche nach einer bestimmten Zeichenanzahl erzeugen (siehe auch php.net).
vor langer Zeit

PHP: hallo:), ich hätte da mal ne Frage: Wie kann man von dem letzten Wert eines Arrays den ersten abziehen? schon mal danke lg

Vielleicht verstehe ich die Frage falsch, aber du musst einfach nur den ersten und den letzten Wert abfragen und dann voneinander subtrahieren. Um den ersten Wert zu bekommen, verwendest du am besten $Name_des_Arrays[0], für den letzten Wert würde ich end($Name_des_Arrays) benutzen. Alles zusammen sieht dann zB so aus:
$ergebnis = end($Name_des_Arrays) - $Name_des_Arrays[0];
vor langer Zeit

PHP: PHP: Hallo Claudia. Weiter unten hier in den FAQ´s hat schon ein Sven dir eine Frage gestellt. Genau das Problem habe ich auch. Die Frage lautete wie folgt:

PHP: Hallo Claudia, Es gibt ja Seiten mit einem solchem System: http://dsforen.de/index.php?index=start (Startseite) und z.B. http://dsforen.de/index.php?index=impress ist dann das Impressum. Wie geht sowas? Und wie nennt man das? Also ich meine das: "index.php?x=x" Über eine Antwort würde ich mich Sehr freuen, Sven

So jetzt zu meiner Frage. Wie includiere ich das jetzt? Über eine Antwort würde ich mich sehr freuen und wenn ich das erfolgreich gelöst habe würd ich auch gerne was spenden. LG Sindy

von Sindy
Das includieren erfolgt ganz normal über den Befehl include(), wie auch unter Includes beschrieben.

Wenn du also zB index.php?index=impressum hast, dann schreibst du an die Stelle, wo der Inhalt deiner Seite angezeigt wird include($index); und es wird in dem Fall "impressum" eingefügt. Die Endung dafür musst du extra angeben. Dafür gibt es mehrere Möglichkeiten:
1. Du machst direkt index.php?index=impressum.php
2. Du schreibst die Endung beim Include dazu, also include($index.".php").

In jedem Fall ist es sinnvoll, davor noch zu überprüfen, ob das, was includiert werden soll, von dir überhaupt als Include vorgesehen ist. Auch dafür gibt es verschiedene Möglichkeiten. Du kannst zB alle Includes, die funktionieren sollen in ein Array schreiben und dann überprüfen, ob der übergebene Wert im Array vorhanden ist. Oder du arbeitest mit switch und kannst dann noch zusätzliche Informationen (zB Keywords, Überschriften, etc.) bei jeder Seite hinzufügen.

Denke bitte daran, dass du die Variable mit $_GET[$index] aufrufen musst, solange du sie nicht in eine andere Variable schreibst. Die Beispiele oben sind so angelegt, dass die übergebene Variable in die Variable $index geschrieben wurde.
vor langer Zeit

PHP: Hallo. ich möchte eine Zahl Formatieren. Ich kenne das vom Basic i = 2.4 Print format$(i,"##,#0") -> 2,40 also wie kann ich aus $i = 2.4; echo $i; 2,40 oder gar 2,400 anzeigen lassen alos sogar mit Deutschen Dezimal Komma. Danke

von Ralf
In PHP gibt es dafür number_format(zu formatierende Zahl, Anzahl der Dezimalstellen, Dezimaltrennzeichen, Tausendertrennzeichen). Wenn man nur die zu formatierende Zahl angibt, wird sie ohne Nachkommastellen angezeigt. Als Dezimaltrennzeichen wird standardmäßig ein Punkt verwendet, als Tausendertrennzeichen ein Komma. Wenn du ein Dezimaltrennzeichen angibst, musst du auch ein Tausendertrennzeichen angeben, sonst funktioniert nichts.
In deinem Fall würde das also so ausschauen: echo number_format($i, 2, ",", ".");
vor langer Zeit

PHP: <?php $pseudoName = "mann"; $mann = 1000; echo "$$pseudoName"; ?> Was ist hieran falsch? (ich will zum Schluss im script die Zahl 1000 sehen)

von florentin
Probier's mal ohne die Anführungszeichen beim echo :-)
vor langer Zeit

PHP: moin moin, ich habe ein kleines formular script geschrieben... soweit funktioniert es auch, nur allerdings wollte ich, dass wenn man auf den button zurücksetzen klickt, dass der inhalt der angelegten datei die dann erzeugt wurde auch gelöscht wird, nur der inhalt nicht die ganze datei... mit unlink funzt das nicht, da ich ja nicht die ganze datei löschen möchte, sondern nur das, was der "user" eingegeben hat.

von Mario
Fürs Leeren der Datei würde ich einen Dateimodus wählen, der den Dateizeiger an den Anfang setzt und dann etwas in die Datei schreiben lassen. Wenn es nicht mit einem leeren String funktioniert, notfalls ein Leerzeichen.
vor langer Zeit

PHP: Hallo Ich hätte da ne Frage. Ich bräuchte 5 verschiedene Zufallszahlen in einem Array. Das mit den Zufallszahlen kenne ich (rand, mt_rand) doch wie ich es schaffa am einfachsten 5 verschiedene zu bekommen verstehe ich nicht ganz. vielleicht kani mir jemand helfen.

von Fabian Kaiser
Du musst bevor du die Zufallszahlen ins Array schreibst überprüfen, ob sie schon im Array vorhanden sind. Der Befehl dazu nennt sich in_array.
vor langer Zeit

PHP: Hallo, Claudia. Ich habe mit Hilfe einer deiner Tutorials ein Formular gecoded, das Daten in meine MySQL Datenbank eintragen kann. Funktioniert alles super, nur ein Problem habe ich: Wenn ich die Seite aufrufe, wird automatisch ein leerer Datensatz in die Tabelle eingetragen. Weißt du vielleicht, was ich falsch gemacht habe? Das Formular an sich sieht so aus: <form method="post"> <p>Titel:</p> <input type="text" size="17" name="titel"> <p>Inhalt</p> <textarea cols="80" rows="20" name="inhalt"> Bitte gebe hier den Inhalt ein </textarea><br /> <input type="submit" value="Absenden"> </form> Ich vermute mal, es liegt daran, weil ich oben beim form-Tag kein action="" angegeben habe, denn, als ich auf eine Datei verlinkt habe, in der schlicht und ergreifend "Daten wurden abgesendet" stand, hat es gar nichts eingetragen (nur die auto-increment ID des Datensatzes, aber das habe ich nicht beim Formular selbst eintragbar gemacht). Falls es daran liegt, könntest du mir dann sagen, ob ich da auf etwas spezielles verlinken muss oder eben was ich da generell falsch gemacht habe? Danke schon mal.

von Sascha
So wie das für mich aussieht lässt du die Daten mit der gleichen Datei eintragen, in der auch dein Formular steht. Daher hat es auch nicht funktioniert, einfach eine Datei mit "Daten wurden gesendet" durch das Formular aufrufen zu lassen. In der Datei stand ja eben nur darin, dass die Daten gesendet wurden, aber du hast in dieser Datei nichts in deine Datenbank geschrieben. Das gleiche ist auch schuld daran, dass die Daten auch beim leeren Aufrufen der Formulardatei in deine Datenbank geschrieben werden.
Du kannst das jetzt auf zwei verschiedene Arten lösen:
1. Du arbeitest über eine zweite Datei, die du dann über action aufrufst. Erst in diese zweite Datei schreibst du die Befehle, über die die Datenbank gefüllt wird.
2. Du bleibst bei deiner Ein-Dateien-Variante, prüfst aber, bevor du etwas in die DB schreiben lässt, ob das Formular überhaupt Inhalte besitzt, die es sich hineinzuschreiben lohnen.
Welche der beiden Lösungen du wählst ist in erster Linie eine persönliche Vorliebe. Ich würde dir allerdings in beiden Fällen dazu raten, zuerst die aus dem Formular übernommenen Inhalte zu prüfen, bevor du sie in deine DB schreibst, auch wenn du mit zwei Seiten arbeitest.
vor langer Zeit

PHP: Hallo Claudia, ich bin noch Anfänger und habe Probleme mit dem Datum das auf griechisch ausgegeben werden soll. Leider weiß aber nicht wo und wie ich dieses array einfüge. <? mysql_query("SET NAMES utf8"); mysql_query("SET lc_time_names = 'ell', 'greek'"); $months = date("n"); $months = array(1=>"&#921;&#945;&#957;&#959;&#965;&#940;&#961;&#953;&#959;&#962;", 2=>"&#934;&#949;&#946;&#961;&#959;&#965;&#940;&#961;&#953;&#959;&#962;", 3=>"&#924;&#940;&#961;&#964;&#953;&#959;&#962; ", 4=>"&#913;&#960;&#961;&#943;&#955;&#953;&#959;&#962;", 5=>"&#924;&#940;&#953;&#959;&#962;", 6=>"&#921;&#959;&#973;&#957;&#953;&#959;&#962;", 7=>"&#921;&#959;&#973;&#955;&#953;&#959;&#962;", 8=>"&#913;&#973;&#947;&#959;&#965;&#963;&#964;&#959;&#962;", 9=>"&#931;&#949;&#960;&#964;&#941;&#956;&#946;&#961;&#953;&#959;&#962;", 10=>"&#927;&#954;&#964;&#974;&#946;&#961;&#953;&#959;&#962;", 11=>"&#925;&#959;&#941;&#956;&#946;&#961;&#953;&#959;&#962;", 12=>"&#916;&#949;&#954;&#941;&#956;&#946;&#961;&#953;&#959;&#962;"); $event = intval ($_GET["feier"]); $id = intval($_GET["id"]); if ($id == 0) $id = 1; $ii = intval($_GET["ii"]); $sql = "SELECT id,g_name,g_text,vorschau, DATE_FORMAT(feier,'%d. %M') AS feier FROM gialtra_feier WHERE MONTH(feier) = MONTH(NOW()) ORDER BY feier DESC LIMIT 3"; $rs = mysql_db_query($db, $sql, $cid); ?> <? while ($row = mysql_fetch_array($rs)) { $vorschau = $row["vorschau"]; $name = $row["g_name"]; $id = $row["id"]; $event = $row["feier"]; $months = date("n"); ?><?echo $event;?><? }; ?> Ergebnis zu sehen unter www.gialtra.com

von Renate
Du brauchst zwei verschiedene Variablen. Eine für den Monat als Zahl und einen für das Arrray mit allen Monatnamen. Zur Zeit überschreibst du die Variable $months mehrfach. Am besten also zB $this_month = date("n") setzen und das Array bei $months lassen. Ziemlich am Ende überschreibst du die Variable $months dann noch ein zweites Mal. Dieses Mal wieder mit dem aktuellen Monat. Das kannst du dir eigentlich schenken, weil du den ja schon vorher abgefragt hast.
Zum Ausgeben oder in eine Variable schreiben brauchst du dann nur $months[$this_month] und das war's auch schon.
Alternativ kannst du aber auch mit set_locale arbeiten und das Datum dann mit strftime ausgeben. Griechisch solltest du über set_locale(LC_TIME, 'greek'); bekommen.
vor langer Zeit

PHP: Hallo, es funktioniert nicht. Weiß jemand Rat? Ich habe ein Formular das die Variable $name an mein PHP-Script suche.php schickt. In diesem ist folgender Quell-Text <?php $abfrage = "SELECT * FROM Name der Tabelle WHERE eins = '$name'"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "<p>$row->id, $row->eins, $row->zwei, $row->drei, $row->vier, $row->fuenf, $row->sechs, $row->sieben, $row->acht, $row->neun"; } ?> und das Ergebnis ist, dass nix ausgegeben wird. Die Datenbank ist bei Strato. Fordere ich den Inhalt einer bestimmten Zelle an, z.B. <?php $abfrage = "SELECT eins FROM Name der Tabelle"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "$row->eins"; } ?> dann klappt es. Dann werden alle Zellen eins ausgegeben. Kann mir jemand helfen?

von Geronimo
Ich würde mal sagen, du hast ein Problem bei der Übergabe der Variable. Entweder du hast einen Tippfehler im Variablennamen bzw. im Formularfeldnamen, oder du musst mit $_POST['name'] arbeiten. Aber lies dir am besten mal Variablen übergeben durch.
vor langer Zeit

PHP: Hallo Claudia, Deine Seite ist einfach nur Spitze. Sicherlich kannst du mir helfen. Ich möchte das Ergebnis einer IF Abfrage in einer Variablen speichern bzw. ablegen. Wenn du helfen könntest wäre sehr nett. mfg. andpre

von andpre
Du musst dafür nur in der if-Abfrage (innerhalb der geschweiften Klammern, nicht in der zu überprüfenden Bedingung) der Variable deiner Wahl den gewünschten Wert zuweisen. Wenn du den Wert auch auf anderen als der eigentlichen Seite brauchst bieten sich Sessions an, oder alternativ auch eine dauerhafte Speicherung in einer Datenbank.
vor langer Zeit

PHP: Ich habe ein Bestell-Formular und möchte dass der Kunde eine Kopie erhält. Wie geht das?

von Alexander Kerker
Entweder über Mail-Header und Bcc arbeiten, oder zweimal die Mailfunktion aufrufen und einmal die Mail an den Kunden schicken.

Ich würde die zweite Variante verwenden, da du damit auch eine alternative Mail an den Kunden schicken kannst, zB mit persönlicher Anrede.
vor langer Zeit

PHP: Ich würde gerne einmal wissen wofür bei der for-Schleife das $i steht. Steht leider nicht in deinem Ratgeber. :-(

Die meisten Programmierer verwenden in for-Schleifen $i als Variablenname für den Zählwert. In meinem Beispiel arbeite ich mit der Variable $counter, da mir das für Anfänger logischer erscheint. Aber egal, wie du die Variable benennst, es ist diejenige, die die Schleifendurchläuft zählt. Du legst in der Vorschleife fest, was der Startwert sein soll, auf welche Bedingung sie überprüft werden soll und dass sie zB hochgezählt werden soll bei jedem Schleifendurchlauf.
vor langer Zeit

PHP: Hi ich würde gerne wissen wie ich aus einer datei zeilenweise auslesen kann !!!!

Aus Dateien wird immer zeilenweise ausgelesen, wie du auch unter Dateien nachlesen kannst.
vor langer Zeit

PHP: Hallo Claudia, Es gibt ja Seiten mit einem solchem System: http://dsforen.de/index.php?index=start (Startseite) und z.B. http://dsforen.de/index.php?index=impress ist dann das Impressum. Wie geht sowas? Und wie nennt man das? Also ich meine das: "index.php?x=x" Über eine Antwort würde ich mich Sehr freuen Sven

von Sven
Das sind Variablen, die über Get übergeben werden. Du musst dann auf der Seite überprüfen, ob die übergebene Variable auch tatsächlich von dir vorgesehen ist und kannst dann darüber zB mit Includes die unterschiedlichen Seiten einbinden.
vor langer Zeit

PHP: Hi Claudia, wie kann ich eine Variable in ein Array zerteilen? Also ich will z.b $zahl=385 in einem array stehen haben, aber nicht als ganzes, sondern nach den Ziffern aufgeteilt: $Stellen[3,8,5].

Das funktioniert über die Funktion str_split(zu zerlegende Zeichenkette,Anzahl der Zeichen), wobei der zweite Teil auch weggelassen werden kann, wenn du jeweils nur ein Zeichen haben möchtest. In deinem Fall wäre das also $Stellen = str_split($zahl).
vor langer Zeit

PHP: Hallo Claudia! Ich habe gleich mehrere Fragen: 1.) Kann man nach einem Datei-Upload die Dateien automatisch umbenennen? Ich benutze zum upload dieses Skript: http://www.tutorials.de/forum/php-tutorials/65420-upload-via-formular.html Allerdings habe ich das Problem, dass sobald zwei Dateien mit gleichem namen hochgeladen werden, die ältere Datei automatisch überschrieben wird. Kann man das verhindern? 2.) Ich habe die max. Dateigröße bereits im Skript angegeben. Leider wird die Datei trotz "Übergröße" temporär hochgeladen, kontrolliert, und erst dann wieder gelöscht und eine Fehlermeldung ausgegeben. Kann man den Upload bereits im vorhinein verhindern? Mit freundlichen Grüßen, Elias

Dein ersters Problem lässt sich ganz einfach lösen, indem du als Dateiname nicht nur den Namen der ursprünglichen Datei verwendest, sondern zum Beispiel noch einen Timestamp einfügst, das könnte dann so aussehen:
<?php
$timestamp = time();
$name = $timestamp."_".$_FILES['file']['name'];
?>
Für das zweite Problem hat Luca eine Lösung gefunden: Es gibt eine Möglichkeit einen Upload einer "zu großen" Datei zu verhindern: PHP überprüft automatisch diese POST-Variable bei einem Upload. Bindet man also dieses versteckte Input mit in den Code ein, so checkt PHP erst deren Wert. Sollte die Datei größer sein, so wird der Upload verweigert. (In diesem Fall 2MB) Diese Lösung ist zwar auch nur etwas halbes und nichts ganzes, da der HTML-Code ja vom Benutzer beeinflusst werden kann/könnte, aber schon einmal besser als nichts :-) Mehr dazu auf php.net.
vor langer Zeit

PHP: Gibt es bei den Dateifunktionen (fopen, fclose, ect.) auch eine Funktion, die den bisherigen Inhalt der Datei einlesen und in eine Variable speichern?

von Philipp
Ja, die Funktion nennt sich file_get_contents.
Danke für den Hinweis von einem User :-)
vor langer Zeit

PHP: Wo liegt denn eigentlich der Unterschied zwischen Switch und If? Funktioniert nicht beides gleich?

von Leon
Jein. Sie funktionieren ähnlich, aber nicht gleich. Switch kann zB nur auf Gleichheit überprüfen (also ==), dafür ist es aber wesentlich praktischer, wenn du mehrere verschiedene Fälle überprüfen magst. if ist halt wesentlich vielseitiger, wird aber häufig unheimlich verschachtelt und unnötig kompliziert, wenn man auf switch verzichten würde.
vor langer Zeit

PHP: Hallo Claudia Wenn man den UNIX-Timestamp mit date() formatiert, welche Zeitzone wird dafür verwendet? Gibt es dann immer nur GMT, die Zeit in London, an? Wie kann man das am besten umgehen?

date() greift immer auf die auf dem Server eingestellte Zeitzone zu. Welche das bei dir ist, kannst du entweder über eine PHP-Datei mit dem Inhalt phpinfo(); überprüfen - dort findest du einen Eintrag "Default timezone" -, oder über date_default_timezone_get(). Alternativ kannst du mit date("O") auch den Zeitzonenunterschied zu GMT abfragen.
Wenn du GMT brauchst, gibt es die Möglichkeit mit gmdate() zu arbeiten, oder die Zeitzone mit date_default_timezone_set zu setzen. Nähere Infos finden sich wie immer bei www.php.net :-)
vor langer Zeit

PHP: Ich übergebe meine Variablen genauso, wie du es beschreibst. Warum bekomme ich sie dennoch nicht angezeigt?

Sind alle Variablen wirklich exakt gleich geschrieben? Falls ja, ist auf deinem Server vielleicht noch eine ältere PHP-Version installiert. Diese kommt mit den Kurzformen nicht klar und benötigt längere: $HTTP_GET_VARS["Variablenname"] bzw. $HTTP_POST_VARS["Variablenname"] - je nachdem, ob die Variablen via Post oder via Get übertragen wurden. Bei aktuellen PHP-Versionen reichen die Kurzformen $_GET["Variablenname"] bzw. $_POST["Variablenname"].
vor langer Zeit

PHP: Wie kann ich Dezimalzahlen verwenden?

PHP verwendet bei Dezimalzahlen anstatt dem Dezimalkomma einen Dezimalpunkt. Du musst also anstatt 3,5 3.5 verwenden. Wenn du die Ausgabe der Zahlen mit Komma haben möchtest, kann dir die Funktion number_format hilfreich sein - das solltest du aber nur verwenden, wenn du mit den Zahlen nicht mehr rechnen möchtest, da es Zahlen in Text umwandelt. Nährere Infos dazu findest du unter www.php.net.
vor langer Zeit

PHP: Wie kann ich PHP dazu bringen, gerade und ungerade Zahlen voneinander zu unterscheiden?

Mehr Informationen zu Geraden und ungeraden Zahlen findest du bei den Schnipseln.
vor langer Zeit

PHP: Bei mktime klappt plötzlich etwas nicht - was ist da los?

Vermutlich hast du irgendwo in den Werten eine führende Null verwendet. Diese werden von PHP in diesem Fall falsch interpretiert, also bitte nie mktime(0,0,0,04,12,2007) verwenden, sondern mktime(0,0,0,4,12,2007).
Weitere Informationen zu dem Problem mit mktime findest du bei den Schnipseln.
vor langer Zeit

PHP: Ich brauche das Osterdatum. Wie berechne ich das?

Wie es berechnet wird kann ich dir auch nicht sagen, aber PHP hat eine nette Funktion um das Osterdatum für dich zu berechnen. Eine Erklärung dazu findest du bei den Schnipseln.
vor langer Zeit


Autor: Claudia Unkelbach
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen