Archivlink: javarea.de Forum > PHP, MySQL & CGI > Probleme mit fwrite
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > Probleme mit fwrite

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von wwwChaOs am 08.07.2007 - 15:28
ich hab voll probleme mit $Variable, ' und "

bevor ich in zeile 223 " genommen hab - also ' ging in auch 223 net... aber bei 225 funzt beides net...


Da soll mein Source einen neuen Source schreiben:
221: fwrite($xUpload, '<?php');
222: fwrite($xUpload, "\r\n");
223: fwrite($xUpload, "$target = \"files/\";");
224: fwrite($xUpload, "\r\n");
225: fwrite($xUpload, '$target2 = $target . basename( $_FILES[\'uploaded\'][\'name\']);'); << in dieser zeile is irgendein Fehler sagt mir der debugger: "
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\HDD\eintragen.php on line 225"


geschrieben von René am 08.07.2007 - 16:35
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 

<?php

if ($xUpload fopen('./test2.php''wb'))
{
    
fwrite($xUpload'<?php');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'$target = "files/";');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'$target2 = $target . basename($_FILES[\'uploaded\'][\'name\']);');
    
fclose($xUpload);
}

?>



das steht dann in der test2.php;

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 

<?php
$target 
"files/";
$target2 $target basename($_FILES['uploaded']['name']);


geschrieben von wwwChaOs am 10.07.2007 - 21:37
so hab jetzt das mal durchprobiert...
funzt leider net :'(

PHP-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: 

<?

if ($xUpload fopen ('IZO/$username/Upload$passwort.php','wb'))
{
fwrite($xUpload'<fieldset style="border-color: #AA0000"><legend><font color="#000000" face="Verdana">Upload</font></legend>');
fwrite($xUpload"\r\n");
fwrite($xUpload'<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">');
fwrite($xUpload"\r\n");
fwrite($xUpload'Please choose a file:');
fwrite($xUpload"\r\n");
fwrite($xUpload'<input name="uploaded" type="file" style="border:1px solid #FFFFFF; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000000; color: #FFFFFF" size="20"><br>');
fwrite($xUpload"\r\n");
fwrite($xUpload'<p align="left"><input type="submit" value="Upload" style="border:1px solid #FFFFFF; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000000; color: #CCCCCC"></p>');
fwrite($xUpload"\r\n");
fwrite($xUpload'</form>');
fwrite($xUpload"\r\n");
fwrite($xUpload'_');
fwrite($xUpload"\r\n");
    
fwrite($xUpload'<?php');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'$target = "files/";');
    
fwrite($xUpload"\r\n");
 
#224:
   
fwrite($xUpload'$target2 = $target . basename($_FILES[\'uploaded\'][\'name\']);');

...

fclose($xUpload);
}
?>





Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\HDD\eintragen.php on line 224

PS: ich könnte auch die ganze Datei mal hochladen, wenns sehr not tut... eher ungern, aber wenn es zum ziel führt...

geschrieben von René am 11.07.2007 - 07:37
PHP-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: 

<?php

if ($xUpload fopen ('IZO/' $username '/Upload' $passwort '.php','wb'))
{
    
fwrite($xUpload'<fieldset style="border-color: #a00"><legend><font color="#000000" face="Verdana">Upload</font></legend>');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'<form action="<' '?= $_SERVER[\'PHP_SELF\']; ?' '>" method="post" enctype="multipart/form-data">');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'Please choose a file:');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'<input name="uploaded" type="file" style="border:1px solid #fff; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000; color: #fff" size="20">');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'<p align="left"><input type="submit" value="Upload" style="border:1px solid #fff; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000; color: #ccc"></p>');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'</form>');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'_');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'<' '?php');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'$target = "files/";');
    
fwrite($xUpload"\r\n");
    
fwrite($xUpload'$target2 = $target . basename($_FILES[\'uploaded\'][\'name\']);');
    
fclose($xUpload);
}

?>



das gibt folgendes aus:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 

