Derzeit online: ca. 21 User  
Spenden via PayPal Es ist geschafft! PHP für dich ist ab sofort auch als Buch erhältlich. Endlich im handlichen Format, zum Nachschlagen, mitnehmen oder gemütlich nebenbei lesen. Mit noch mehr Informationen und zusätzlichen Beispielen!
Jetzt bei Amazon oder BoD bestellen!


Allgemein

FAQ

Deine Frage wird noch nicht beantwortet? Dann stelle doch einfach eine neue:


Magst du anonym bleiben? Falls nicht, gib bitte deinen Namen an:


Magst du bei einer Antwort benachrichtigt werden? Dann verrate mir bitte deine E-Mail-Adresse:
(Deine E-Mail-Adresse wird nicht veröffentlicht!)


Beantwortete Fragen

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 2 Tagen

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 2 Tagen

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 2 Tagen

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 einer Woche

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 einer Woche

MySQL: Hallo Claudia, bastel gerade an der php abfrage für die Wbesite unserer Stiftung. Hinbekommne habe ich das mir die Liste der Stifter/innen begninnend mit den neuesten Stiftern angezeigt wird, incl Prüfung das nur die angezeigt werden, die zugestimmt haben, dass ihr Name als Stifter/in auf der Website genannt wird. Gescheitert bin ich daran wie ich es hinbekommen das die chronologische Liste auch die Stifter enthält die nicht genannt werden möchten, dann jedoch anstelle des Vornamens "Stifter/in" und anstelle des Namens "möchte nicht genannt werden" in der Liste angezeigt wird. Würden uns riesig freuen wenn Du mir helfen könntest. Dank voraus Peter

von Peter
Ich nehme an, du hast zur Zeit eine MySQL-Abfrage, die überprüft, ob die Stifter genannt werden wollen oder nicht und direkt nur die ausgibt, die zugestimmt haben. Ich würde die Abfrage so verändern, dass alle ausgegeben werden und in der Ausgabe-Schleife eine zusätzliche if-Abfrage einsetzen, mit der du überprüfst, ob eine Nennung gewünscht ist oder nicht. Wenn sie gewünscht wird, lässt du dann ganz normal den Namen ausgeben und wenn nicht, eben nur den Text "möchte nicht genannt werden".
vor einer Woche

MySQL: Hallo, ich wollte gerade eine mySQL datenbank aufbauen, es sollen darin mehrere personen eintragen können. Als erstes habe ich die ID, die wird ja automatisch vergeben, danach kommt der "Ort" da gibts im HTML Formular ein auswahlfeld, wo man den entsprechenden "wert" aus der Tabelle auswählen kann. und dann kommen noch n paar sachen.- Nun Mein Problem, wenn man versucht mehrere sacehn am selben Ort anzulegen, wird das nciht in die Tabelle eingetragen, Was mache ich falsch.

Taucht das Problem bei jedem Ort auf, den du mehrmals verwenden magst, oder nur bei (einem) bestimmten? Wenn es bei jedem vorkommt, würde ich sagen, dass du das Ort-Feld in der Tabelle als unique angelegt hast.
vor einem Monat

Allgemein: Hi Claudia, ich war schon vor paar Jahren mal auf deiner Seite und sie hat mir immer sehr geholfen :). Da es die Seite ja schon eine Weile gibt, würde mich interessieren, ob alles noch aktuell ist. PHP4 gilt ja z.B. mittlerweile als veraltet. Ist alles hier php5 kompatibel oder kann es sein, dass da auch noch 'altes' php dazwischen ist?

Ich bemühe mich, alles im Laufe der Zeit anzupassen und auch schon im Hinblick auf PHP 6 zu verbessern, aber es kann natürlich immer passieren, dass noch etwas Altes dazwischen rutscht.
vor einem Monat

