Datenbank

hi,

ich bin ein kompletter neuling hier in diesem gebiet, ich kann voll html und css und teilweise auch php.
Nur möchte ich gerner folgendes machne, habe jedoch keine ahnung wie.

Es soll ein Formular geben wo man seinen namen und einen link eingit
der name und der link sollen sofort nach dem abschicken auf einer anderen seite zu sehen sein.

Wer kann mir ein gutes tutorial oder eine gute erklärung, am besten mit codes geben?

ist das denn überhaupt umsetzbar??

Dann such dir ein Tutorial für ein Gästebuch oder sowas - den Teil mit dem Eintragstext kannst du ja dann einfach rauswerfen, so dass nur noch Name und Link übrig bleiben.

voll dei gute idee :wink:
Mach ich mal…:wink:

das hat alles fast soweit geklppt danke :wink:

nur noch ein problem…xD

ich habe halt diesen code:

[code]<?php

$daten=$_POST[eintrag].“
von <a href=:”.$_POST[email].">".$_POST[name]."

";

$datenbank = “daten.dat”;

$datei = fopen($datenbank,“a”);

fwrite($datei, $daten);

?>

Eintrag erfolgreich.

Zurück zum Spenden[/code]

und dabei sol der teil “
von <a href=:”.$_POST[email].">" ein ganz normaler link sein auf eine seite, das e-mail steht da nur, da ich die klassennamen nicht geändert habe.
Aber im moment ist es so dass wenn man im formular halt den link angibt man nicht auf die seite kommt. was muss da richtig hin?

Vielleicht müsste erst mal der Doppelpunkt hinter href= weg …?

Und dass du dir, wenn du dir keine Gedanken über die Absicherung machst, ein XSS-Lücke aufreisst, sollte vielleicht auch mal erwähnt werden. (Die “Hä, was?”-Rückfrage werde ich aber nicht beantworten, darüber informiere dich bitte selber.)

[code]<?php

$daten=$_POST[eintrag].“
Spende “.$_POST[name].”

”;

$datenbank = “daten.dat”;

$datei = fopen($datenbank,“a”);

$eintrag=strip_tags($eintrag);

fwrite($datei, $daten);

?>

Eintrag erfolgreich.

Zurück zum Spenden[/code]

Die Sichhhereitslücke ist jetzt glaub ich beseitigt.
Aber die url sache klappt noch immer nicht…

Nein. strip_tags ist eine der unbrauchbarsten Funktionen, die PHP überhaupt bereitstellt.

“Klappt nicht” ist keine brauchbare Problembeschreibung.

Wie sieht die Benutzereingabe aus, welche Ausgabe erwartest du, welche kommt stattdessen … etc. - dann können wir so langsam von einer brauchbaren Problembeschreibung sprechen. “Klappt nicht” ist einfach nur Mist.

zu der sichherheitslücke: das war der einzige code den ich dafür kannte…
kannst du mir was geben?

zu dem url problem:
also es gibt eine seite wo halt name und link eingeben werden:
http://pc-x.bplaced.net/eintragen.htm

und dann gibt es eine seite, wo alles halt angezeigt werden soll, was eingegebn wurde:
http://pc-x.bplaced.net/guestbook.php

[code]PHP code von http://pc-x.bplaced.net/guestbook.php

Spendenlinks

In die Spendenliste eintragen

<?php $datenbank = "daten.dat"; $datei = fopen($datenbank,"r"); fpassthru($datei); ?>[/code]

[code]der code von http://pc-x.bplaced.net/gb.php

<?php $daten=$_POST[eintrag]."
Spende ".$_POST[name]."

"; $datenbank = "daten.dat"; $datei = fopen($datenbank,"a"); $eintrag=strip_tags($eintrag); fwrite($datei, $daten); ?>

Eintrag erfolgreich.

Zurück zum Spenden[/code]
und dort sollen dann die eingabe so dargesttelt werden:
spende “hier der eingebende name, als verlink zu der angegeben url”

[quote=“pc-x”]zu der sichherheitslücke: das war der einzige code den ich dafür kannte…
kannst du mir was geben?[/quote]
htmlspecialchars ist das gängigste, um Eingaben, die in den Kontext HTML überführt werden sollen, für diesen aufzubereiten.

Das beantwortet meine Fragen noch in keinster Weise.

Was erwartest du, was passiert stattdessen?

