Bekomme nur hieroglyphen

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#1
Da ich mich auch mal langsam mit php beschäftigen muß versuche ich mich mich gerade daran ein Captcha zu schreiben.
Ob es Funktioniert hat weiß ich nicht ,weil nur komische Zeichen zu sehen ist.
Habe erst gedacht es liegt an uft8 ,aber das wahr es wohl ncht.
Bei Jeden Reload sehen die Zeichen anders auf,was vieleicht ein Hinweiß ist das der Captcha funktioniert.
Muß man auf irgendwas achten beim speichern oder sonst irgendwas das die komischen Zeichen weg sind.

Hier kann man es notfalls nochmal ankucken
http://sebastian1012.bplaced.net/Meine_Scripte/scripte_fertig_zum_einbauen/eigener-capacha.php

Mein html Capacha ist auch noch in der Datei ,aber ganz zum Schluss,der sollte eigentlich doch nicht stören oder doch?
Habe es zumindest auch mal ohne den html Capacha versucht ,aber die Zeichen bleiben
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#3
Konnte das problem jetzt beheben.Weiß aber nicht was ich gemacht habe.
Bei google stand was von,
Code:
header("Content-Type: image/jpeg");
mit senden.
Wo muß der den hin? Muß der gesendet werden wenn man aus html den Submit Button drückt ,oder wann.Hilf das den überhaupt gegen den Fehler.

Dann stand da noch was von ,Klasse geben.
Also man sollte das Bild eine Klasse geben ,dann wäre das auch weg .
Was meinen die den damit?
Die CSS Klassen werdendie ja wohl nicht meinen oder doch ?
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#4
Das hatte ich schon mal gelesen. Ob das hilf oder nicht ,oder captcha ja oder nein ,das ist ein Thema wo man ewig diskutieren könnte.
Mir geht es erstmal darum php zu lernen. Suche mir erstmal die einfachsten dinge raus und versuche das selbst zu schreiben bzw umzu bauen.

Man kann ja mit include php scripte enbinden,was gut ist .Aber in mein fall geht das irgendwie nicht .
Und zwar .habe ich eine reines Php Script wo besucher gezählt werden . besuche ich die leere Seite wird ein weiter gezählt .Ok das soll so sein .Wie kann ich jetzt die Funktion auf andere Seiten anwenden .Jedes mal das ganze Script ins Html mit rein Kopieren ? Über include zählt er nicht weiter? Nur wenn ich direkt auf das php Script gehe (Leere html Seite).

Edit auf jeder Seite soll die Ip mit ans Php Script gesendet werden .
Weiß nicht ob es deswegen vieleicht nicht ging weil die Ip Zeigt er ja auch nicht an wenn ich über include einbinde.
Auf den Php Script selber geht alles
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#6
Sobald ich in den Script Style angaben machen ,also hier zwischen <style></style> , kommen die Zeichen wieder.Auch witzig.
Brauche da keine Style angaben,aber gut zu wissen wo die jetzt weg gekommen sind.

Bei den anderen werde ich mal weiter lesen,weil was ich mir hier zusammen baue ist zu peinlich das jetzt schon zu posten.
Kann man bei php die schrift vergrössern ohne css?
Versuche gerade die Schrift im Bild größer zu bekommen ,aber die bleibt auf Standart größe (ca 12 -16 px)
 

m.scatello

Aktives Mitglied
15 Februar 2017
794
79
28
#7
Sobald ich in den Script Style angaben machen ,also hier zwischen <style></style> , kommen die Zeichen wieder.Auch witzig.
Häää?
Brauche da keine Style angaben,aber gut zu wissen wo die jetzt weg gekommen sind.
Und nochmal häää?
Bei den anderen werde ich mal weiter lesen,weil was ich mir hier zusammen baue ist zu peinlich das jetzt schon zu posten.
Wenn du deinen Quellcode nicht posten willst, dann solltest du auch keine Fragen dazu stellen, denn ohne den Quellcode können wir nur raten!
Kann man bei php die schrift vergrössern ohne css?
Versuche gerade die Schrift im Bild größer zu bekommen ,aber die bleibt auf Standart größe (ca 12 -16 px)
Bei einem von PHP generiertem Bild hilft kein CSS
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#8
Ich fange mal mit was einfachen an ,was auch nicht funktioniert.Versuche gerade ,das für jede Seite eine Datei angelegt wird und somit die Besucherzahl gespeichert wird.
Auf der Html Seite ist ein Ajax Script was die Aktuelle Seiten-Url ausliest und an das php übergibt.
Das geht auch weil ip wird mit Link gespeichert.( das habe ich hnbekommen ).Eigentlich un interesant ,weil das brauche ich erstmal nicht.
Der Besucherzähler der auf jede Seite die Besucher Zähl interesiert mich doch.
Deswegen habe ich es so versucht
Code:
$dateiname1 = $site;

