Toon posts:

[php] meeste berichten wel sommige niet

Pagina: 1
Acties:
  • 87 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo, heb een gastenboek gemaakt. Dat de berichten via de onderstaande query post:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
$qinfo = "INSERT INTO gastenboek(datum,tijd,naam,email,homepage,bericht,ip) 
          VALUES (
'$field[datum]',
'$field[tijd]',
'$field[naam]',
'$field[email]',
'$field[homepage]',
'$field[bericht]',
'$REMOTE_ADDR')";

mysql_query($qinfo) or die(mysql_error()); 
         
echo "Bedankt <b>$field[naam]</b>, voor het toevoegen van u bericht.\n"; 
?>


Met :
code:
1
<form action="<? echo $php_self; ?>" method="post" name="post" enctype="multipart/form-data">


Nu komt het soms voor dat ie sommige berichten niet gepost worden in de db maar wel een bedankt verificatie krijgen. Hoe kan ik dit probleem oplossen? Want ik zie het (fout)resultaat van de query natuurlijk niet want ik teken het boek niet.

Kan het zo dat wanneer er een fout optreed je dan terug gaat naar het formulier en dat inhoud blijft staan javascript.go.back(-1).
En hoe kan deze fout ontstaan?

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Mhh, ik snap je probleem niet helemaal, maar volgens mij gaat het verkeerd bij inserten?
Voeg bij de velden zoals naam & bericht addslashes toe; dus:

PHP:
1
$naam = addslashes($field["naam"]);


Zo worden apostroffen vervangen van ' naar \' zodat het goed in query komt te staan.
En verder moet je ook nog ff van je $field[naam] $field["naam"] maken, php verw8 dat er cijfers tussen de haken komen te staan & letters tussen de haken & apostroffen

Verwijderd

Topicstarter
AK47 schreef op 19 augustus 2002 @ 11:19:
Mhh, ik snap je probleem niet helemaal, maar volgens mij gaat het verkeerd bij inserten?
Voeg bij de velden zoals naam & bericht addslashes toe; dus:

PHP:
1
$naam = addslashes($field["naam"]);
heb er dit boven staan:
PHP:
1
2
if (!get_magic_quotes_gpc()) { 
$field[naam] = addslashes($field[naam]);

Verwijderd

je kan het natuurlijk altijd even proberen, zijn het sommige inserts die niet werken of werkt er niet een? kijk dan even welke tekens je wel/niet toe kan voegen ;)

Verwijderd

Topicstarter
nou hij voegt soms (heel soms) de hele insert niet uit

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Verwijderd schreef op 19 augustus 2002 @ 12:50:
nou hij voegt soms (heel soms) de hele insert niet uit
Krijg je dan wel een MySQL error? Zo ja, welke?

Bdw, je kan controleren of het bericht is ingevoerd met mysql_affected_rows..

On track


Verwijderd

Topicstarter
ik weet niet welke error want ik heb alleen maar van horen zeggen tegen mij dat ze geen bericht konden plaatsen, maar wel bedankt voor het posten kregen

Verwijderd

Verwijderd schreef op 19 augustus 2002 @ 16:39:
ik weet niet welke error want ik heb alleen maar van horen zeggen tegen mij dat ze geen bericht konden plaatsen, maar wel bedankt voor het posten kregen
Dus je weet niet eens of het wel aan de code ligt?

Verwijderd

Topicstarter
heb nu dit:

PHP:
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
<?
if (!get_magic_quotes_gpc()) { 
$field[naam] = addslashes($field[naam]);
$field[bericht] = addslashes($field[bericht]);
}

$qinfo = "INSERT INTO gastenboek(datum,tijd,naam,email,homepage,bericht,ip)
          VALUES ('$field[datum]','$field[tijd]','$field[naam]','$field[email]','$field[homepage]','$field[bericht]','$REMOTE_ADDR')";
          mysql_query($qinfo) or die(mysql_error());

$resultaat = mysql_affected_rows();       
$naam = stripslashes($field[naam]);

if ( $resultaat == '1' ) {
echo "Bedankt <b>$naam</b>, voor het toevoegen van u bericht.\n"; 
?>

<meta http-equiv="refresh" content="2; url=index.php">

<?
} else {
echo "Er is een <b>fout</b> opgetreden.<br>
      <a href=\"javascript:history.back(-1)\">Klik hier</a> om terug te gaan naar het bericht.";   
}
?>


kan dit?

  • judgem
  • Registratie: December 2001
  • Laatst online: 28-04-2014

judgem

Lord of Metal

ik denk dat je deze regels:

code:
1
2
if ( $resultaat == '1' ) {
echo "Bedankt <b>$naam</b>, voor het toevoegen van u bericht.\n";


beter kunt wijzigen in:

code:
1
2
if ( $naam != '' && $bericht != '' ) {
echo "Bedankt <b>$naam</b>, voor het toevoegen van u bericht.\n";


Ik neem tenminste aan dat de naam van de poster en diens bericht de meest essentiele velden zijn....

- Ik bespreek ook harde waren en dan wel op www.lordsofmetal.nl - en ik draai en programmeer ze in DYNAMO


Verwijderd

Topicstarter
ja maar die naam en berichten check heb ik al voor de insert staan. Das dus vreemd, hij checkt daar de $ en die zijn gevuld. Dan moet die deze waarden insertten en dit gebeurt soms niet.

daarom keek ik met resultaat of er 1 record "door mysql behandeld is"

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

goed dit topic heeft een kans gehad maar nu gaat het alsnog dicht. je mist gewoon de basiskennis van php en van debuggen heb je ook nog geen kaas gegeten. ik zou zeggen begin opnieuw bij "hello world" en begin opnieuw met formulierenverwerking (zonder database wat mij betreft). Als je dat onder de knie hebt zal het een stuk beter gaan

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.