(Derzeit kommt erst mal ein Parse Error - was du ja zumindest mal erwähnen könntest. Den beseitigst du jetzt erst mal - und dann geht es wieder von vorne los: Was erwartest du bei welchen Eingabedaten, was passiert stattdessen, wie sieht die Ausgabe aus, etc.)

also grade den error krieg ich doch nicht weg, da ich irgendwas i code in zeile3 falsch habe. deshalb kommt auch erst kein eintrag zu stande.

Na dann informier dich erst mal, wie man Variablen in PHP in Strings einbinden kann:

php.net/manual/en/language.t … ng.parsing

irgendiwe kapier ich die seite nicht…

so hier ist alles was zum gästebuch geört, es wäre einfach nur schön zu erfahren wo der fehler ist…:frowning:

[code]pc-x.bplaced.net/eintragen.htm

Pennergame Name:
Spendenlink:          
[/code]

[quote]pc-x.bplaced.net/gb.php

<?php $daten=$_POST[eintrag]."
Spende $_POST[name]

"; $datenbank = "daten.dat"; $datei = fopen($datenbank,"a"); string htmlentities ( string $string [, int $quote_style= ENT_COMPAT [, string $charset [, bool $double_encode= true ]]] ) fwrite($datei, $daten); ?>

Eintrag erfolgreich.

Zurück zum Spenden[/quote]

[code]pc-x.bplaced.net/guestbook.php

Spendenlinks

In die Spendenliste eintragen

<?php $datenbank = "daten.dat"; $datei = fopen($datenbank,"r"); fpassthru($datei); ?>[/code]

Red’ dich nicht so billig heraus.
Die Seite listet diverse Beispiele auf, wie Variablen in Strings auftauchen können - und welche davon funktionieren, und welche nicht.
Lesen - Verstehen - Umsetzen.

Die einfachste und sauberste Methode wäre, den String zu beenden, mit dem Verkettungsoperator mit der Variablen verknüpfen, und danach mit dem gleichen Operator ggf. noch wieder einen Stringteil anzufügen.

ahhh…ha… -.-

so es klappt jetzt alles :p

Jetz wollt ich nur noch wissen ob es möglich ist, denn code so zu verändern, das nur einträge in der spalte spendenlink angenommen werden, in den folgendes steht:
www .beispielseite.de/Hier ist egal was da steht/

[quote=“pc-x”]Jetz wollt ich nur noch wissen ob es möglich ist, denn code so zu verändern, das nur einträge in der spalte spendenlink angenommen werden, in den folgendes steht:
www .beispielseite.de/Hier ist egal was da steht/[/quote]
Du meinst also, das www.beispielseite.de/ soll Pflicht sein, und nur das danach soll der Nutzer frei wählen können?

Nun, entweder prüfst du das mittels Stringfunktionen wie bspw. strpos, ob die Eingabe mit der von dir festgelegten Zeichenkette anfängt - oder, m.E. vernünftiger, du gehst das gleich eine Stufe vorher an, nämlich im Benutzerinterface:

Bitte gebe hier den Bestandteil deiner Adresse auf www.beispielseite.de/ hinter dem Slash ein: www.beispielseite.de/<input ...>- und dann setzt du www.beispielseite.de/ bei der Ausgabe selber jedes mal davor.

gut, danke :wink: ich habe die 2. möglichkeit gewählt, klappt auch…xD

eine letze sache wäre da nur noch, da das ja links sind, soll man draufklicken logisch :p
Aber an einigen stellen muss ich das alles per Iframe einbinden und der zielserver verweigert iframes, d.h. wenn man einen link dieses servers durch einen iframe aufruft, kommt eine fehlermerldung, deshlab möchte ich das in der ausgabe so einstelleb, das sich der link in einem neuen tab öffnet, aber meine version klappt nicht so ganz…

Mein code:

[code]

<?php $daten=$_POST[eintrag]."
Spende $_POST[name] $_POST[email]

"; $datenbank = "daten.dat"; $datei = fopen($datenbank,"a"); $eintrag=strip_tags($eintrag); fwrite($datei, $daten); ?>

Eintrag erfolgreich.

Zurück zum Spenden[/code]

ohne das target="_blank" klappt der code…

Wenn du die Anfürhungszeichen so notierst, ist der String damit natürlich kaputt - aber die Seite darüber, wie man in PHP mit Strings umgeht, habe ich dir bereits verlinkt … also zeig jetzt bitte mal, dass du auch was dazulernen kannst!