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

Artikeleinlesen .... :(

BDG

Mitglied
Hallo Leute ...
Ich wollte gerade mal so ein php code machen mit dem man text-datein einlesen kann ...
Aber wie fast immer wenn ich am Werk bin geht es nicht ...
hier der code :
Code:
<?php
echo "<form action='artikeleinlesen.php' method='POST'>";
echo "Geben sie den Dateinamen ein:"
<input type='Text' name='lesedatei'></input>;
echo "<p><input type='Submit' name='egal' value='Versenden'></input></p>";
echo "</form>";
?>
da kommt ein error das in Zeile 4 was nicht stimmt ... und hier der code von der datei artikeleinlesen.php :
Code:
<?php
$lesedatei=$_POST[lesedatei];
$datei = @file ($lesedatei.'.txt);
?>
... ich hoffe ihr könt mir helfen
 
Werbung:
In Zeile 4 und 5 hast Du die Anführungszeichen falsch gesetzt oder/und das Semikolon vergessen. Den Code kannst Du aber auch komplett ohne PHP schreiben, da es nur HTML ist.
 
??
Frage NR.1: Im editor sieht man die anführungszeichen noch aber wenn ich es hier reinkopire gehen die weg !? why
Frage NR.2: Wie geht sowas denn in html ?
 
Werbung:
Die Anführungszeichen sind falsch. Da kann dein Editor auch nichts dafür. Schreib Du es richtig.

Ein Formular gibst Du in HTML aus. Was Du in der Datei stehen hast ist purer HTML-Code den Du nur über php ausgibst. Es ist nicht notwendig für ein HTML-Formular php-Code zu nutzen. Den php-Code brauchst Du erst bei der Verarbeitung, also in dieser "artikeleinlesen.php".
 
? ich hab aber echt alles so gemacht wie es in meinem teuren lehrbuch steht .... und habs 10 mal angeguckt und da waren 0 fehler ....
 
Naja also ok ich habs jetzt mit html hingekrigt ... hier is der code so :
Code:
<html>
<form action='artikeleinlesen.php' method='POST'>
Geben sie den Dateinamen ein:
<input type='Text' name='lesedatei'></input>
<p><input type='Submit' name='egal' value='Versenden'></input></p>
</form>
</html>
aber was ist jetzt an der datei artikeleinlesen falsch ? die sieht immernoch wei oben so aus :
Code:
<?php
$lesedatei=$_POST[lesedatei];
$datei = @file ($lesedatei.'.txt);
?>
 
Werbung:
Der Code liest eine Datei ein. Ok. Aber er gibt gar nichts aus. Das müsstest Du natürlich noch ergänzen. Oder was auch immer Du damit machen willst.
 
So jetzt hab ich nochmal was neues probiert : hier die quelltext von der datei artikeleinlesen.php :
Code:
<?php 
$fp = fopen("","r"); // Datei öffnen 
if ($fp) 
{ 
    while(!feof($fp))//Solange bis der Dateizeiger am Ende der Datei ist 
    { 
       $zeile = fgets($fp,100);//Einlesem der Zeilen 
       echo"Inhalt:$zeile <p>";//Ausgabe 
    } 
fclose($fp); // Datei schließen 
} 
else 
{ 
echo "Datei wurde nicht gefunden"; // Sollte Datei nicht vorhanden sein 
}  
 
?>
So das geht auch wenn ich da oben eine Datei eintrage .... aber ich will ja dass man da die datei eingeben kann ... deswegen hab ich einfach so gemacht :
Code:
<?php 
$fp = fopen("$lesedatei","r"); // Datei öffnen 
if ($fp) 
{ 
    while(!feof($fp))//Solange bis der Dateizeiger am Ende der Datei ist 
    { 
       $zeile = fgets($fp,100);//Einlesem der Zeilen 
       echo"Inhalt:$zeile <p>";//Ausgabe 
    } 
fclose($fp); // Datei schließen 
} 
else 
{ 
echo "Datei wurde nicht gefunden"; // Sollte Datei nicht vorhanden sein 
}  
 
?>
Aber das geht auch nicht ... und ich hab das so auch gaz oft versucht ...
Also da hab ich ja $lesedatei hingeschriben weil im html code steht :
Code:
<html>
<form action='artikeleinlesen.php' method='POST'>
Geben sie den Dateinamen ein:
<input type='Text' name='lesedatei'></input>
<p><input type='Submit' name='egal' value='Versenden'></input></p>
</form>
</html>
und da hab ich gedacht ich nehme da das :
Code:
<input type='Text' name='lesedatei'></input>
... kann mir jemand sagen wie das geht ? ich hab schon so eine vermutung ... Vielleicht ja weil dieses <input type='Text' name='lesedatei'></input> nicht in der artikeleinlesen.php drinne steht sondern haltim html code .... aber ich weiß trotzdem nicht was ich da machen soll ... Ich hoffe ihr könnt mir helfen ...
 
Dafür ist das value-Attribut da. Zudem muss die Datei die den folgenden Code enthält auf .php enden:

Code:
<html>
<form action='artikeleinlesen.php' method='POST'>
Geben sie den Dateinamen ein:
<input type='Text' name='lesedatei'[COLOR="Red"] value="<?php echo $lesedatei; ?>"[/COLOR]></input>
<p><input type='Submit' name='egal' value='Versenden'></input></p>
</form>
</html>
 
Werbung:
so aber jetzt erscheint folgender Fehler :
Code:
[B]Warning[/B]: fopen() [[URL="http://de.php.net/function.fopen"][COLOR=#dd0f42]function.fopen[/COLOR][/URL]]: Filename cannot be empty in [B]/users/bdg/www/A-test/artikeleinlesen.php[/B] on line [B]2[/B]
Datei wurde nicht gefunden
und meine artikeleinlesen.php datei sieht so aus :
Code:
<?php 
$fp = fopen("$lesedatei","r"); // Datei öffnen 
if ($fp) 
{ 
    while(!feof($fp))//Solange bis der Dateizeiger am Ende der Datei ist 
    { 
       $zeile = fgets($fp,100);//Einlesem der Zeilen 
       echo"Inhalt:$zeile <p>";//Ausgabe 
    } 
fclose($fp); // Datei schließen 
} 
else 
{ 
echo "Datei wurde nicht gefunden"; // Sollte Datei nicht vorhanden sein 
}  

?>
Was ist Falsch ? die datei mit dem inhaalt :
Code:
<html>
<form action='artikeleinlesen.php' method='POST'>
Geben sie den Dateinamen ein:
<input type='Text' name='lesedatei' value="<?php echo $lesedatei; ?>"></input>
<p><input type='Submit' name='egal' value='Versenden'></input></p>
</form>
</html>
hab ich jetzt auch als php gespeichert ...
 
$lesedatei wird bei dir ja gar nicht mit dem Wert aus dem Formular gefüllt. Außerdem solltest Du dort auch noch eine Prüfung einbauen, ob $lesedatei leer ist oder nicht und nur, wenn etwas drinne steht weitermachen.
 
Ja also prüfung bau ich noch ein ... ich weiß auch schon wie aber erstmal will ich ja das man da den name eingeben kann und das die datei dann ausgelesen wird .... wie geht das denn ? was hab ich falsch gemacht un wie muss ich es richtig machen ?
 
Werbung:
Ja ne also ich wollte ganz einfach nur ein eingabebereich wo man eine textdatei eintragen kann und die wird dann gelesen ...
und mehr wollte ich nicht ... kannst du mir sagen wie die beiden dateien aussehen müssen ?
 
Also im Prinzip ist das schon richtig, wenn die Datei auf dem Server liegt und du manuell den Namen der Datei eingeben willst, um diese Datei auf dem Server auszulesen. Jedoch (wie threadi schon erwähnt hat) setzt du die Variable $lesedatei ein, ohne sie vorher zu initialisieren und mit einem Wert zu bestücken, folglich: $lesedatei ist ohne Wert.

Deine Formulardaten werden mit POST übergeben, diese kannst du anschließend über den $_POST-Array aufrufen. Das Schema dazu sieht so aus: $_POST['Feldname']
In deinem Falle hieße das: $_POST['lesedatei']

Nun musst du noch deine Variable $lesedatei mit $_POST['lesedatei'] bestücken, also $lesedatei = $_POST['lesedatei'];

Das setzt du einfach an den Anfang deiner artikeleinlesen.php. Außerdem benötigst du bei deinem fopen-Befehl keine doppelten Anführungszeichen um die Variable zu setzen.

Mach das erstmal und probier aus, obs jetzt funktioniert ^^
 
Werbung:
" ???? -??-?? ? ? ??? ???-??-???-??? -hallo-??-??? ??? " so viel hab ich verstanden ...
Also das hier is mein PHP-code den würde ich jetzt in meine homepage einbauen :
HTML:
<html>
$_POST['lesedatei']
<form action='artikeleinlesen.php' method='POST'>
Geben sie den Dateinamen ein:
<input type='Text' name='lesedatei' value="<?php echo $lesedatei; ?>"></input>
<p><input type='Submit' name='egal' value='Versenden'></input></p>
</form>
</html>
und mein PHP code (artikeleinlesen.php)sieht so aus :
Code:
<?php 
$fp = fopen("$lesedatei","r"); // Datei öffnen 
if ($fp) 
{ 
    while(!feof($fp))//Solange bis der Dateizeiger am Ende der Datei ist 
    { 
       $zeile = fgets($fp,100);//Einlesem der Zeilen 
       echo"Inhalt:$zeile <p>";//Ausgabe 
    } 
fclose($fp); // Datei schließen 
} 
else 
{ 
echo "Datei wurde nicht gefunden"; // Sollte Datei nicht vorhanden sein 
}  
 
?>
was ist jetzt falsch ?
 
Zuletzt bearbeitet:
Werbung:
Jaja ... Vielen dank für diesen f***ing link .. Aber ich lern ja auch gerade php und html und im lehrbuch steht das halt so und dann wollte ich dass nachmachen ... halt so zum lernen ...
@threadi : Und soll ich dass jetzt wegstreichen oder was soll ich da machen ?
 
Jaja ... Vielen dank für diesen f***ing link .. Aber ich lern ja auch gerade php und html und im lehrbuch steht das halt so und dann wollte ich dass nachmachen ... halt so zum lernen ...

Du hast eine PHP Variable einfach so in HTML verbaut. Die Trennung von HTML und PHP gehört meiner Meinung nach zu den Basics, und zwar ganz an den Anfang. Und wenn du die nicht drauf hast, bin ich nicht bereit, dir zu helfen, weil ich dir dann alles vormachen muss und du nichts daraus lernst.

Außerdem ist dieser "f***ing link" eine wirklich gute Sammlung an Referenzseiten und Tutorials, auch für erfahrenere Benutzer.
 
Zurück
Oben