MySQL: Hey, ich habe ein Problem. Ich bin in Sachen SQL und MySql noch ein bissche unerfahren. Ich arbeite gerade ein einem Newssystem und komme nicht bei den Kommentaren weiter. Ich weiß nicht wie man die passend zur den News in die Datenbank speichert. In deinem Ratgeber ist es ja mit UPDATE beschrieben, aber mit einer festen id. Ich wollt jetzt fragen wie man es dynamisch machen kann, oder ob ich in die falsche Richtung denke. Vielen Dank!

Einfach indem du statt id='festerWert' eine Variable verwendest, also id='$variablenname'.
vor einem Monat

MySQL: Ich hätte mal eine Frage: Kann man mit PHP auch DIV's (z.B. mit einer bestimmten ID) zählen und das dann darstellen? z.B.: alle DIV's zählen mit der ID 'kommentar', dann anzeigen: "es gibt 5 Kommentare" Vielleicht geht das ja auch anders..., ich würde gern darstellen lassen, wie viele Kommentare schon geschrieben wurden... (Falls ich jetzt totalen Mist erzähle, weil das nicht funktionieren kann oder so, nicht wundern..., bin Neuling :-D)

von Max
Also grundsätzlich ist das schon möglich - indem du den Quelltext von PHP durchsuchen lässt und die Vorkommen des div-Befehls verbunden mit der ID prüfst. Erscheint mir aber für das, was du vorhast, etwas übertrieben.

Normalerweise löst man das Zählen der Kommentare über die Abfrage der Datenbank, die auch die Kommentare auswählt. Mit mysql_num_rows kannst du dann prüfen, wieviele Zeilen, sprich Datensätze deine Abfrage erhielt, also zB so:

<?php
$abfrage = mysql_query("SELECT * FROM kommentartabelle WHERE artikelid = '$id_des_artikels'");
$anzahl = mysql_num_rows($abfrage);
?>

Mehr dazu verrät dir auch (wie immer) php.net.
vor einem Monat

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 einem Monat

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 einem Monat

Schnipsel: Hallo Claudia ich habe den Artikel über die Umfrage gelesen und möchte wissen wie man die auswertung macht.

von EvilTux
Die Antwort dazu findest du bei der grafischen Auswertung der Umfrage.
vor 3 Monaten

Allgemein: Hallo Claudia, ich würde mich freuen wenn du mal ein Tutorial über Klassen und Constructor machen könntest. Am besten schnell. Habe bald eine Prüfung :)

Schnell sicher nicht. Und eher sogar gar nicht. Das hier ist ein Anfängertutorial, es soll auf den ersten Schritten begleiten und nicht zum PHP-Guru ausbilden. Abgesehen davon habe ich von Constructor keine Ahnung.
vor 3 Monaten

Allgemein: hey danke für die Seite. Sag mal kennst du dich auch mit Volltextsuche für MySQL aus? Ich bin auf der Suche nach dem schnellsten Suchalgorithmus was Strings betrifft, die irgendwo in der Spalte mal vorkommen.. Wär schön wenn ich dein interesse geweckt hätte:)

von phoenix
Nein, sorry. Nicht vergessen: Das hier ist für Anfänger, nicht für Vollblut-Programmierer :)
vor 3 Monaten

Allgemein: Wie kann man die Seite mit php Sichern. Erfahrende Benutzer würden Bei einfachen if-abfragen den Quelltext anschauen und dann hetten sie freien zugrif.

Das Thema Sicherheit lässt sich nicht in wenigen Sätzen klären und ich bin auch der Meinung, dass ich dafür nicht der geeignete Ansprechpartner bin - das geht sehr viel weiter als ein Anfängertutorial.
Zu deiner Überlegung mit der If-Abfrage und dem Quelltext, möchte ich allerdings eines sagen: Hast du dir schon mal den Quelltext einer PHP-Datei angeschaut? Oder durchgelesen, was in meiner PHP-Einführung steht? Man kann den Quelltext einer PHP-Datei nicht über den Browser aufrufen, dazu müsste man Zugriff auf die ungeparsede Datei haben (also zB via FTP).
vor 3 Monaten

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 4 Monaten

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 4 Monaten

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 4 Monaten