<fieldset style="border-color: #a00"><legend><font color="#000000" face="Verdana">Upload</font></legend>
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Please choose a file:
<input name="uploaded" type="file" style="border:1px solid #fff; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000; color: #fff" size="20">
<p align="left"><input type="submit" value="Upload" style="border:1px solid #fff; font-size: 10px; font-family: Verdana; font-weight: bold; background-color: #000; color: #ccc"></p>
</form>
_
<?php
$target 
"files/";
$target2 $target basename($_FILES['uploaded']['name']);


geschrieben von wwwChaOs am 18.07.2007 - 22:18

Parse error: syntax error, unexpected $end in D:\HDD\eintragen.php on line 353
(die datei is nur 352 zeichen lang...) da such ich mich dumm und dämlich nach ner klammer die fehlt schon seit einer woche und ich find nix

ich such verzweifelt schon nach nem debugger, der mir genauer sagt, in welche zeile das problem liegt ... einen hab ich gefunden, der einen farbewechsel anzeigt... bin mir aber net sicher, was was zu heißen hat und wie überhaupt, sorry

screenshot && file angehängt...



geschrieben von wwwChaOs am 18.07.2007 - 22:20

geschrieben von Klaush am 19.07.2007 - 08:22
Zitat
 Original geschrieben von wwwChaOs am 18.07.2007 - 22:18


Parse error: syntax error, unexpected $end in D:\HDD\eintragen.php on line 353
(die datei is nur 352 zeichen lang...) da such ich mich dumm und dämlich nach ner klammer die fehlt schon seit einer woche und ich find nix

ich such verzweifelt schon nach nem debugger, der mir genauer sagt, in welche zeile das problem liegt ...




Die Zeile hast du ja --> 353

Der Fehler liegt an deiner doppel ELSE Anwesiung, ganz unten.
"nexpected $end"

du kannst nicht
if{
....

}else{
.....
}else{
....
}

schreiben, wenn dann musst du ein elseif Anweisung machen:

if{
....

}elseif{
.....
}else{
....
}

Der Fehler liegt also am doppelten ELSE

geschrieben von wwwChaOs am 19.07.2007 - 11:13
schon möglich, ich bin in php net so der pro, aber in c++ isses ja auch so dass man erst if, dann elseif(beliebig oft), und dann else nimmt

aber in meinem source wird 2x if aufgemacht
quasi
if{
.......Bedingung 1


if{
.......Bedindigung 2
}
else{Ansonsten 2}


}
else{Ansonsten 1}


weiß nich so recht, geht das nich?
in c++ ging das auch, darum dacht ich hier gehen auch if-in-if-bedigungen =/

mit elseif geht's auch nicht

aber trotzdem danke

geschrieben von Matneu am 19.07.2007 - 11:25
Also bei so einem Code wundert es mich nicht, dass Du selbst nicht mehr durchblickst, wo welche Klammer geschlossen wird und wo nicht.
Ich würde Dir dringend raten, Deinen Code vernünftig zu schreiben, dann passiert zumindest so ein Fehler nicht mehr.

Kleines Beispiel?
Statt
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 

<?
if ($password == $password2)
   {
   if (
in_array($username,$user_vorhanden))
      {
      }
}
   else
      {
if (
$xUpload fopen ('IZO/' $username '/Upload' $passwort '.php','a'))
{
}
      }
else
  {
  }
?>

schreibt man
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 

<?
if ($password == $password2) {
    if (
in_array($username,$user_vorhanden)) {
    }
} else {
    if (
$xUpload fopen ('IZO/' $username '/Upload' $passwort '.php','a')) {
    }
} else {
}
?>

und sofort sieht man, wo was nicht passt bzw. was zusammengehört.
Und die Einrückungen macht man nicht mit Leerzeichen sondern mit Tabs. Eine Ebene = ein Tab.