if (file_exists(dirname(__FILE__).'/$dateinamen1.'.php')){
$inhalt = fopen($dateiname1.'.php', 'r');
$inhalt = $inhalt + 1;
fclose($inhalt);
 
$datei = fopen($dateiname1.'.php', 'w');
fwrite($datei, $inhalt);
fclose($datei);
 }else{
 
$datei = fopen($dateiname1.'.php', 'w');
$code="0";
fwrite($datei, $code);
fclose($datei);
 }
Ich weiß ist schei....
Aber funktioniert einfach nicht .Fehler meldung versteheich nicht ,da stehti rgendwas mit "}".
 
Zuletzt bearbeitet:

Sailor

Aktives Mitglied
14 Juli 2017
305
32
28
#9
Nööö... so geht das nicht!
Du legst mit 'fopen' einen Dateizeiger auf deine Datei und öffnest sie zum lesen (r).
Dann liest du aber den Inhalt der Datei nicht ein... mit 'fread'... sondern versuchst den Dateizeiger $inhalt um 1 zu erhöhen...??
Richtig wäre
PHP:
if (file_exists(dirname(__FILE__).'/$dateinamen1.'.php'))
  {
   $inhalt = fopen($dateiname1.'.php', 'r'); 
   $count = fgets($inhalt); 
   $count++;
   fclose($inhalt);
   $datei = fopen($dateiname1.'.php', 'w');
   fwrite($datei, $count);
   fclose($datei);
 }
else
 {
  $datei = fopen($dateiname1.'.php', 'w');
  $code="0";
  fwrite($datei, $code);
  fclose($datei);
 }
Hab ich jetzt zwar nicht getestet, aber das sollte Funktionieren
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#11
Jetzt habe ich wieder ein neuen Fehler
Code:
Parse error: syntax error, unexpected '')) ' (T_CONSTANT_ENCAPSED_STRING) in /users/sebastian1012/www/php-test-ordner/besucher_und_ip_zahler/besucher-und-ip.php on line 27
was hier Zeile 4 wäre.
Vorher hatte er eine Datei erstelt ohne Namen nur .txt
Jetzt macht er gar nix und schmeißt den Fehler raus
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#12
Ich verstehe noch nicht mal das hier.
Ich glaube das sollte der nächste schritt werden.
Ich stehe mit php sowieso auf Kriegsfuß ,aber irgendwann muß es ja mal in der Birne rein
Deswegen kläre ich immer alles mit JS wenn es möglich ist,weil ich mich vor Php immer drücken tue:)
 

Sailor