Allgemein: Hallo Claudia, kannst du mir bitte sagen wie ich einen bearbeiten Button erstelle?

Naja, einen Button entweder durch ein Formular oder als Link. Beides muss dann auf eine Seite führen, in der das, was du bearbeiten willst, bearbeitet werden kann.
vor 4 Monaten

Schnipsel: Also ich würde gerne, wenn man die Zahl 5 eintippt das dann 1+2+3+4+5 gerechnet wird. Und im moment habe ich als Schleife: $eingabe = $_POST[zahl] ; $i = 1; for ($i="1"; $i<=$eingabe ; $i++ ) { } Aber weiter komm ich einfach nicht.

Naja, du musst schon auch eine Anweisung schreiben, was in der Schleife getan werden soll. Die Schleife sorgt nur dafür, dass eine Anweisung wiederholt ausgeführt wird. In deinem Fall brauchst du also:
<?php
$ergebnis = 0;
for($i = 1; $i <= $eingabe; $i++)
{
$ergebnis = $ergebnis + $i;
}
echo $ergebnis;
?>
Die Variable $ergebnis setzt du zu Beginn auf 0 (funktioniert auch, wenn du es nicht machst, aber es ist ordentlicher, sie festzulegen), in der Schleife lässt du sie dann jeweils neu berechnen, indem du zu dem Wert in der Variable $ergebnis noch den Wert der Variable $i hinzuzählst, die ja durch die Schleife automatisch jeweils um 1 erhöht wird. Somit hast du im ersten Schleifendurchlauf also die Rechnung 0 + 1 = 1, damit ist dann die Variable $ergebnis auf 1. Beim nächsten Schleifendurchlauf wird $i durch die Schleife um eins erhöht und steht somit auf 2. Dieses Mal wird also gerechnet 1 + 2 = 3. Im nächsten Durchlauf dann 3 + 3 = 6, dann 6 + 4 = 10 und so weiter.
vor 4 Monaten

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 4 Monaten

Schnipsel: Guten Tag, Claudia! Mich würde Mal interessieren, wie ich in PHP eine Zufallsentscheidung mit Wahrscheinlichkeiten realisiere. Das Programm soll also zwischen mehreren Möglichkeiten zufällig eine wählen, allerdings solle jede Möglichkeit eine bestimmte Wahrscheinlichkeit haben z.B. 30%, 10%, 50% etc. Außerdem sollte diese Entscheidung nur ein Mal pro Tag getroffen werden, aber das ist eine andere Geschichte...

von Sascha
Ohne Anspruch auf eine korrekte Lösung, aber ich würde eine Zufallszahl von 1 bis 100 bestimmen lassen und dann überprüfen, ob die Zahl zwischen 1 und 30 liegt um auf 30% zu bekommen, 31 bis 40 für 10% und immer so weiter.
vor 4 Monaten

Sonstiges: Hallo, wie kann ich in xt commerce die ereg -Funktionen, ersetzen. Ursache ist die Umstellung auf ein neues PHP. Danke

von Jeanne
Fragen zu speziellen Scripts/Programmen stelle bitte an die entsprechenden Programmierer oder Vertreiber. Danke.
vor 5 Monaten

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 5 Monaten

Allgemein: Hallo Claudia! ich bin gerade wieder einmal dabei einen Anlauf zu machen und mich endlich ein bisserl in PHP (und MySQL) einzuarbeiten. Ich habs schon mehrfach versucht bin aber immer daran gescheitert, dass die mir zur Verfügung stehende Literatur ca. ab Seite 20 beginnt, mit Fachterimini herum zu werfen... und ich dann irgendwann ausgestiegen bin. Aber eigentlich will ich das ja seit Jahren schon lernen (HTML ist ja auch gegangen und mit Datenbanken kenn ich mich ja auch aus) Ich arbeite mit Joomla und würd manchmal einfach gerne etwas selbst dazu programmieren können und vielleicht gelingt es mir ja mit deiner (Buch)Hilfe :-) Ich wollte mir jetzt dein Buch bestellen aber Amazon hat keines mehr auf Lager. Hast du noch eines? Herzliche Grüße aus Wien, Elisabeth

