Autor Beitrag
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Fr 22.07.05 18:06 
ausblenden volle Höhe Quelltext
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

ausblenden volle Höhe Quelltext
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Fr 22.07.05 19:02 
user profile iconJayEff 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Fr 22.07.05 19:36 
funzt trotzdem nicht :-)

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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 :shock: wie kann da in Zeile 72 ein Fehler sein?

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
wolle-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: 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
BeitragVerfasst: 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 :wink:
wolle-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Fr 22.07.05 23:19 
Heisst das ich soll $_Request durch $_Post ausgetauscht werden?

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 23.07.05 00:30 
Was Allgemeines:
ausblenden 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:
ausblenden 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Sa 23.07.05 00:51 
Weshalb solltest du das, ich denke nicht das es so ist

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Sa 23.07.05 01:05 
warum meins dann nicht funktioniert weiss ich auch nicht o.O

_________________
Don`t eat yellow snow ;)!!
matze.de Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: 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:
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 23.07.05 12:33 
Hallo!

Das mit dem Login sollte eleganter mittels
ausblenden 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:
user profile iconwolle- hat folgendes geschrieben:
ausblenden 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Sa 23.07.05 13:07 
Ja kann man, du änderst einfach bei der write funktion
ausblenden 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-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: Sa 23.07.05 13:28 
danke :D 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?

->
ausblenden Delphi-Quelltext
1:
2:
3:
try
      HTTP.Post('http://meinhost.de/interface.php',#10#13 + Strings);
    except


das funzt nähmlich nicht :D

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 23.07.05 15:42 
Ich verstehe nicht ganz was du willst :shock: (Übrigens ist "einzigen" schon superlativ, es gibt keine weitere Steigerung "einzigsten" ;))
Das mit dem Offset wusste ich, war aber immer zu faul zum
ausblenden Quelltext
 
50:
{ ... }
Nachschauen

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. :oops:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
wolle-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 128

XP Prof, Suse 9.2
D7
BeitragVerfasst: 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 user profile iconChristian S.: Highlight-Tags entfernt, sonst müssen wir Sonnenbrillen verteilen ;-)

_________________
Don`t eat yellow snow ;)!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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 ...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.