Aktives Mitglied
14 Juli 2017
305
32
28
#13
Das ist dein gutes Recht... ich drücke mich so gut es geht vor JavaScript ;)... gruselige Syntax!
Aber ich seh gerade... das könnte der Fehler sein, der dir angezeigt wird .. in (deiner) Zeile 3
PHP:
if (file_exists(dirname(__FILE__).'/$dateinamen1.'.php')){
das sollte eher
PHP:
if (file_exists(dirname(__FILE__).'/'.$dateinamen1.'.php')){
$dateinamen1 ist eine Variable und wird ohne Anführungszeichen eingefügt...
/ ist aber ein String und braucht diese Anführungszeichen '/'
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#14
Kompliziert!
Dies erzeugt
Code:
$dateiname1 = $site;
.txt
Was nicht sein darf.
aber das
Code:
$dateiname1 = 'mist';
erzeugt
mist.txt

Wieso geht das erste nicht.Auf $site kommt ja nur eine url an
Code:
$site = $_POST['anwort'];
$dateiname1 = $site;

Alles zusammen sieht so aus
Code:
<?php

error_reporting(E_ALL);
ini_set('display_errors', true);

$site = $_POST['antwort'];
$dateiname1 = $site;
echo $dateiname1;
if (file_exists(dirname(__FILE__).'/'.$dateinamen1.'.txt'))
 {
  $inhalt = fopen($dateiname1.'.txt', 'r');
  $count = fgets($inhalt);
  $count++;
  fclose($inhalt);
  $datei = fopen($dateiname1.'.txt', 'w');
  fwrite($datei, $count);
  fclose($datei);
}
else
{
 $datei = fopen($dateiname1.'.txt', 'w');
 $code="0";
 fwrite($datei, $code);
 fclose($datei);
}


?>
 

Sailor

Aktives Mitglied
14 Juli 2017
305
32
28
#15
Wieso geht das erste nicht.Auf $site kommt ja nur eine url an
genau das könnte das Problem sein - URLs enthalten mitunter Zeichen, die nicht so richtig mit String Variablen kompatibel sind.
Versuche doch mal zu Kontrollzwecken mit echo $_POST['antwort']; dir anzeigen zu lassen, was da in der POST Variable drin steht und vergleiche das, mit dem, was du erwartest:

Ansonsten hilft dir das.
http://php.net/manual/de/function.urlencode.php

http://php.net/manual/de/function.urldecode.php
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#16
Ja das hilft weiter.
Nur wie soll es auch anders sein,wieder ein Fehler der komisch ist .
Das Script erstellt eine txt Datei ohne Inhalt.
Deswegen Zählt erauch nicht.
Öffne ich die erstellte txt Datei und schreibe ein 1 rein ,zählt das Script auch weiter in der Datei.
Eigentlich Funktioniert es ,nur beim erstellen der Datei muß eine Zahl drinne stehen.

Wie ich es sehe macht das Script das doch,aber im .txt steht nix.
Könnte ja jede erstellte Datei vom Script ,mit der Hand eine 1 rein schreiben ,aber ist ja nicht sinn der sache,das soll ja vollautomatisch sein
 

Sailor

Aktives Mitglied
14 Juli 2017
305
32
28
#17
Das kann eigentlich nicht sein... also dass da eine leere Datei ist!
Du hast doch in deiner if-Abfrage ein 'else', das dir im Falles, dass die Datei nicht existiert, eine Datei erzeugt, die mit "0" gefüllt ist.
PHP ist bei zwar beim Variablentyp sehr tolerant, aber versuche trotzdem mal, in diesem 'else' Statement nicht den Wert "0" zu schreiben, sondern den Interger Wert 0...($code = 0;)
 

basti1012

Aktives Mitglied
26 November 2017
682
60
28
37
Minden
chat.sebastian1012.bplaced.net
#18
Ja das verstehe ich nicht .

Code:
 $datei = fopen($dateiname1, 'w');
   $code = fgets($inhalt);
   echo $code;
 $code=0;
 fwrite($datei, $code);
 fclose($datei);
Datei bleibt leer.Schreibe ich da nee Zahl rein macht er auch weiter wie es soll.
Komische sache .
Habe folgenes versucht.
Code:
 $datei = fopen($dateiname1, 'w');
   $code = fgets($inhalt);
 fwrite($datei, 'hallo deutschland');
 fclose($datei);

Code:
 $datei = fopen($dateiname1, 'w');
   $code = fgets($inhalt);
   echo $code;
 $code="0";
 fwrite($datei, $code);
 fclose($datei);
Code:
 $datei = fopen($dateiname1, 'w');
   $code = fgets($inhalt);
 $code=0;
 fwrite($datei, $code);
 fclose($datei);
und wenn ich echo "$code"; dazwischen schreibe wird auch nix angezeigt.
Lustige sache nee?
Wegen so viele Fehler in einen so kleinen Code ,habe ich mich immer vor Php gedrückt
 

Sailor

Aktives Mitglied
14 Juli 2017
305
32
28
#19
Hmmm... dein Handle heißt $datei... warum liest du dann fgets($inhalt)????
öffne mal die txt mit dem Editor... da muss was drin stehen.