"alert" nur beim ersten Aufruf der Seite verwenden

…ist eine Skriptsprache, die die Möglichkeiten von HTML stark erweitert. Sie wird eingesetzt, um Internet-Seiten flexibel und interessant gestalten zu können. Beispiel: Formulare mit Berechnungsfunktionen / animierte Schaltflächen oder einfach fallender Schnee. - Fragen - Antworten –Tipps hier hinein...

Moderator: lauras

Beiträge bitte im neuen Forum

"alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Alexander2105 » Donnerstag 11. November 2010, 18:34

Hy, ich hab eine etwas komplizierte Frage wobei ich mir nicht sicher bin ob ich hier richtig bin.
Wenn jemand die Startseite aufruft habe ich eine art Popup mit diesem Code gemacht:
Code: Alles auswählen
<!--
<script type="text/javascript">
<!--
alert("Nachricht");
//-->
</script>

Das Problem ist aber, das dieser alert jedesmal erscheint wenn man die Startseite besucht. Heist wenn man auf eine andere Seite wechselt und dann wieder zurück auf die startseite erscheint es nocheinmal.
Das das das aber extrem nervend und auch relativ Sinfrei is;), suche ich einen Code, damit dieses Popup nur erscheint wenn man die Startseite zum ersten mal aufruft. Damit meine ich nicht das es nie wieder erscheint. Wenn man den Browser schliest, bzw. auf eine andere externe Seite wechselt, und die Startseite meiner Page wieder aufruft sollte es schon wieder erscheinen.

Ehrlichgesagt bin ich mir nicht sicher ob es sowas überhaupt gibt, aber wenn ja wärs cool wenn mir da jemand helfen könnte.

LG,
Alex ;)
Alexander2105
HTML-Newbie
 
Beiträge: 23
Registriert: Montag 26. Juli 2010, 23:05

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Sarkkan » Donnerstag 11. November 2010, 19:15

Öhm.. Entweder du machst das über einen Cookie oder was mir sonst noch einfallen würde, wäre mit PHP und Session zu arbeiten^^
Also das der Code nur dann ausgegeben wird, und daher nur dann ausgeführt wird, wenn keine Session vorhanden ist :D
Code: Alles auswählen
<?php
    session_start
();
    if(
$_SESSION['Besuch'] === null){
        
$_SESSION['Besuch'] = true;
        echo 
'DEINEN JS-CODE';
    }
?>


Ich glaube so müsste das ganz grob aussehen^^
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Alexander2105 » Freitag 12. November 2010, 20:30

Hab das jetzt mal so gemacht:
Code: Alles auswählen
<?php
    session_start();
    if($_SESSION['Besuch'] === null){
        $_SESSION['Besuch'] = true;
        echo 'alert("Nachricht")';
    }
?>


Aber irgendwie passiert da gar nichts. Wieso weis ich leider auch nicht weil ich mich mit PHP Nüsse auskenn *gg*
Alexander2105
HTML-Newbie
 
Beiträge: 23
Registriert: Montag 26. Juli 2010, 23:05

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Sarkkan » Freitag 12. November 2010, 21:31