Ein guter PHP-Editor kann übrigens die Formatierung auch von alleine übernehmen. Unter Eclipse z. B. reicht es, Strg+Shift+F zu drücken und Dein Code wird - zumindest meistens - formatiert. Allerdings klappt das mit Deinem Code nur zur Hälfte, irgendwann gibt Eclipse einfach auf.

So far...
Matthias

geschrieben von Matneu am 19.07.2007 - 11:33
Zitat
 Original geschrieben von wwwChaOs am 19.07.2007 - 11:13
schon möglich, ich bin in php net so der pro, aber in c++ isses ja auch so dass man erst if, dann elseif(beliebig oft), und dann else nimmt

Du solltest aber auf die Verschachtelung achten:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 

<?
if () {
    .......
Bedingung 1
    
if () {
        .......
Bedindigung 2
    
} else {
        
Ansonsten 2
    
} else {
        
Ansonsten 1
    
}
?>


Zitat
 in c++ ging das auch, darum dacht ich hier gehen auch if-in-if-bedigungen =/

In C* geht das so (mit falscher Verschachtelung) sicherlich auch nicht!

So far...
Matthias

P.S.: Sorry für Doppelpost, aber hier haben sich die Antwort und mein Beitrag überschnitten.

geschrieben von Klaush am 19.07.2007 - 12:24
Das ist auch ok:
Zitat
 Original geschrieben von wwwChaOs am 19.07.2007 - 11:13

aber in meinem source wird 2x if aufgemacht
quasi
if{
.......Bedingung 1


if{
.......Bedindigung 2
}
else{Ansonsten 2}


}
else{Ansonsten 1}


weiß nich so recht, geht das nich?
in c++ ging das auch, darum dacht ich hier gehen auch if-in-if-bedigungen =/

mit elseif geht's auch nicht



Diese Struktur ist schlecht lesbar und falsch, da du 2 Else auf die obere if benutzt:
Zitat
 

schreibt man
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 

<?
if ($password == $password2) {
    if (
in_array($username,$user_vorhanden)) {
    }
} else {
    if (
$xUpload fopen ('IZO/' $username '/Upload' $passwort '.php','a')) {
    }
} else {
}
?>





In deiner angehängten Datei wie auch im obigen Code ist deine Bedingung falsch geschrieben. Wenn man den code sauber einrücken würde, sieht man sofort wo eine Blockklammer hingehört. Und jetzt schau dir den Code genau an und folge den Klammern dann findest du einen Fehler in der If Else Struktur.


Hier dein Sourcecode deren Inhalte ich verkürzt, die if-Struktur jedoch gelassen habe:
PHP-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: 

<?
if ($password == $password2)
{
    
$user_vorhanden = array();
    
$passwort md5($password);
    
$userdatei fopen ("useIT.txt","r");
    while (!
feof($userdatei))
    {
        
$zeile fgets($userdatei,500);
        
$userdata explode("|"$zeile);
        
array_push ($user_vorhanden,$userdata[0]);
    }
    
fclose($userdatei);

    if (
in_array($username,$user_vorhanden))
    {
        echo 
"........."
    
}
}
else
{
    
$userdatei fopen ("useIT.txt","a");
    
fwrite($userdatei$username);
    .........
    .........

    if (
$xUpload fopen ('IZO/' $username '/Upload' $passwort '.php','a'))
    {
        
fwrite($xUpload'');
        ........
        ........
    }

    
$xDatalist fopen ("IZO/$username/datalist$passwort.php","a");
    
fwrite($xDatalist'<html>');
    .........
    .........
}
else
{
    echo 
".........";
}
?>



Auf Zeile 39-42 solltest du ein Auge werfen

geschrieben von wwwChaOs am 19.07.2007 - 12:49
@matneu

1. Ja okay der quelltext is chaotisch...
darum hab ich ihn mal schnell nechgebessert und als anhang nochmal dahin

2. Bei der verschachtelung hab ich was vergessen ja, aber es geht trotzdem iwie net


@klausch

danke, das hatte ich noch gesucht... diese eine if-anweisung war da iwie reingrutscht - keine ahnung
jetzt hab ich die entfernt und es geht noch nicht ._.

geschrieben von Klaush am 19.07.2007 - 13:06
Dein Nickname passt dann aber wieder ... *LOL*

okay, ich dachte du kommst selbst drauf, dann werde ich mal tief in meine Seele schauen.

Kommentare werden in PHP üblich so geschrieben:

für ein Zeile reichen 2 Slashes
PHP-Quelltext
1: 
2: 
3: 

<?
// mein Kommentar
?>



bei mehreren Zeilen, kannst du den Kommentar einschließen
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 

<?
/*
 mein Kommentar
 mein Kommentar
*/
?>



Deiner sieht so aus:
PHP-Quelltext
1: 
2: 
3: 

<?
#int mkdir ( string pathname [, int mode] )
?>



Dann hast du ESCAPE Fehler im Code:
Such nach diesen Zeilen und ändere es ab
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 

#<!--UnderC-->fwrite($edit, '<? include ("../upload.php?user=upload'.$passwort.'")?>');
$xUpload = fopen ('IZO/' . $username . '/Upload' . $passwort . '.php','a'))
fwrite($xUpload, "if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target2))");
fwrite($xUpload, "echo \"The file \". basename( $_FILES['uploadedfile']['name']). \" has been uploaded ;");
fwrite($xUpload, "[<a href="index.php" target=\"nickpage\">Back to Nickpage</a>]");