von Elisabeth Bolius
Du kannst ganz einfach bei Amazon bestellen, die brauchen immer ein paar Tage bis sie es verfügbar haben, da es ein Book on Demand ist, also erst bei Bestellung gedruckt wird. Im Normalfall dauert es ca. 4 bis 7 Tagen.
Viel Erfolg für deinen Programmiereinstieg!
vor 5 Monaten

Sonstiges: Hallo, ich habe eine Seite auf der sich die User registrieren können. jetzt möchte ich ienen Link einbinden, den man nur einmal alle 24 Stunden drücken kann. Also hab ich ein wenig gesucht. Mit cooki möchte ich das eigentlich nicht amchen, da manche Leute keine Cookies erlauben. Deshalb bin ich in die mysql db gegangen und habe eine zusätzliche spalte namens daily erstellt. Mein php-script zur abfrage sieht erst mal so aus: <?php $timestamp=time(); // Aktuellen Timestamp holen $ergebnis = mysql_query("SELECT daily FROM users WHERE id = $user->id"); while($row = mysql_fetch_object($ergebnis)) if($timestamp-$row->daily >= 24*60*60) { echo "$row->daily <br> <hr>"; echo $ergebnis ; } ?> Jetzt ist es 3:29 In der db ist der User aber als 2010-03-30 03:11:00 eingetragen. Andere sind noch leer und als 0000-00-00 00:00:00 eingetragen. Das Problem ist, dass mir immer das Datum ausgegeben wird, egal welche Zeit drin steht! PS: COOLE SEITE FÜR NOOBS!!!

von Flx5
Wenn dein Datum in der Datenbank als 2010-03-30 03:11:00 eingetragen ist und du es mit einem über time() ermittelten "Datum" vergleichst, kann das nicht funktionieren. time() ermittelt die Zeit in Mikrosekunden und nicht so formatiert, wie du sie scheinbar in der Datenbank eingetragen hast. Das heißt, du vergleichst zwei ganz unterschiedliche Dinge miteinander. Ich würde das Datum in der Datenbank als Unix-Timestamp speichern oder (meiner Meinung nach der umständlichere Weg) so speichern wie bisher und dann vor dem vergleich über mktime umwandeln.
Ansonsten finde ich den Lösungsansatz mit Cookie-Verzicht aber richtig schön.
vor 5 Monaten

Allgemein: Hey, ich habe mir dein PHP-Tutorial durchgelesen. Da du ja nur die "Grundlagen" behandelst, such ich nach einem anderen Tutorial. Leider sind die meisten nicht gerade verständlich. Kennst du irgendwelche weiteren, die man verständlich verstehen kann?

Nein, tut mir leid.
vor 5 Monaten

Schnipsel: Huhu Claudia, ich habe mir ein login mit php und mysql gebaut(mit hilfe von scripten aus dem netz) und habe folgendes Prob. Wenn man sich ausloggt gibt meine logout.php aus sie sind eingeloggt und erst beim aktualisieren der seite schreibt er sie sind nicht eingeloggt.

Sowas passiert häufiger. Die genauen technischen Gründe dafür, kann ich dir nicht erklären, aber es hilft, wenn du von der Logout-Seite direkt weiter leitest, dadurch wird nach dem Ausloggen noch einmal eine neue Seite geladen und dann erkennt PHP korrekt, dass die Session beendet wurde.
Das funktoniert am besten über header("Location: adresse_der_seite.php"); - danach mit exit; alle weiteren Ausgaben unterbinden. Vor der header-Anweisung darf keine Ausgabe an den Browser erfolgen (also kein echo, print oder ähnliches, kein <html> davor usw.).
vor 5 Monaten

