onclick in echo

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
DarkMan32
Mitglied
Beiträge: 19
Registriert: 08.10.2004 22:26

onclick in echo

Beitrag von DarkMan32 »

Hallo,

ich wollte auf der Hauptseite ein Login einfügen und da sollte es so ein, dass im oberen Kasten Loginname steht und bei klick es sich leert. Nun ist aber das Problem, dass es davor noch die Kontrolle geben soll ob er eingeloggt ist oder nicht und dann muss ich das doch sein:

Code: Alles auswählen

<?php

if ( $userdata['session_logged_in'] )
{

$link = append_sid('index.php');
    echo '<a href="$link">Zum Forum</a>';

}
else
{

echo '		<form action="forum/login.php" method="post"> /n';

echo '	<img src="forum/templates/BBTech/images/spacer.gif" width="78" height="6"> /n';


echo '<input type="text" name="username" value="Loginname" size="15" maxlength="50" onclick="this.value='';"><br><br> /n';
echo '<input type="password" name="password" size="15" maxlength="50"><br><br> /n';
echo 'Autologin? <input type="checkbox" name="autologin"><br> /n';
echo '<input type="hidden" name="redirect" value="index.php"> <br> /n';
echo '<input type="submit" name="login" value="Login"> /n';
echo '</p> /n';
echo '</form> /n';	 
    
}
?>
Aber dann stört ja das '' bei onlick! Was kann ich da machen?

Und oben wollte ich aprend sid mit einfügen, klappt das so?

Danke im Voraus
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Re: onclick in echo

Beitrag von Blutgerinsel »

DarkMan32 hat geschrieben: Aber dann stört ja das '' bei onlick! Was kann ich da machen?

Und oben wollte ich aprend sid mit einfügen, klappt das so?
Ist der Beitrag eine codierte Nachricht die man erst decodieren muss bevor man erst die Sachlage erfassen kann?
DarkMan32
Mitglied
Beiträge: 19
Registriert: 08.10.2004 22:26

Beitrag von DarkMan32 »

Nochmal zum Nachvollziehen:

Alsoich habe eine in phpBB eingebundene Homepage, auf der ich einen Login eingefügt habe.

___________
|__________|
___________
|__________|
_______
| Login |

Im oberen Kasten soll der User sein Nick eintragen und darunter das Passwort. Damit das auch für jeden verständlich ist wo was reingehört, steht im oberen Kasten standardmäßig Loginname (ich hoffe das kann jeder nachvollziehen).

Nun klick der User in den Kasten um seinen Nick einzutragen und Loginname erlischt. Der Code sieht dann so aus:

Code: Alles auswählen

<input value="Loginname" onclick="this.value='';">
Wenn ich nun aber erst eine Überprüfung mache, ob der User nicht schon bereits angemeldet ist. Dazu stand ja in der KnowledgeBase folgendes

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
    // Code, wenn ein Benutzer angemeldet ist
}
else
{
    // Code, wenn kein Benutzer angemeldet ist
}
Wenn er angemeldet ist soll ein Link mit zum Forum erscheinen. Dafür wird ja

Code: Alles auswählen

<a href="<?= append_sid('index.php'); ?>">Zum Forum</a>
empfolen. Aber wie kann ich das in die Überprüfung einfügen, sodass der Link auch ordnungsgemäß funktioniert?


Und wenn der User nicht angemeldet ist, soll eben der Login erscheinen. Bei dem oberen Kasten sieht der Code ja wie oben aus. Und jetzt noch in die Überprüfung eingebaut:

Code: Alles auswählen

echo '<input value="Loginname" onclick="this.value=' ';">';
Aber da ja bei this.value zwei agostrophe stehen, denk php, dass dort die echo Anweisung bereits zu Ende ist. Darum ergibt das ganze dann einen Fehler. Jetzt ist meine Frage, wie ich das ganze umschreiben muss, damit das funktioniert, ohne gleich ein include Anweisung zu verwenden (also so

Code: Alles auswählen

include ('login.php');
)

Jetzt alles verstanden?
Benutzeravatar
oliver12345
Mitglied
Beiträge: 613
Registriert: 22.05.2003 16:58
Wohnort: Thale
Kontaktdaten:

Beitrag von oliver12345 »

@ DarkMan32

Versuche mal das hier:

Ersetze:

Code: Alles auswählen

echo '<input type="text" name="username" value="Loginname" size="15" maxlength="50" onclick="this.value='';"><br><br> /n';
mit dem:

Code: Alles auswählen

echo '<input type="text" name="username" value="Loginname" size="15" maxlength="50" onclick="this.value=\'\';"><br><br> /n';
ollis-page-online.de - Alles zum verrücktesten Huhn Deutschlands.
ollis-forum-online.de.vu - Das Forum zum Kulthuhn
Benutzeravatar
QCO
Mitglied
Beiträge: 708
Registriert: 15.03.2003 12:30
Wohnort: Leipzig

Beitrag von QCO »

Nein, tut mir wirklich leid, aber deine Beschreibung des Problems ist absolut unverständlich.
Ich hab deinen Code gelesen und nur dort zufällig einen Fehler gesehen.
Aber du kannst nicht erwarten, dass hier jemand x Zeilen Code liest ohne zu wissen, wonach er suchen soll.

Code: Alles auswählen

echo '<input value="Loginname" onclick="this.value=\' \';">';
Das sollte dein Problem lösen.

Aber was du mit dem Link willst, ist mir nicht klar. Soweit ich das überblicke, sollte das so, wie dein Code ist funktionieren.

[edit] Da hab ich mir wohl wieder zu viel Zeit gelassen... :-?
Schnelle direkte Hilfe? Modeinbau? Umfassender, persönlicher Support? Ein individuelles Design/Template?
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
DarkMan32
Mitglied
Beiträge: 19
Registriert: 08.10.2004 22:26

Beitrag von DarkMan32 »

Sollte kein Vorwurf sein, ist mir auch erst danach aufgefallen ;)

Super, hat alles geklappt, danke!

Jetzt habe ich aber beim mehrmaligen testen festgestellt, dass manchmal folgende fehlermeldung kommt:

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at /index.php:9) in /forum/includes/sessions.php on line 305

Warning: Cannot modify header information - headers already sent by (output started at /index.php:9) in /forum/includes/sessions.php on line 306
Also das erschien schon vor dem hinzufügen von onclick="this.value='';" und zwar nachdem ich

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata); 
einfügte (also für as einbinden einer Seite in phpBB). In dieser Datei in der angegebenen Zeile steht was mit Cookies für die Session.

Was bedeutet das?




[EDIT]
Wegen dem link:

Also in der Knowledge-Base steht doch, dass man für das verlinken zum Forum von einer in phpBB eingebunden Seite nicht

Code: Alles auswählen

<a href="index.php">Zum Forum</a>
sondern besser

Code: Alles auswählen

<a href="<?= append_sid('index.php'); ?>">Zum Forum</a>
nehmen sollte.

Wie kann ich das jetzt in die Abfrage einfügen weil

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
<a href="<?= append_sid('index.php'); ?>">Zum Forum</a>
}
else
{
    // Code, wenn kein Benutzer angemeldet ist
}
geht das ja nicht.
Benutzeravatar
oliver12345
Mitglied
Beiträge: 613
Registriert: 22.05.2003 16:58
Wohnort: Thale
Kontaktdaten:

Beitrag von oliver12345 »

@ DarkMan32

Ersetze:

Code: Alles auswählen

<a href="<?= append_sid('index.php'); ?>">Zum Forum</a>
mit:

Code: Alles auswählen

echo '<a href="' . append_sid("index.$phpEx") . '">Zum Forum</a>';
ollis-page-online.de - Alles zum verrücktesten Huhn Deutschlands.
ollis-forum-online.de.vu - Das Forum zum Kulthuhn
DarkMan32
Mitglied
Beiträge: 19
Registriert: 08.10.2004 22:26

Beitrag von DarkMan32 »

Hat auch geklappt! THX!

Wenn mir jetzt noch jemand den Fehler erklären kann bin ich schon zufrieden ^^
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

DarkMan32 hat geschrieben:Hat auch geklappt! THX!

Wenn mir jetzt noch jemand den Fehler erklären kann bin ich schon zufrieden ^^
Kurz:
Ein HTTP Header kann und darf nur einmal gesendet werden.....
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Blutgerinsel hat geschrieben:Kurz:
Ein HTTP Header kann und darf nur einmal gesendet werden.....
Und lang: KB:headers_already_sent
KB:knigge
Antworten

Zurück zu „Coding & Technik“