Vraag over sql...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Stefan

stefan

01/10/2006 14:22:00
Quote Anchor link
edit opgelost;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."')
?>


Als ik nu <a href="sgsg">sgfsgs</a> invul krijg ik gewoon alleen de tekst te zien, en is het geen link meer.

Edit/ tegelijk gepost :P

kunnen jullie het misschien ook testen?
Gewijzigd op 01/01/1970 01:00:00 door stefan
 
PHP hulp

PHP hulp

18/11/2024 12:52:38
 
Stefan

stefan

01/10/2006 14:38:00
Quote Anchor link
Als de mensen nu persé een product moeten invullen;

Moet ik het script van de vorige pagina zo toepassen?
Volgens mij niet (A)

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
<?p
if($_SERVER['REQUEST_METHOD'] == "POST")
if(!empty($_POST['product']){
  $product = htmlentities(striptags(mysql_real_escape_string($_POST['product'])));
}else{
  echo 'U moet wel een product kiezen';
}
  {
    mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['naam'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['plaats'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['telefoonnummer'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['email'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['bericht'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['prijs'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['soort'])))."','".$date."')") or die ( mysql_error() );
$sql = "INSERT INTO tabel_naam (producten) VALUES ('".$product."')";
$res = mysql_query($sql);

if($res){
  echo 'Het is goed gegaan';
}else{
  echo 'er is iets fout gegaan';
}

    echo "Vraag/Aanbod geplaatst";
?>
Gewijzigd op 01/01/1970 01:00:00 door stefan
 
Frank -

Frank -

01/10/2006 14:43:00
Quote Anchor link
@Stefan: De functie htmlentities() hoor je niet te gebruiken wanneer je gegevens in de database gaat wegschrijven. Dan kun je de data namelijk niet meer gebruiken voor andere zaken dan html-output, bv. email, text-files etc.

Deze functie gebruik je alleen wanneer je de data ophaalt uit de database en op het scherm wilt weergeven.
 
Stefan

stefan

01/10/2006 14:46:00
Quote Anchor link
Dus die codes moeten komen op de hoofdpagina van vraag en aanbod?

http://www.degoudvink.nl/new/?p=vogelmert
Gewijzigd op 01/01/1970 01:00:00 door stefan
 
Stefan

stefan

01/10/2006 15:09:00
Quote Anchor link
Frank:
@Stefan: De functie htmlentities() hoor je niet te gebruiken wanneer je gegevens in de database gaat wegschrijven. Dan kun je de data namelijk niet meer gebruiken voor andere zaken dan html-output, bv. email, text-files etc.

Deze functie gebruik je alleen wanneer je de data ophaalt uit de database en op het scherm wilt weergeven.


Kan ik wel de strip_tags gebruiken?
 
Frank -

Frank -

01/10/2006 15:21:00
Quote Anchor link
Jazeker! Jij wilt geen html in je database hebben, dan moet je dat er dus eerst uitgooien voordat je de query gaat uitvoeren. Dat doe je dus goed.
 
Stefan

stefan

01/10/2006 15:34:00
Quote Anchor link
Dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?p

strip_tags(mysql_real_escape_string($_POST['product']);

?>


in plaats van

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?p

htmlentities(striptags(mysql_real_escape_string($_POST['product'])));
?>


Ik heb nu dit en het werkt en als ik nu bijvoorbeeld <a href="sgsg">sgfsgs</a> invoer krijg ik gewoon alleen de naam te zien :)

Nu hoeft bij de hoofdpagina toch niet die htmlentities?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?p
 mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
?>
Gewijzigd op 01/01/1970 01:00:00 door stefan
 
Stefan

stefan

01/10/2006 16:16:00
Quote Anchor link
Ik heb geprobeerd om die code if(!empty) toe te passen.

Maar dat wil nog niet echt lukken, ik heb de code van de vorige pagina gebruikt en heb nu dit (alleen voor producht, om te testen)

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
<?php
if(!empty($_POST['product'])
  $product = htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])));
}
else{
  echo 'U moet wel een product kiezen';
}



// en dan je sql

$sql = "INSERT INTO vraagenaanbod (product) VALUES ('".$product."')";
$res = mysql_query($sql);

if($res){
  echo 'Het is goed gegaan';
}
else{
  echo 'er is iets fout gegaan';
}



else
  {
  
        echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
        echo "<form name='veranderen' method='post'>";
        echo "Product naam:<br>";
        echo "<input type='text' name='$product'><br>";
      
        echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
    
    
  }

  
ob_end_flush();

?>



Maar dan krijg ik;
Parse error: parse error, unexpected '{' in vaplaatsen.php on line 2

En als ik die { weghaal krijg ik

Parse error: parse error, unexpected T_VARIABLE in vaplaatsen.php on line 3

Ik heb het idee dat dat form met echo tegenwerkt of iets dergelijks;
 
Arian Stolwijk

Arian Stolwijk

01/10/2006 16:22:00
Quote Anchor link
Je heb 3 keer else staan, terwijl je maar 2 keer if hebt staan... dat kan natuurlijk niet... ;)