MySQL: Ich habe zwei Tabellen mit Feldern, die sich teilweise überschneiden. Gibt es einen SQL-Befehl damit ich die relevanten Daten transferieren kann? Sowas wie INSERT INTO......IGNORE.... Oder gibt's ne andere Möglichkeit zum Datentransfer? Ich könnte die Daten zwar per Hand umschreiben, aber bei über 2000 Sätzen ist das ne Mänge Arbeit. Ich hoffe du verstehst was ich meine und kannst mir vielleicht helfen.

Ich würde andersherum arbeiten und einfach nur die Daten, die du brauchst, als SQL-Statements exportieren (da gibt's eine Funktion in phpMyAdmin) und das dann in der anderen Tabelle importieren.
vor 5 Monaten

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 5 Monaten

Schnipsel: Gilt dass, was du im CSS in PHP Schnipsel sagst, auch für JavaScript ect.?

von Philipp
JavaScript ist nicht so ganz mein Fall und ich mache nur selten etwas damit, daher kann ich es nicht mit Bestimmtheit sagen, glaube aber eher nicht, da es im Gegensatz zu PHP ja nicht schon vom Server geparsed und damit "fertig" an den Browser geliefert wird, sondern erst vom Browser ausgeführt werden muss. Aber probiere es doch einfach mal aus.
vor 5 Monaten

MySQL: hi - kann ich order by auch verkehrt chronologisch? gruss, beat rueedi / beatrueedi.ch

von beat rueedi
Ja, sicher. Du brauchst halt ein Feld mit dem Timestamp und verwendest dann zusätzlich zum ORDER BY noch DESC als Sortierung. Steht bei den Abfragen, wie du es genau verwendest.
vor 5 Monaten

Schnipsel: Hallo Claudia. Bei deinem Schnipsel zum Thema CSS in PHP, dort hab ich eine kleine Frage.. Kann man dann später in der HTML bzw. PHP Datei diese format.php datei als CSS-Styleresource angeben?

von Philipp
Ja, klar, bringt ja sonst gar nichts.
vor 6 Monaten

Schnipsel: Gibt es solche Platzhalter wie bei MYSQL auch für PHP? Weil ich gerne überprüfen möchte ob etwas darin vorkommt aber da ist es halt so das If doch nur das Wort nimmt und auch überprüft ob z.b. 'Bla Blubb' da steht und wenn ich dann nach Blubb überprüfen lasse wird es doch nicht gefunden wegen dem 'Bla' Davor oder?

von Leon
Stimmt, das würde nicht gefunden werden. Aber nein, so etwas wie die Platzhalter in MySQL gibt es in PHP nicht direkt. Du kannst aber zB über die Funktion substr_count arbeiten. Die überprüft, wie oft ein (Wort-)Teil in einem String vorkommt. Wenn der Rückgabewert also größer als 0 ist, wurde dein Teilstring gefunden. Dann musst du das nur noch über if prüfen.
In deinem Fall wäre das dann also if(substr_count($variable, "Blubb") > 0)...
vor 6 Monaten

Sonstiges: Wie siehts eigentlich aus wenn man anderen die hier Fragen haben auch gern helfen möchte und die durch deine Antwort auch nicht schlauer geworden sind, wie darf/kann ich das machen?

von Leon
Gar nicht. Das hier ist kein Forum und die Fragen sind auch ausschließlich für mich sichtbar. Wenn du gerne anderen weiter helfen möchtest, findest du zahlreiche PHP-Foren, wo die Hilfe untereinander gefragt ist.
vor 6 Monaten

Schnipsel: Was sollte ich für meinen Blog verwenden wenn ich darauf hinweisen will das man sich erst Registrieren/Einloggen soll verwenden?

von Leon
Ich gehe mal davon aus, dass es dir darum geht, zu überprüfen, ob jemand bereits eingeloggt ist. Das ist eine ganz einfache Überprüfung einer einzelnen Bedingung, dafür reicht if absolut aus. Die Sache mit dem Einloggen und dann auch eingeloggt bleiben erfordert Sessions. Sorry, deine Frage ist ein bisschen sehr allgemein, da ist es schwierig, eine konkrete Antwort darauf zu geben.
vor 6 Monaten

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 6 Monaten

Sonstiges: Das mit dem Datum auf Deutsch will mir in meinem Blog-Template nicht gelingen, selbst mit den Hinweisen auf Deiner Seite. Das Original in meinem Script sieht so aus: <div class="author">Geschrieben von <?php the_author(); ?> am <?php the_time('jS F Y'); ?></div> und als Ausgabe kommt dann: Geschrieben von Andreas am 28th Februar 2010. Gibt es eine einfache Möglichkeit, hier das deutsche Datumsformat einzustellen?

von Andreas
So wie das aussieht, benutzt dein Blogscript eine eigene Funktion für die Ausgabe des Datums. Wenn da aber wirklich Februar steht und nicht February ist die Chance groß, dass es die Monatsnamen auf Deutsch ausgibt und nur dieses 28th falsch wäre. In dem Fall würde ich einfach mal bei the_time('jS F Y') das S durch einen Punkt ersetzen. Falls dadurch eine Fehlermeldung entsteht, probiere, den Punkt mit einem Backslash zu maskieren - the_time('j\. F Y'), aber es sollte eigentlich ohne Backslash funktionieren.
Falls die Monatsnamen auf englisch sind, müsstest du in deinem Blog die Stelle suchen, wo die Funktion the_time programmiert ist und dort Änderungen vornehmen.
vor 6 Monaten

Schnipsel: ähm ja weis garnich wie ich anfangen soll :) ich hab eine eigene homepage. und habe bei einer anderen gesehen, das man den layout code nicht bei jeder unterseite hinzufügen muss. sondern das die unterseiten nur den inhalt enthalten der dann beim klicken im menü im layout angezeigt wird. was den layoutwechsel sicher sehr erleichtert. Doch leider weis ich nicht wie das geht :( kannst du mir helfen ?!

von Maike
Das was du suchst, sind Includes.
vor 6 Monaten

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 6 Monaten

Schnipsel: Hallo Claudia, Deine Seite ist sehr hilfreich und hilft mir sehr im Unterricht als Pauker!!! :) Leider schaffe ich es nicht, Text und Grafik gleichzeitig aus einer Datenbank auszulesen und in einer Tabelle darzustellen ??? kannst du mir helfen?? Büdde

Nur mit den Infos ist das schwierig. Die Ausgabe von Daten als Tabelle formatiert ist bei den Schnipseln erklärt, wenn du aber die Grafiken tatsächlich als Grafik in deiner Datenbank gespeichert hast, wird das etwas komplizierter, weil du dann über Datei-Funktionen arbeiten musst.
vor 6 Monaten

Schnipsel: Hallo Claudia Was ist die beste Möglichkeit um ein Guestbook zu programmieren? Soll ich das mithilfe von MySQL hinbiegen?

Ja, MySQL ist dafür mit Sicherheit die beste Lösung. Dazu noch ein schönes Formular, überprüfen der übergebenen Variablen und seitenweise Ausgabe der Daten... ist ein schönes Projekt, um sich in MySQL hineinzufuchsen.
vor 6 Monaten

Sonstiges: Hallo Claudia... ich finde deine seite spitze, habe daher sehr viel wissen mitgenommen und bin immer wieder mal da... Ich würde mich freuen, wenn du für mich und andere User noch die Funktionen erklären könntest. Vielen Dank. Grüße Stefan

Danke :-) Was die Funktionen betrifft: Das Problem damit ist, dass es eigentlich kein Anfänger-Thema ist und damit nur bedingt dazu passt. Ich muss mir da mal was überlegen.
vor 6 Monaten

Allgemein: Was heißt PHP?

PHP: Hypertext Preprocessor - man nennt das ein rekursives Akronym, weil die Abkürzung selbst auch in der Langfassung enthalten ist. Ursprünglich hieß es mal Personal Home Page Tool.
vor 6 Monaten