Nur mal eine Frage.. wo wird den das 'alert("Nachricht");' den ausgegeben? (:
Schau dir doch den Quellcode an, wo es steht :D

Naja.. die Lösung ist ganz einfach, alert ist eine JS Funktion und muss daher in einen <script>-Tag? (:
Code: Alles auswählen
[Sessionkram]...
echo '
<script>
    alert("Nachricht");
</script>';
:wink:
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Alexander2105 » Samstag 13. November 2010, 00:01

Ok, hab das jetzt so gemacht:
Code: Alles auswählen
<?php
    session_start();
    if($_SESSION['Besuch'] === null){
        $_SESSION['Besuch'] = true;
        echo '
        <script>
        alert("Nachricht");
        </script>';
    }
?>

Aber es funktioniert trozdem nicht^^
Alexander2105
HTML-Newbie
 
Beiträge: 23
Registriert: Montag 26. Juli 2010, 23:05

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Sarkkan » Samstag 13. November 2010, 00:26

1. Welchen Doctype verwendest du?
<script> (Nur so) geht nur im HTML5-Doctype.

2. Verwende einfach aus Sicherheit folgendes:
Code: Alles auswählen
<script language="javascript" type="text/javascript">
anstelle von <script>. War eben nur etwas faul :P
Benutzeravatar
Sarkkan
HTML-Acrobat
 
Beiträge: 1557
Registriert: Montag 5. April 2010, 01:46
Wohnort: Bei Köln

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Alexander2105 » Samstag 13. November 2010, 16:30

Ich weis das ich dir jetzt vielleicht ein bischen auf den Sack gehe, habs jetzt so gemacht:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html5/">
<html lang="de">
<head>
<title></title>
<script type="text/css">
body{
    background-image: url("bg.jpg") no-repeat;
}
</script>
</head>
<body>
<?php
    session_start();
    if($_SESSION['Besuch'] === null){
        $_SESSION['Besuch'] = true;
        echo '
        <script language="javascript" type="text/javascript">
        alert("Nachricht");
        </script>';
    }
?>
</body>
</html>

und trozdem gehts nicht ^^

LG Alex
Alexander2105
HTML-Newbie
 
Beiträge: 23
Registriert: Montag 26. Juli 2010, 23:05

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Sören » Samstag 13. November 2010, 19:24

Du musst Sessions ganz am Anfang der Datei starten, bevor etwas anderes ausgegeben wird, sonst funktionieren sie nicht.

Ich habe den Befehl mal nach oben verschoben.
Code: Alles auswählen

<?php 
 session_start
();
?>    
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html5/">
    <html lang="de">
    <head>
    <title></title>
    <script type="text/css">
    body{
        background-image: url("bg.jpg") no-repeat;
    }
    </script>
    </head>
    <body>
    <?php
        
if($_SESSION['Besuch'] === null){
            
$_SESSION['Besuch'] = true;
            echo 
'
            <script language="javascript" type="text/javascript">
            alert("Nachricht");
            </script>'
;
        }
    
?>
    </body>
    </html>
Benutzeravatar
Sören
HTML-Acrobat
 
Beiträge: 851
Registriert: Samstag 5. Juni 2010, 16:00

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Alexander2105 » Samstag 13. November 2010, 22:10

Habs jetzt genau so gemacht:
Code: Alles auswählen
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html5/">
    <html lang="de">
    <head>
    <title></title>
    <script type="text/css">
    body{
        background-image: url("bg.jpg") no-repeat;
    }
    </script>
    </head>
    <body>
    <?php
        if($_SESSION['Besuch'] === null){
            $_SESSION['Besuch'] = true;
            echo '
            <script language="javascript" type="text/javascript">
            alert("Nachricht");
            </script>';
        }
    ?>
    </body>
    </html>

Sorry wenn ich jetzt wem auf die Nerven geh aber ich kenn mich überhaupt nicht mit PHP aus, und weis deshalb immer nocht nicht wiesos nicht geht^^

LG, Alex
Alexander2105
HTML-Newbie
 
Beiträge: 23
Registriert: Montag 26. Juli 2010, 23:05

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Peter1978 » Sonntag 12. Dezember 2010, 17:18

Eine andere Möglichkeit :D

Dem internen Link zur Startseit eine Variable anhängen.

http://startseite.php?nichtnocheinmal=abjetzt
also
Code: Alles auswählen
<a href='startseite?nichtnocheinmal=abjetzt>home</a>


und über deine js-Anweisung stülpst du
Code: Alles auswählen

<?php if ($_GET['nichtnocheinmal']!='abjetzt') : ?>

/*hier dein JS*/
 
<?php endif; ?>


Gruß
peter
Benutzeravatar
Peter1978
HTML-Acrobat
 
Beiträge: 411
Registriert: Dienstag 15. Juni 2010, 08:07
Wohnort: Innsbruck

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Sören » Sonntag 12. Dezember 2010, 20:32

Wie willst du so den wissen, ob der Besucher schon auf der Startseite war?
Man muss nicht über die Startseite auf Unterseiten kommen.
Benutzeravatar
Sören
HTML-Acrobat
 
Beiträge: 851
Registriert: Samstag 5. Juni 2010, 16:00

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Peter1978 » Montag 13. Dezember 2010, 07:45

@Sören
du hast schon recht - das ist eine schwachstelle :D

ich gehe davon aus:
komme ich von extern - alert (zB: Hi, Du! Super das du da bist!!)
von intern - keiner

man könnte auch noch die IP speichern, so, dass alert überahaupt nur ein einziges mal angezeigt wird

Gruß
peter
Benutzeravatar
Peter1978
HTML-Acrobat
 
Beiträge: 411
Registriert: Dienstag 15. Juni 2010, 08:07
Wohnort: Innsbruck

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon fubbi » Montag 13. Dezember 2010, 12:42

Richtig Peter, einfach mit PHP prüfen ob die vorherige Seite intern oder extern ist.

IP speichern auf keinen Fall, unnötiger Aufwand da sich diese je nach Person (un)/regelmäßig ändert.

Ich kenne Leute die haben stündlich eine neue IP.
fubbi
HTML-Newbie
 
Beiträge: 45
Registriert: Sonntag 5. Dezember 2010, 21:56

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon Peter1978 » Montag 13. Dezember 2010, 16:56

OT:
@fubbi
wie werden besucherzähler gehandelt
Benutzeravatar
Peter1978
HTML-Acrobat
 
Beiträge: 411
Registriert: Dienstag 15. Juni 2010, 08:07
Wohnort: Innsbruck

Re: "alert" nur beim ersten Aufruf der Seite verwenden

Beitragvon fubbi » Montag 13. Dezember 2010, 17:04

Peter1978 hat geschrieben:wie werden besucherzähler gehandelt


Zu 80% über Cookies.
fubbi
HTML-Newbie
 
Beiträge: 45
Registriert: Sonntag 5. Dezember 2010, 21:56

Nächste

Beiträge bitte im neuen Forum

Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron