Stats script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pepijn

Pepijn

14/06/2008 11:28:00
Quote Anchor link
Beste mensen van phphulp,

Ik heb zojuist mijn eerste script gemaakt!

Als mensen op mijn pagina komen krijgen ze een formuliertje te zien waar ze hun voornaam in moeten vullen. In de database wordt vervolgens de ingevoerde naam opgeslagen, de datum en het ip. Als de bezoeker later terug komt naar de pagina wordt hij begroet met zijn naam en krijgt hij te zien hoeveelste bezoek dit is.

Mijn script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
session_start();
include('************');//database connectie

$ip = $_SERVER['REMOTE_ADDR'];
if(!isset( $_POST['submit'] ) )
{

    $sql = "SELECT ip, naam, keer  FROM `stats` WHERE ip='".$ip."'";
    $res = mysql_query($sql);
    
    if(mysql_num_rows($res) == 0 )
    {

?>

Voer je naam in alsjeblieft:<br>        
<form action="<?php echo $PHP_SELF; ?>" method="post">
<input type="text" name="voornaam"><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
    }
    else
    {
        if(!isset( $_SESSION['geweest'] ))
        {

            $_SESSION['geweest'] = 'ja';
            $sql = "UPDATE `stats` SET keer=keer + 1, datumlaatstekeer=NOW() WHERE ip='".$ip."'";
            $res = mysql_query($sql);
        }

        $sql = "SELECT ip, naam, keer  FROM `stats` WHERE ip='".$ip."'";
        $res = mysql_query($sql);
        $row = mysql_fetch_row($res);
        echo 'Hallo '.$row[1].'<br>Dit is jou '.$row[2].'e bezoek hier.';
        
    }
}

else
{
    $sql = "INSERT INTO `stats` (`ip`, `datumeerstekeer`, `datumlaatstekeer`, `naam`) VALUES('".$ip."', NOW(), NOW(), '".$_POST['voornaam']."')";
    $res = mysql_query($sql);
    
    echo 'Bedankt '.$_POST['voornaam'].'!';
    $_SESSION['geweest'] = 'ja';
}

?>
 
PHP hulp

PHP hulp

24/04/2024 16:16:26
 
Jurgen assaasas

Jurgen assaasas

14/06/2008 12:04:00
Quote Anchor link
Foutmeldingen? Wat doet ie wel? Wat niet? Ik zou je script eigenlijk herschrijven als ik jou was er ontbreekt een hoop foutafhandeling. Bekijk de tutorials hier op PHPhulp voor info.
 
Baarr

Baarr

14/06/2008 12:42:00
Quote Anchor link
Dat kan veel korter en met minder queries, maar idd, vertel even wat er wel of niet goed gaat, wel zo makkelijk als je een concreet antwoord verwacht.
 
Pepijn

Pepijn

14/06/2008 13:16:00
Quote Anchor link
Hij doet het gewoon. Ik wou alleen jullie mening erover.

@baarr, hoe dan?
 

14/06/2008 13:18:00
Quote Anchor link
if(!isset( $_POST['submit'] ) ), zo check je niet of een form verstuurd is....
 
Pepijn

Pepijn

14/06/2008 13:21:00
Quote Anchor link
O...ik heb het hier vandaan:
http://www.websitemaken.be/index.php?page=show_item&id=858

Maar hoe moet het dan wel?

Edit: voorbeeld staat hier
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
 
Citroen Anoniem Graag

Citroen Anoniem Graag

14/06/2008 13:58:00
Quote Anchor link
Aantal tips:
1. $PHP_SELF; dit is van voor de php-oerknal gebruik $_SERVER['PHP_SELF']
2. Checken of een formulier verzonden is gaat zo if($_SERVER['REQUEST_METHOD'] == 'POST'){// verzonde
3. Jij controleert nergens of een query lukt, op het moment dat ie niet meer lukt, loopt heel je script in de knoop. Vb hoe het wel kan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
    $sql
= "SELECT ip, naam, keer  FROM `stats` WHERE ip='".$ip."';";
    if($res = mysql_query($sql)) == false)
    {

        echo 'Probleem met de website, maar don\'t worry, we hebbe mailtje gestuurd :)';
    }

    else
    {
        //rest van je script
    }
?>

4. Houd logica en output gescheiden. Klinkt miss beetje vreemd voor beginnende programmeur. maar het werkt als volgt. Eerst stop je alles wat op het scherm moet komen in een array/variabelen en vervolgens echo je die.. Klinkt vreemd hè...
 
Pepijn

Pepijn

14/06/2008 16:00:00
Quote Anchor link
Ok. bedankt ik zal het veranderen :p
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.