Allgemein: Wie erstelle ich eine PHP-Datei?

Du öffnest einen Texteditor und schreibst deinen PHP-Code hinein. Das ganze speicherst du dann mit der Endung .php ab.
vor langer Zeit

Allgemein: Wie kann ich in PHP die Schriftart oder -farbe ändern, ein Hintergrundbild einrichten etc.?

Gar nicht. PHP hat absolut keine Einfluss auf die Formatierung der ausgegebenen Daten, es liefert immer nur reinen Text. Zum Formatieren brauchst du auf jeden Fall HTML oder CSS!
Daher also ruhig großräumiger nach einem Fehler suchen, wenn eine Suche in der angegebenen Fehlerzeile nichts bringt.
vor langer Zeit

Allgemein: Ich bekomme einen parse_error in Zeile xy angezeigt, aber da ist ganz sicher kein Fehler!

Wenn sich der Fehler bei einem parse_error partout nicht finden lässt, kann es manchmal hilfreich sein, die Zeilen darüber ebenfalls genau zu betrachten. Fehlt zB eine Anführungszeichen oder ein Semikolon, kann es durchaus passieren, dass dieser Fehler erst Zeilen weiter unten wirklich ins Gewicht fällt bzw. PHP auffällt.
vor langer Zeit

Allgemein: Ich möchte PHP und HTML in einer Datei verwenden. Geht das denn?

PHP und HTML lassen sich wunderbar miteinander kombinieren und absolut problemlos in der selben Datei anwenden. Man sollte dabei allerdings bedenken, dass die Datei unbedingt die Endung .php haben muss (sonst funktioniert der PHP-Code einfach nicht) und das man HTML-Teile entweder außerhalb des PHP-Codes (also erst nach einem ?>) schreiben sollte (danach bitte nicht vergessen, PHP wieder einzuleiten, wenn man es verwenden mag) oder man sämtlichen HTML-Code mit echo ausgeben muss und dann an die Maskierung von Anführungszeichen denken muss.
Ich schreibe HTML meistens außerhalb von "PHP-Gebieten", außer es ist nur kurzer Text etc.
vor langer Zeit

Allgemein: Brauche ich DSL, um PHP nutzen zu können?

Nein, brauchst du nicht. Dennoch ist es natürlich ganz allgemein schöner, wenn man Daten schnell hochladen kann und die Seiten rasch geladen werden. Vielleicht gibt es ja bei dir sogar die Möglichkeit zu einem Breitbandanschluss mit einem günstigen DSL Tarif.
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

MySQL: Mein INSERT funktioniert einfach nicht. Was ist da los?

MySQL ist beim Insert ziemlich kleinlich. Ein falscher Spaltenname (nicht vorhanden oder falsch geschrieben) oder auch zuviele oder zuwenig Werte, die übergeben werden bringen MySQL dazu, gar nichts einzutragen. Wenn dein Insert also nicht klappt, schau am besten zuerst alles durch, ob du dich vielleicht irgendwo vertippt hast (vergleiche die Spaltennamen zur Sicherheit auch noch einmal mit denen in der Datenbank - auch wenn du dir dort sicher bist, dass sie so heißen, wie du sie genannt hast!) und schaue dann, ob du die gleiche Anzahl an Werten übergibst, wie du Spalten angegeben hast, vielleicht fügst du ja einen Wert doppelt ein oder Ähnliches.
vor langer Zeit

MySQL: Wie kann ich mehrere Werte auf einmal in die Datenbank einfügen?

Um mehrere Daten zugleich einzufügen findest du etwas bei den Schnipseln.
vor langer Zeit

MySQL: Kann ich beim Suchen auch Platzhalter verwenden?

Auch Platzhalter in mySQL findest du bei den Schnipseln.
vor langer Zeit

MySQL: Kann ich meine Tabelle kopieren? Oder umbenennen?