en die { moet er wel staan...
je moet gewoon al je { en } tellen, die moeten nl gelijk zijn.

verder gewoon goed je code doorlezen... dan kan je zelf ook wel een aantal fouten eruit halen...
 
Stefan

stefan

01/10/2006 17:54:00
Quote Anchor link
Oke ik heb even geprobeerd en heb nu dit;

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
45
46
47
48
49
50
<?php
ob_start();

if($_SERVER['REQUEST_METHOD'] == "POST")
  {

    mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
    echo "Vraag/Aanbod geplaatst";
if($_POST['naam'] == '')
    {
  
        echo "U heeft geen achternaam ingevuld!<br />";  
        echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";  
    }

else
            {  
                echo 'Uw bericht is helaas niet verstuurd.';  
            }
  
    
    $afzender = "From: [email protected]";
    mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
  }

  
else
  {
  
        echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
        echo "<form name='veranderen' method='post'>";
        echo "Product naam:<br>";
        echo "<input type='text' name='product'><br>";
        echo "Naam:<br>";
        echo "<input type='text' name='naam'><br>";
        echo "Plaats:<br>";
        echo "<input type='text' name='plaats'><br>";
        echo "Telefoonnummer:<br>";
        echo "<input type='text' name='telefoonnummer'><br>";
        echo "Email:<br>";
        echo "<input type='text' name='email'><br>";
        echo "Extra informatie:<br>";
        echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
        echo "Prijs:<br>";
        echo "<input type='text' name='prijs'><br>";
        echo "Aangeboden/Gezocht:<br>";
        echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
        echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
    
    
  }

  
ob_end_flush();

?>


Als ik op advertentie plaatsen klik krijg ik dit;

Vraag/Aanbod geplaatstU heeft geen achternaam ingevuld!
Klik hier om terug te gaan!

Alleen hij plaats de advertentie wel :O
 
Frank -

Frank -

01/10/2006 18:00:00
Quote Anchor link
Quote:
Alleen hij plaats de advertentie wel :O
Lijkt mij logisch... Je controleert of er een formulier is verstuurd en je maakt een nieuw record aan in de database.

En vervolgens ga je controleren of wel alle data is ingevuld. Dat lijkt mij niet helemaal de juiste volgorde, om even een open deur in te trappen.

Oplossing: Pas de logica aan: eerst controleren en dan pas de query uitvoeren.

Vraagje: Waar komt $date vandaan en wat staat daar in? De datum van vandaag? Gebruik dan de MySQL-functie NOW() in je query. Dat is eenvoudiger in het gebruik. Uiteraard gebruik je een kolom van het type DATE (of DATETIME) om de datum in op te slaan.
 
Stefan

stefan

01/10/2006 18:07:00
Quote Anchor link
$date is inderdaad de datum die weergegeven wordt waneer de advertentie is geplaatst :)
 
Stefan

stefan

02/10/2006 18:53:00
Quote Anchor link
Oke ik heb nu het volgende;

Dat als je iets niet invult dat ze te zien krijgen van;
"Je bent iets vergeten in te vullen,"

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
ob_start();

if($_SERVER['REQUEST_METHOD'] == "POST")
  {

  
      if($_POST['product'] == '')
    {

        echo "Je bent iets vergeten in te vullen,<br>";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
        die();
    }

    elseif($_POST['naam'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    elseif($_POST['plaats'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    elseif($_POST['telefoonnummer'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    elseif($_POST['email'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    
    elseif($_POST['email'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    elseif($_POST['prijs'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    elseif($_POST['bericht'] == '')
    {

        echo "Je bent iets vergeten in te vullen,";
        die();    
    }

    
    mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
    echo "Vraag/Aanbod geplaatst";
    
    $afzender = "From: [email protected]";
    mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
  }

  
else
  {
  
        echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
        echo "<form name='veranderen' method='post'>";
        echo "Product naam:<br>";
        echo "<input type='text' name='product'><br>";
        echo "Naam:<br>";
        echo "<input type='text' name='naam'><br>";
        echo "Plaats:<br>";
        echo "<input type='text' name='plaats'><br>";
        echo "Telefoonnummer:<br>";
        echo "<input type='text' name='telefoonnummer'><br>";
        echo "Email:<br>";
        echo "<input type='text' name='email'><br>";
        echo "Extra informatie:<br>";
        echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
        echo "Prijs:<br>";
        echo "<input type='text' name='prijs'><br>";
        echo "Aangeboden/Gezocht:<br>";
        echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
        echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
    
    
  }

  
ob_end_flush();

?>


Maar nu zit ik met het volgende, als je iets niet invult.

Krijg je die regel te zien van je bent iets vergeten lalala.
En dan laat die verder de content pagina niet meer ( de footer).

Hoe kan ik dat oplossen?
 

Pagina: « vorige 1 2



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.