und der Else-Zweig ist noch immer vorhanden und führt ins Error T_ELSE
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 

<?
else{
        echo 
"<font color=FFFFFF face=Verdana size=2>Your passwords are not identical.<br> <a href=\"eintragen.html\">Try again...</a> </font>";
        }
?>




geschrieben von Matneu am 19.07.2007 - 13:50
Zitat
 Original geschrieben von Klaush am 19.07.2007 - 13:06
Kommentare werden in PHP üblich so geschrieben:

Nö, nicht unbedingt, das geht auch mit einer Raute

Zitat
 Dann hast du ESCAPE Fehler im Code:

Das ist kein Escape-Fehler, schliesslich funktioniert ein
PHP-Quelltext
1: 
2: 
3: 

echo('<?php echo "foo"?>');

problemlos. Sobald man diese Zeile allerdings auskommentiert (wie auch immer) wird das "?>" als Beendigung vom PHP-Bereich angesehen. Eine Zeilenübergreifende Auskommentierung per /* [..] */ klappt allerdings.

So far...
Matthias

geschrieben von Klaush am 19.07.2007 - 15:31
Zitat
 Original geschrieben von Matneu am 19.07.2007 - 13:50

Zitat
 Original geschrieben von Klaush am 19.07.2007 - 13:06
Kommentare werden in PHP üblich so geschrieben:

Nö, nicht unbedingt, das geht auch mit einer Raute

Klar geht das, habe nicht gesagt das es nicht geht, es ist aber kein üblicher PHP Kommentar und kommt eher aus der Shell Rubrik und so kenne ich das auch, funktionieren tut's

Zitat
 Original geschrieben von Matneu am 19.07.2007 - 13:50

Zitat
 Dann hast du ESCAPE Fehler im Code:

Das ist kein Escape-Fehler, schliesslich funktioniert ein
PHP-Quelltext
1: 
2: 
3: 

echo('<?php echo "foo"?>');

problemlos. Sobald man diese Zeile allerdings auskommentiert (wie auch immer) wird das "?>" als Beendigung vom PHP-Bereich angesehen. Eine Zeilenübergreifende Auskommentierung per /* [..] */ klappt allerdings.

Och Mat, musst du immer alles os genau nehmen? *gg*. Der Ordentlichkeit halber hast du natürlich Recht, ich war halt faul und wollte es nicht auseinander nehmen und habe es eben unter der großen FAULEN Rubrik ESCAPED abgehakt.



Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.