Autor |
Beitrag |
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 22.07.05 16:34
Den ganzen code. sonst weis ich nicht, wo line 72 ist.
edit: gefunden.
function read($file, &$content){Lern mal PHP Syntax... (*empfehl* ^^) was hat das & zeichen da zu suchen?
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Fr 22.07.05 18:06
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71:
| <?php $file = getcwd().'/code.txt';
$users[0] = 'test'; $pws[0] = 'test';
$MyData[0] = $_REQUEST['code']; $MyData[1] = $_REQUEST['user']; $MyData[2] = $_REQUEST["pw"];
function is_login($User, $Password){ global $users, $pws; if((in_array($User, $users)) AND (in_array($Password, $pws))) { Return true; } else { Return false; } }
function write($Datei, $Daten, $User, $Pw){ if(is_login($User, $Pw)){ $Error=false; if (!is_file($Datei)) { $FilePointer=fopen($Datei, 'w+'); fclose($FilePointer); chmod($Datei, 0777); } $FilePointer=fopen(Datei, 'w'); if (!$FilePointer) $Error=true; if (!flock($FilePointer, 2)) $Error=true; if (!fwrite($FilePointer, $Daten)) $Error=true; if (!flock($FilePointer, 3)) $Error=true; if (!fclose($FilePointer)) $Error=true; return $Error; } } function read($file, $content){ $Error = false; if(file_exists($file)){ $FilePointer = fopen($file, "r"); $buffer = filesize($file); if(!$filepointer) $Error = true; if (!flock($FilePointer, 1)) $Error=true; if ($buffer>0){ $content = fread($filepointer, $buffer); }else{ $Error=true; }
function show(){ global $file; read($file, $code); echo $code; }
if(!isset($_REQUEST['mode'])) $_REQUEST['mode']=''; switch($_REQUEST['mode']){ default: show(); break;
case 'write': write($file, $MyData[0], $MyData[1], $MyData[2]); break; } ?> |
sagt immernoch $ unexeptet
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71:
| <?php $file = getcwd().'/code.txt';
$users[0] = 'test'; $pws[0] = 'test';
$MyData[0] = $_REQUEST['code']; $MyData[1] = $_REQUEST['user']; $MyData[2] = $_REQUEST["pw"];
function is_login($User, $Password){ global $users, $pws; if((in_array($User, $users)) AND (in_array($Password, $pws))) { Return true; } else { Return false; } }
function write($Datei, $Daten, $User, $Pw){ if(is_login($User, $Pw)){ $Error=false; if (!is_file($Datei)) { $FilePointer=fopen($Datei, 'w+'); fclose($FilePointer); chmod($Datei, 0777); } $FilePointer=fopen(Datei, 'w'); if (!$FilePointer) $Error=true; if (!flock($FilePointer, 2)) $Error=true; if (!fwrite($FilePointer, $Daten)) $Error=true; if (!flock($FilePointer, 3)) $Error=true; if (!fclose($FilePointer)) $Error=true; return $Error; } } function read($file, $content){ $Error = false; if(file_exists($file)){ $FilePointer = fopen($file, "r"); $buffer = filesize($file); if(!$filepointer) $Error = true; if (!flock($FilePointer, 1)) $Error=true; if ($buffer>0){ $content = fread($filepointer, $buffer); }else{ $Error=true; }
function show(){ global $file; read($file, $code); echo $code; }
if(!isset($_REQUEST['mode'])) $_REQUEST['mode']=''; switch($_REQUEST['mode']){ default: show(); break;
case 'write': write($file, $MyData[0], $MyData[1], $MyData[2]); break; } ?> |
_________________ Don`t eat yellow snow  !!
|
|
matze.de 
      
Beiträge: 576
Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
|
Verfasst: Fr 22.07.05 19:02
JayEff hat folgendes geschrieben: | Den ganzen code. sonst weis ich nicht, wo line 72 ist.
edit: gefunden.
function read($file, &$content){Lern mal PHP Syntax... (*empfehl* ^^) was hat das & zeichen da zu suchen? |
JeyEff lern du erstmal PHP: Das & Zeichen ist dafür da um die Variable als Referenz anzugeben.
mfg matze
_________________ si tacuisses, philosophus mansisses.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Fr 22.07.05 19:36
funzt trotzdem nicht 
_________________ Don`t eat yellow snow  !!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 22.07.05 19:37
Ich KANN PHP. Ich kannte nur das & nicht. Und ich habe meine Aussage nicht auf das & bezogen, sondern allgemein. UND Ausserdem gibt es auf der ganzen selfPHP Seite das & zeichen nicht. (jedenfalls laut suche) Darum habe ich das auch gesagt.
Zum Thema zurück: Dein code hat nur 71 Zeilen  wie kann da in Zeile 72 ein Fehler sein?
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Fr 22.07.05 19:58
Gute frage?!
_________________ Don`t eat yellow snow  !!
|
|
ice-breaker
Hält's aus hier
Beiträge: 12
Win XP
Delphi 2005 Personal
|
Verfasst: Fr 22.07.05 21:32
ich wollte nurmal anmerken, dass für Post-Request die superglobale variable (bzw. array) $_POST genutzt wird, und nicht $_REQUEST, denn $_REQUEST umfasst POST- und GET-Variablen 
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Fr 22.07.05 23:19
Heisst das ich soll $_Request durch $_Post ausgetauscht werden?
_________________ Don`t eat yellow snow  !!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 23.07.05 00:30
Was Allgemeines:
Quelltext 1: 2: 3: 4:
| function is_login($User, $Password){ global $users, $pws; if((in_array($User, $users)) AND (in_array($Password, $pws))) { Return true; } else { Return false; } } |
Was ist nun, wenn ich ein Passowrt, das in der Liste ist eingebe, und einen völlig anderen User, der auch in der liste ist? Bsp:
Quelltext 1: 2: 3: 4:
| Users: pws: user1 1 user2 2 user3 3 |
Und ich gebe ein user1 passwort "3"
Werde ich dann nicht unkorrekterweise eingelassen?
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Sa 23.07.05 00:51
Weshalb solltest du das, ich denke nicht das es so ist
_________________ Don`t eat yellow snow  !!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 23.07.05 00:54
Ich vermute nicht, dass in_array mit einem AND verknüpft beide male den gleichen index aufruft, um zu prüfen. ich denke das ist mehr wie wenn ich 2 texte nach wörtern durchsuche und nicht darauf achte, wo sie stehen, sondern nur, ob sie drin sind.
selfPHP.de hat folgendes geschrieben: | Die Funktion in_array() sucht in einem Array (haystack) nach einem Suchwort
(needle) und gibt True bei Erfolg, sonst False zurück. Hat der Parameter strict
den Wert True, sucht die Funktion nur Elemente, deren Wert denselben Datentyp
hat wie needle; Default-Wert ist False. Bitte beachten Sie, dass wenn der Wert
von needle vom Typ String ist, zwischen Groß- und Kleinschreibung unterschieden
wird (Sie Beispiel PERL und Perl). Weiterhin durfte vor der Version 4.2.0 von
PHP needle kein Array sein. Falls Sie den Schlüssel des gefundenen Elements
benötigen, so nutzen Sie die Funktion array_search() |
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Sa 23.07.05 01:05
warum meins dann nicht funktioniert weiss ich auch nicht o.O
_________________ Don`t eat yellow snow  !!
|
|
matze.de 
      
Beiträge: 576
Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
|
Verfasst: Sa 23.07.05 11:54
@JayEff: War nicht angreifend gemeint, ich weiß auch noch ne Menge in PHP ned, wenns so rübergekommen ist, dann sorry. Wegen Referenz: Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| <?php //Ohne ReferenzVariable function addier($Zahl1, $Zahl2){ Return ($Zahl1 + $Zahl2); } //Aufruf: $Bla = addier(5, 3); echo $Bla; //Ausgabe "8"
//Mit ReferenzVariable function addier($Zahl1, $Zahl2, &$Ergebnis){ $Ergebnis = $Zahl1 + $Zahl2; } //Aufruf addier(5, 3, $Bla); echo $Bla; // Ausgabe: "8" ?> |
@Login: Danke für den Hinweis, hab nun nen gefixten Login geupdatet.
@Wolle: Schildere bitte nochmal expliziet dein Problem, aber probier vorher nochmal den neuen Source aus meinem Tutorial aus.
mfg matze
_________________ si tacuisses, philosophus mansisses.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 23.07.05 12:33
Hallo!
Das mit dem Login sollte eleganter mittels
Quelltext 1: 2: 3: 4: 5:
| function is_login($User, $Password){ global $users, $pws;
return ((($i = array_search($User, $users)) !== FALSE) && ($pws[$i] == $Password)); } |
gehen.
Grüße
Christian
//Edit: wolle- hat folgendes geschrieben: | Quelltext 1:
| Parse error: parse error, unexpected $ in /home/wolle/public_html/interface.php on line 72 | |
Für solche Fälle kann man auch in Code-Tags eienn offset in die Zeilennummern einbauen. Einfach mal in der Hilfe gucken! 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Sa 23.07.05 12:58
Danke nun funktioniert das, aber eine frage noch
wenn ich einmal was hochschicke ist es drin, wenn ich was neues hochschicke killt der das alte vorher!
Kann man das machen, das der das darunter setzt?
Vielen Dank
mfg wolle
_________________ Don`t eat yellow snow  !!
|
|
matze.de 
      
Beiträge: 576
Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
|
Verfasst: Sa 23.07.05 13:07
Ja kann man, du änderst einfach bei der write funktion Quelltext 1: 2: 3: 4:
| If(!$Error){ $FilePointer = @fopen($Datei, "w");
If(!$FilePointer) $Error = True; |
das "w" in "a" um  (w steht für "Write" und a für "Append")
mfg matze
_________________ si tacuisses, philosophus mansisses.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Sa 23.07.05 13:28
danke  Das ist ja super, nun versuche ich mal das als html zum anzeigen geformt zu bekommen, eine einzigste frage noch
wenn ich etwas in die selbe zeile schreibe soll er vorher ein #10#13 machen also neue zeile muss das in die reihe?
-> Delphi-Quelltext 1: 2: 3:
| try HTTP.Post('http://meinhost.de/interface.php',#10#13 + Strings); except |
das funzt nähmlich nicht 
_________________ Don`t eat yellow snow  !!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 23.07.05 15:42
Ich verstehe nicht ganz was du willst  (Übrigens ist "einzigen" schon superlativ, es gibt keine weitere Steigerung "einzigsten"  )
Das mit dem Offset wusste ich, war aber immer zu faul zum
Quelltext
Ach und nochwas: Mein "Lern erstmal PHP Syntax" bezog sich auf wolle. Hätte ich gesehen, dass das & auch bei dir steht, hätte ich das Mowl gehalten. 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
wolle-
      
Beiträge: 128
XP Prof, Suse 9.2
D7
|
Verfasst: Sa 23.07.05 15:57
Na der schreibt alles hintereinander:
Ich gebe text ein:
Hallo
-Absenden-
Ich gebe erneut text ein:
Byebye
-Absenden-
Dann steht es in der datei so:
HalloByebye
Aber ich wollte irgendwie so:
Hallo
Byebye
Geht sowas? Dachte mit #10#13 oder so :/
Moderiert von Christian S.: Highlight-Tags entfernt, sonst müssen wir Sonnenbrillen verteilen 
_________________ Don`t eat yellow snow  !!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 23.07.05 16:04
Schau: guck dir www.selfPHP.de an.
Funktionsreferenz von selfPHP: | Mit fopen() kann man eine Datei (filename) öffnen. Folgende
Verbindungsmöglichkeiten gibt es:
"http://" - Öffnen per http
"ftp://" - Öffnen per ftp
"php://stdin" - Öffnen per stdio stream
"php://stdout" - Öffnen per stdio stream
"php://stderr" - Öffnen per stdio stream
Alles andere - Öffnen vom lokalen Dateisystem
Der Parameter mode legt fest, auf welche Weise und für welche Zugriffsarten die
Datei geöffnet wird. Folgende Werte gibt es:
a - Öffnet die angegebene Datei nur zum Schreiben und positioniert den
Dateizeiger auf das Ende der Datei. Sollte die angegebene Datei nicht existieren,
so wird versucht sie anzulegen.
a+ - Öffnet die angegebene Datei zum Lesen und Schreiben und positioniert den
Dateizeiger auf das Ende der Datei. Sollte die angegebene Datei nicht existieren,
so wird versucht sie anzulegen.
r - Öffnet die angegebene Datei zum Lesen und positioniert den Dateizeiger auf
den Anfang der Datei.
r+ - Öffnet die angegebene Datei zum Lesen und Schreiben und positioniert den
Dateizeiger auf den Anfang der Datei.
w - Öffnet die angegebene Datei zum Schreiben und positioniert den Dateizeiger
auf den Anfang der Datei. Die Länge der Datei wird auf 0 Byte gesetzt. Sollte die
angegebene Datei nicht existieren, so wird versucht sie anzulegen.
w+ - Öffnet die angegebene Datei zum Lesen und Schreiben und positioniert den
Dateizeiger auf den Anfang der Datei. Sollte die angegebene Datei nicht
existieren, so wird versucht sie anzulegen.
Für die Bearbeitung von Binärdateien können Sie an jede dieser
Modusdefinitionen ein "b" anhängen.
Wird der optionale Parameter use_include_path auf 1 gesetzt, so wird auch
innerhalb des Include-Pfads (wird in der php.ini bestimmt) nach der Datei
gesucht.
Im Erfolgsfall gibt die Funktion einen Dateizeiger zurück. Sollte das Öffnen der
Datei scheitern, so wird false zurückgeliefert. |
Du siehst? Dadurch, dass die datei mit w geöffnet wird, wird sie gelöscht. Öffne sie mit r+ und du schreibst an den Anfang der Datei. Öffne sie mit a+ und du schreibst an ihr Ende. Neue zeilen bekommst du (logischerweise) mit <br> und NICHT mit #10#13, da soetwas vom Browser nicht als newline interpretiert wird. In der Datei ist dann vielleicht eine neue Zeile. Aber das bringt dir ja nix. Des weiteren läuft auf den allermeisten Webserverern Linux und hier ist das newline Zeichen soweit ich weis kein 2byte Zeichen sondern nur #10 oder #13 ...
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
|