Ja, auch das ist möglich. Mehr Informationen zum Kopieren einer Tabelle wie immer bei den Schnipseln.
vor langer Zeit

Sonstiges: Ich möchte PHP lernen, kannst du es mir erklären?

Diese Seite dient als Erklärung. Ich helfe gerne bei der Lösung von spezifischen Problemen weiter, aber wenn du eine persönliche/extra Erklärung haben möchtest, dann nur gegen Bezahlung.
vor langer Zeit

Sonstiges: Kannst du mir mal eben xyz programmieren? Für dich ist das doch sicher ein Klacks!

"Mal eben" kann auch ich nichts aus dem Hut zaubern. Außerdem ist auch meine Zeit begrenzt und wenn ich jemandem einen "Gefallen" tue, dann sollte ich den davor auch kennen. Gegen Bezahlung kann man aber auf darüber reden.
vor langer Zeit

Sonstiges: Warum ist xyz bei dir nicht erklärt? Warum erweiterst du nicht um xyz? Wie wäre es, wenn du auch noch xyz erklären würdest?

Das kann verschiedene Gründe haben: Entweder, ich habe selbst noch nichts damit gemacht, oder ich hatte bisher keine Zeit, es zu erklären. Vielleicht fehlt mir auch einfach die Lust dazu, oder ich erachte etwas nicht für sinnvoll. In jedem Fall kann es sein, dass ich (irgendwann) eine Erklärung dazu schreibe, aber ich lasse mich weder auf einen Termin ein, noch garantiere ich dafür.
vor langer Zeit

Sonstiges: Die Seite sieht eklig aus und ich mag sie nicht. Wieso änderst du nichts daran?

Bist du dir sicher, dass die Seite schuld ist und nicht dein Monitor? Wie wäre es denn mal mit einem neuen Monitor? Es gibt dafür auch Seiten, die einen Monitor Test anbieten oder du benutzt ein Testprogramm, um deinen aktuellen Monitor optimieren und prüfen zu können.
Nein, ernsthaft: Wenn ich mal Lust habe, die Seite optisch zu verändern, werde ich das sicher machen. Bis dahin bleibt sie eben so, wie sie ist. Und letzten Endes: Wer weiß, ob sie dir in neuem Gewand besser gefallen würde.
vor langer Zeit

Sonstiges: Warum erklärst du xyz so und nicht anders? Warum machst du das so und nicht anders?

Tja, entweder, weil ich es auf diese Art gelernt habe und keine andere kenne oder weil ich meine Art angenehmer finde als eine andere. Und auch wenn du etwas für super sinnvoll und toll hältst kann es sein, dass ich es nicht mag. Und hier wird nun mal so erklärt, wie ICH es bevorzuge.
vor langer Zeit

Sonstiges: Machst du das freiwillig/gratis/als Hobby?

Ja, mache ich. Daher freue ich mich natürlich auch immer über ein Danke. Ganz besonders, wenn es nicht nur deswegen kommt, weil man eine Frage gleich anhängt.
vor langer Zeit

Sonstiges: Ich hab von einem Kumpel/aus einem Forum/von einer Seite ein Script bekommen, aber es rennt nicht. Kannst du mir das mal eben anpassen/mir sagen, wo der Fehler liegt?

Bei einfachen/kurzen Scripts kann es durchaus sein, dass ich das tatsächlich mache, in den meisten Fällen werde ich dich aber bitten, deinen Kumpel/das Forum/den Seitenbetreiber/den Scriptprogrammierer zu fragen, oder es selbst auszuprobieren.
vor langer Zeit

Sonstiges: Hallo Claudia, ich hoffe es ist okay, wenn ich "du" sage...

Ja, sicher. Ich duze ja auch die Leser der PHP-Seite und habe daher absolut nichts dagegen einzuwenden, ebenfalls gedutzt zu werden. Wenn mich aber jemand mit Sie anredet, ist das genauso in Ordnung und ich werde in meiner Antwort ebenfalls das Sie verwenden.
vor langer Zeit
© 2001 - 2010 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen