Foutje met script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harm Jan van Kammen

Harm Jan van Kammen

06/01/2011 15:28:21
Quote Anchor link
Hallo allemaal,

Ik ben bezig om een script te schrijven en daarin heb ik een fout die ik niet op kan lossen.

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
<?php
$sql
= "SELECT *,UNIX_TIMESTAMP(`datum`) AS `datum` FROM Test_Ritten WHERE afgemeld=0 ORDER BY datum ASC, tijd ASC";
$query = mysql_query($sql);
$tellen = mysql_num_rows($query);
$i = 1;
while($rit = mysql_fetch_object($query)) {
$vanvakje = van . $id;
$vanhuisnummervakje = vanhuisnummer . $id;
$naarvakje = naar . $id;
$chauffeurvakje = chauffeur . $id;
$aantalpersonenvakje = aantalpersonen . $id;
$tijdvakje = tijd . $id;
$datumvakje = datum . $id;
$klantinformatievakje = klantinformatie . $id;
$submitvakje = submit . $id;
echo"<tr BGCOLOR='#$statuskleur'><td><input type='text' name='$vanvakje' value='$van' /></td><td><input type='text' name='$vanhuisnummervakje' value='$vanhuisnummer' size='5' /></td><td><input type='text' name='$naarvakje' value='$naar' /></td>";
echo"<td><select NAME='$chauffeurvakje' size='1'><option value=''></option>";
$sqldizzle = 'SELECT * FROM Chauffeursplanning WHERE uitgepland=0 ORDER BY chauffeur ASC';
$querydizzle = mysql_query($sqldizzle);
while($list = mysql_fetch_object($querydizzle)) {
$naam = $list->chauffeur;
if($naam == $rit->chauffeur)
        echo"<option value='$list->chauffeur' selected='selected'>$list->chauffeur</option>\n";
else
        echo"<option value='$list->chauffeur'>$list->chauffeur</option>\n";
}

echo"</select></td>";
echo"<td><input type='text' name='$aantalpersonenvakje' value='$aantalpersonen' size='5' /></td><td>$voertuig</td><td><input type='text' name='$tijdvakje' value='$rittijd' size='1' />";
echo"</td>";
echo"<td><input type='text' name='$datumvakje' value='$datumding' size='7' />";
echo"</td><td><input type='text' name='$klantinformatievakje' value='$klantinformatie' /></td><td><a href='rittenadministratie2.php?z=$id'><img src='images/edit.png'  /></a>&nbsp;&nbsp;<a href='Test_Rittenadministratie_ritbewerken.php?x=$id'><img src='images/edit.png'  /></a>&nbsp;$uitgegeven&nbsp;<a href='Rittenadministratie2.php?del=$id'><img src='images/del.png'  /></a></td></tr>";
if($i != $tellen) {
  echo "";
 }

 $i++;
}

?>


Hier haalt mijn script gegevens uit de database en zet die in een tabel met input velden die aanpasbaar zijn.
Ook geeft dit script elk inputveld een naam met een ID eraan.

Nu mijn volgende stukje 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
<?
if(isset($_GET['z'])) {
$idd = $_GET['z'];
// VARIABELEN ID
$vanx = van . $idd;
$vanhuisnummerx = vanhuisnummer . $idd;
$naarx = naar . $idd;
$chauffeurx = chauffeur . $idd;
$aantalpersonenx = aantalpersonen . $idd;
$tijdx = tijd . $idd;
$datumx = datum . $idd;
$klantinformatiex = klantinformatie . $idd;
// TOEPASSEN
$vanz = isset($_POST['$vanx']) ? $_POST['$vanx'] : '';
$vahuisnummerz = isset($_POST['$vanhuisnummerx']) ? $_POST['$vanhuisnummerx'] : '';
$naarz = isset($_POST['$naarx']) ? $_POST['$naarx'] : '';
$chauffeurz = isset($_POST['$chauffeurx']) ? $_POST['$chauffeurx'] : '';
$aantalpersonenz = isset($_POST['$aantalpersonenx']) ? $_POST['$aantalpersonenx'] : '';
$tijdz = isset($_POST['$tijdx']) ? $_POST['$tijdx'] : '';
$datumz = isset($_POST['$datumx']) ? $_POST['$datumx'] : '';
$klantinformatiez = isset($_POST['$klantinformatiex']) ? $_POST['$klantinformatiex'] : '';
// Nog een paar andere dingen
$piecesz = explode("-", $datumz);
// DOE DIT MAAR NU EVEN
mysql_query("UPDATE `Test_Ritten` SET `van`='$vanz',`vanhuisnummer`='$vanhuisnummerz',`naar`='$naarz',`chauffeur`='$chauffeurz',`aantalpersonen`='$aantalpersonenz',`tijd`='$tijdz',`datum`='$pieces[2]-$pieces[1]-$pieces[0]',`klantinformatie`='$klantinformatiez' WHERE `id`='$idd' ; ") or die(mysql_error());
}

?>


Ik wil dus mijn gegevens kunnen wijzigen en dat doe ik doormiddel van een ?z=$id toe te voegen aan mijn pagina.
Nu kom ik bij de fout die er speelt.
Elke keer als ik dus op bewerken van een rit druk maakt hij die rit leeg en dat betekent dus dat hij geen data's ophaalt met de $_POST variabelen !
Maar als ik dingen zoals $idd en $vanx echo laat hij wel keurig zien wat daar de waarde van is.
Het gaat dus fout op het moment dat hij data uit de invulvelden moet halen....

Ik hoop dat iemand mij hier mee kan helpen !

Met vriendelijke groet

Chromosone
 
PHP hulp

PHP hulp

26/04/2024 19:06:40
 
- SanThe -

- SanThe -

06/01/2011 15:40:31
Quote Anchor link
UNIX_TIMESTAMP(`datum`) AS `datum`
TIP: Gebruik geen backtics en geef de alias niet dezelfde naam als het origineel.

Zet dit bovenin:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//rest
?>
 
Harm Jan van Kammen

Harm Jan van Kammen

06/01/2011 15:45:25
Quote Anchor link
Ik neem aan dat je dan de fouten wou zien ?

Deze fouten krijg ik op de pagina :
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
Notice: Use of undefined constant van - assumed 'van' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 112

Notice: Use of undefined constant vanhuisnummer - assumed 'vanhuisnummer' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 113

Notice: Use of undefined constant naar - assumed 'naar' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 114

Notice: Use of undefined constant chauffeur - assumed 'chauffeur' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 115

Notice: Use of undefined constant aantalpersonen - assumed 'aantalpersonen' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 116

Notice: Use of undefined constant tijd - assumed 'tijd' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 117

Notice: Use of undefined constant datum - assumed 'datum' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 118

Notice: Use of undefined constant klantinformatie - assumed 'klantinformatie' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 119

Notice: Use of undefined constant submit - assumed 'submit' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 120
 
- SanThe -

- SanThe -

06/01/2011 15:49:01
Quote Anchor link
Nee, ik had ze al gezien. Nu zie jij ze, en heb je een uitgangspunt om het op te lossen.
Gewijzigd op 06/01/2011 15:49:40 door - SanThe -
 
Harm Jan van Kammen

Harm Jan van Kammen

06/01/2011 16:15:12
Quote Anchor link
Ik heb nu die fouten opgelost door het volgende te doen :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$vanx
= 'van' . $idd;
?>

Ik had eerder geen 'van' maar gewoon van en daarom waren er fouten.
Nu geeft hij dus geen fouten meer aan maar ik kan nog steeds geen gegevens schrijven naar de database.
 
Wouter J

Wouter J

06/01/2011 16:30:01
Quote Anchor link
Zorg eens voor een fatsoenlijke error afhandeling. (snipplr.com/view/45252/goede-foutafhandeling-mysql/)
 
Harm Jan van Kammen

Harm Jan van Kammen

08/01/2011 06:15:20
Quote Anchor link
Heeft iemand anders nog een suggestie om dit op te lossen ?
 
Lauren Zonneveld

Lauren Zonneveld

08/01/2011 08:19:29
Quote Anchor link
Waar post jij jouw formulier? Het lijkt erop dat je simpelweg op een linkje klikt en dus je hele formulier niet post.
 
Jordi Kroon

Jordi Kroon

08/01/2011 14:18:17
Quote Anchor link
gebruik mysql_fetch_assoc ipv object
gebruik geen * dit is een wildcard
backticks horen niet in een query
variabelen buiten quotes houden
tabs gebruiken is veel makkelijker werken
mysql injectie mogelijk
 
Obelix Idefix

Obelix Idefix

08/01/2011 15:15:21
Quote Anchor link
Ik heb geen idee wat je met de tweede code wilt bereiken, maar dat het daar fout gaat, verbaast me niet.


Harm Jan van Kammen op 06/01/2011 15:28:21:
Elke keer als ik dus op bewerken van een rit druk maakt hij die rit leeg en dat betekent dus dat hij geen data's ophaalt met de $_POST variabelen !
Maar als ik dingen zoals $idd en $vanx echo laat hij wel keurig zien wat daar de waarde van is.


En wat als je de $vanz echoot? Die zal leeg zijn. En wat krijg je als je de query echoot? Precies dat wat je ook in je database ziet: lege velden.

Zoals ik het nu lees: je controleert eerst op isset($_GET['z']) zonder verdere controle of z wel voldoet aan de eisen.
Vervolgens maak je een boel variabelen aan (-> // VARIABELEN ID) om vervolgens bij // TOEPASSEN weer nieuwe variabelen aan te maken, waarbij je met een $_POST (?!) gaat werken. Waarom? Je gebruikt de namen van de zojuist aangemaakte variabelen.

Begin overigens php-code met <.?php en niet met <.? (zonder .)

Zorg ook voor foutafhandeling bij je query.
Gewijzigd op 08/01/2011 15:16:46 door Obelix Idefix
 
Harm Jan van Kammen

Harm Jan van Kammen

17/01/2011 16:44:38
Quote Anchor link
Dat kan ik wel uitleggen.
Mijn gegevens worden uit een while loop gehaald en elke regel geef ik een id mee vanuit de database.
Ik print nu in die while loop allemaal input velden af met de naam van het veld plus de id van de regel dus bijvoorbeeld "van36"
Nu druk ik op een knop die ook in mijn while loop sta en als die dat doet moet ik aangeven welke id er aangepast moet worden dus dat doe ik met :
$vanx = van . $idd;

Nu ik weet wat de naam van mijn input veld is haal ik de info daarvan uit het veld door dit te doen :

$vanz = isset($_POST['$vanx']) ? $_POST['$vanx'] : '';

En hier gaat het dus ergens mis omdat hij er geen informatie uit kan halen.
Ik snap dus niet wat ik verkeerd doe omdat dit voor mij allemaal erg logisch klinkt.

Dus kan iemand mij dan uitleggen wat ik verkeerd doe ?
 
Obelix Idefix

Obelix Idefix

17/01/2011 16:56:27
Quote Anchor link
Echo $_POST['$vanx'] eens naar het scherm. Staat daar wel een waarde in?
 
Harm Jan van Kammen

Harm Jan van Kammen

17/01/2011 17:02:59
Quote Anchor link
De waarde daarvan is van en dan een id bijvoorbeeld 1
En als ik een andere id pak om te gebruiken geeft hij ook de goede id aan
 



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.