php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.05.2007, 17:59  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard Escapesequentzen

Hallo Ich möchte mittels einem PHP-Script deine PHP-Datei erzeugen.
Dazu habe ich ein String erzeugt in dem ein echo -Befehl erzeugt wird. normalerweise verden ich
Code:
echo "<?<form method=\"post\"...?>
also das \"für die erzugung eines "
Was mach ich wenn ich das \" in einem String erzeugen möchte

also
Code:
 $phpcode="echo "<? <form  method=\\"post\\"..?>
funktioniert nicht

gruß niesel
nieselfriem ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.05.2007, 18:14  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Für jede 'Abstraktionsstufe' mußt Du alle nötigen Zeichen escapen. Also

PHP-Code:
echo "Ein \" ausgeben";
echo 
"echo \"Ein \\\" ausgeben\";";
usw
Am besten benutzt Du addslashes (), mit einfachen Hochkommata kannst Du Dir auch einige Escapes sparen.

Einfacher wirds mit der sogenannten heredoc Syntax.
nikosch ist offline  
Alt 06.05.2007, 18:22  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard Re: Escapesequentzen

Zitat:
Zitat von nieselfriem
Ich möchte mittels einem PHP-Script deine PHP-Datei erzeugen.
Danke, vielleicht später.
Was du vorhast ist ganz schlechter Stil und NIE nötig. Warum nie?
Weil du die Daten, mit denen du die Datei jetzt erzeugst, auch speichern kannst um sie später eben dynamisch zu erzeugen oder zu simulieren.

Es macht deinen Code nur unnötig kompliziert, ist zudem eine Sicherheitslücke und verursacht wahrscheinlich auch Speicherplatz (zumindest wenn du der "pro User eine PHP-Datei"-Philosophie anhängst).

Lass uns über dein Ziel reden, dann machen wir das richtig
Zergling-new ist offline  
Alt 06.05.2007, 18:38  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hier ist das Problem:
$php .="echo \\\"<a href=\"$uid.php\\\" title=\\\"$uid\\\">Registrerungsabschluss</a>\\" ;\n";
jedoch kommt dabei folgndes heraus:

echo \"Registrerungsabschluss" ;

wie meinst du das mit den addslashes?
nieselfriem ist offline  
Alt 06.05.2007, 18:45  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja ich möchte einfach ein registrierungssystem erstellen bei dem jeden angemeldeten benutzer eine mali zugesendet wird mit einem link, den er anclickt um sein profil zu aktivieren. ähnlich dem des forums hier.

Gruß niesel
nieselfriem ist offline  
Alt 06.05.2007, 18:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Warum musst du dann mit PHP eine PHP-Datei erstellen?
Zergling-new ist offline  
Alt 06.05.2007, 18:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und was hat das mit Deiner Frage zu tun?
Möchtest Du einfach nur einen String mit variablen Parametern zusammenbauen? Schau Dir mal die php Grundlagen an: http://www.php.net/manual/de/language.variables.php
nikosch ist offline  
Alt 06.05.2007, 19:01  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

damit jeder nutzer nur einen bestimmten link bekommt der in seiner zu ihm zugeordneten e-mailadresse zugeschickt wird @zergling

bei einfachen string habe ich keine probleme damit ich habe auch schon einiges über escapesequenzen gelesen und damit gearbeitet. nur hier stoß ich momentan an meine grenzen, wie das obige besipiel zeigt. @ nikosch77
nieselfriem ist offline  
Alt 06.05.2007, 19:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Dieses echo ist das was wir nicht nachvollziehen können. Du führst doch nur einmal Dein php Script aus und darin schreibst Du mit dem generierten String Deinen Emailinhalt. In der Mail wird doch php nicht ausgewertet, da steht doch maximal html drin.
nikosch ist offline  
Alt 06.05.2007, 19:07  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Hallo Nieselfriem,

da gibt es so viele Möglichkeiten, die sicherer und eleganter sind. Läuft denn eine Datenbank im Hintergrund?

Erzeuge doch einen "einzigartigen" Registrierungsschlüssel bei der Registrierung und schicke diesen per Mail mit an den Benutzer. Sobald er den "Aktivierungslink" verfolgt (oder in einer Maske eingibt) und der Abgleich mit der Datenbank erfolgreich war, aktivierst Du den Benutzer.
Dabei kann nichts schief gehen und es ist um ein Vielfaches variabler.

Gruß,
pepe

EDIT: der Aktivierungslink ist auch dann einzigartig wenn er so lautet:
www.domain.de/activation.php?uKey=a7JhN....
dafür braucht man doch nicht unterschiedliche php-Dateien!
pepe24 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.