php profile token script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 5 volgende »

- Ariën  -
Beheerder

- Ariën -

01/10/2019 16:02:10
Quote Anchor link
Werkt die query wel via phpMyAdmin of welke client je maar gebruikt?
 
PHP hulp

PHP hulp

28/11/2024 11:11:09
 
Pascal klienstra

pascal klienstra

01/10/2019 16:38:12
Quote Anchor link
zelf invoeren werkt wel via phpmyadmin

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
CREATE TABLE `tickets` (
  `token` char(64) NOT NULL,
  `u_naam` varchar(250) NOT NULL,
  `ticket_naam` varchar(250) NOT NULL,
  `ticket_datum` date NOT NULL,
  `plaats` varchar(250) NOT NULL,
  `prijs` int(2) NOT NULL,
  `betaallink` varchar(250) NOT NULL,
  `u_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Gegevens worden gexporteerd voor tabel `tickets`
--

INSERT INTO `tickets` (`token`, `u_naam`, `ticket_naam`, `ticket_datum`, `plaats`, `prijs`, `betaallink`, `u_id`) VALUES
('dsfdssdf', 'sdfd', 'sdd', '2019-10-16', 'sdfsd', 2, 'sdsds', 11);
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 16:53:13
Quote Anchor link
En als je i.p.v. de multi_query() gewoon twee losse query()'s uitvoert?
 
Pascal klienstra

pascal klienstra

01/10/2019 16:54:46
Quote Anchor link
hou zou ik het dan moeten doen moet de if
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($conn->multi_query($sql) === TRUE) {


aah als ik de query alleen ticket uitvoert krijg ik als volgende
Error: INSERT INTO tickets (token, u_naam, ticket_naam) VALUES ('b1gzhglw48miqlsqlzvaretho4iyd7ephimpotdclkzqpmtbb55l14bkl39rbg4a','tttt',tttt');
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '')' at line 2
Gewijzigd op 01/10/2019 16:57:09 door pascal klienstra
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 16:56:38
Quote Anchor link
Zoal je normaal met de query() functie doet, maar dan twee keer. Dan heb je veel meer controle per query.

Je mist een single-quote voor je laatste veld.
Gewijzigd op 01/10/2019 16:59:17 door - Ariën -
 
Pascal klienstra

pascal klienstra

01/10/2019 17:00:15
Quote Anchor link
ik zag hem al werkt nu wel

heb nu mijn lees script,
alleen hoe kan ik het zo doen
hij zoekt de token in get,
de sql zit in tickets ook u_naam die naam wordt daar ook opgeslagen
nou wil ik de data aflezen van token en die hoort bij de naam de gegevens van account afleest van de table tickets.

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
include('config.php');
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{

  $_GET['listing'] = 1;
    
}

$sql = "SELECT *
        FROM tickets
        WHERE token ='"
.mysql_real_escape_string($token)."'";
$selecteer = mysql_query($sql);
if(!$selecteer)
{

    // ERROR
}

echo '<ul>';

while($selecteer_array = mysql_fetch_array($selecteer))
{

    $sql = "SELECT *
            FROM account
            WHERE u_naam="
. $selecteer_array ['u_naam'];
    $selecteer_gebruiker = mysql_query($sql); //
    if(!$selecteer_gebruiker)
    {

        // ERROR
    }

    $data_array = mysql_fetch_array($selecteer_gebruiker);
    
    
    echo '<table width="608" height="200">';
    echo '<tr>';
    echo '<td>' . $selecteer_data_array ['u_naam'] . '</h1></td>';
    echo '<td><h1>' . $selecteer_data_array ['avatar'] . '</h1></td>';
    echo '<td>' . $selecteer_data ['ticket_naam'] . '</td>';
    echo '<br />';
    echo '</tr>';
    echo '</table>';
}
// while

?>
Gewijzigd op 01/10/2019 17:08:08 door pascal klienstra
 
Thomas van den Heuvel

Thomas van den Heuvel

01/10/2019 17:09:36
Quote Anchor link
Uhm.

multi_query() is echt een heel slecht plan.

Allereerst omdat escaping dan nogal lastig kan worden.

Maar ook: het is waarschijnlijk een verkeerde aanpak voor hetgeen je wilt bereiken. Waarschijnlijk is het de bedoeling dat je een aantal queries in één ruk uitvoert, of in zijn geheel niet, correct? Daarvoor zijn database transacties. Een multi_query kan halverwege op zijn bek gaan en dan zit je database vol met half gebakken troep, dat wil je echt niet in een administratief systeem.

Daarnaast, deze "discussie", of liever gezegd, dit schaakspel, duurt nou al (wéér, want dit is niet de eerste keer) vier pagina's, en je bent nog niet veel verder gekomen.

Zoals ik al eerder aangaf, pak dingen eens stapsgewijs aan. En doe het eens wat rustiger aan. Je berichten en reacties worden in een snelvuurtempo hier neergeplempt. Je ben meestal al 3 reacties verder voordat ik een reactie heb getypt. Je komt nogal "hyper" over.

Met stapsgewijs bedoel ik het volgende: dus ok, je moet informatie je database inrammen, maar dit begint met een formulier. Maak eerst dit formulier. Dan heb je een verwerking met validatie. Dump de data van het formulier eens naar je scherm voordat je het de database in wilt sturen. Maak een bijbehorende validatie en programmeer een beslismoment: klopt deze informatie en kan deze zo worden weggeschreven of moet deze door de gebruiker gecorrigeerd worden? Schrijf dan je query. Dump de uiteindelijke query eens naar je scherm. Ziet alles er goed uit? Voer de query of queries dan ook uit. Geen foutmeldingen, voeg dan een redirect toe naar een overzichts- of bedankpagina of de loginpagina of wat dan ook.

Dit kun je allemaal opdelen in behapbare stukjes maar jij probeert echt alles tegelijkertijd te doen en aan het uiteinde komt er alleen maar stront uit. Tel eens tot 10 en vraag je dan af: wat werkt al, en wat is de eerstvolgende stap die ik werkend moet krijgen in dit geheel. En ga dan enkel aan de slag met die eerstvolgende stap en niets anders. Als je dit gewoon consequent doet dan ben je op een gegeven moment klaar en werkt alles. Nu vlieg je van hot naar her met als resultaat dat:
- er geen enkele structuur zit in je werkwijze
- er geen enkele structuur zit in je code
- er niets werkt
Nog voordat je wat dan ook doet zul je eerst eens je eigen aanpak onder de loep moeten nemen. Breng hier structuur in aan want wat je nu aan het doen bent is pure chaos.
 
Pascal klienstra

pascal klienstra

01/10/2019 17:14:40
Quote Anchor link
De invoer script werkt nu wel,
en ben nu bezig met het lees script.
alleen weet ik niet zo goed hoe ik het aan moet pakken met de if get
zodat die ?listing=534525354353553 die token table afleest van de gebruiker en die afleest van de gebruiker info.
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 17:19:38
Quote Anchor link
Je kan de $_GET['listing'] (token?) gebruiken in je WHERE. Let op escaping!
 
Thomas van den Heuvel

Thomas van den Heuvel

01/10/2019 17:26:39
Quote Anchor link
De code hierboven snijdt geen hout.

Je neemt $_GET['listing'] over als deze niet bestaat? Let op het uitroepteken, er staat zelfs in commentaar "if NOT isset", dan is er toch geen informatie om over te nemen?

Je voert een while uit op een query die precies één resultaat zou moeten hebben? Ik neem aan dat tokens uniek moeten zijn?

Enne, een usernaam om de informatie aan elkaar te hangen? Wat als deze gebruiker zijn profielnaam verandert? Waarom geen user id? En waarom niet in één query?

:/
 
Pascal klienstra

pascal klienstra

01/10/2019 17:27:19
Quote Anchor link
de token genereert ook automatisch
de gebruikersnaam kunnen ze sowieso niet aanpassen
heb het nou als volgende
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
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{

  $_GET['listing'] = 1;
    
}

$sql = " ";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        echo "naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
    }
}
else {
    echo "0 results";
}

$conn->close();
?>

maar hoe zou ik de sql query moeten uitvoeren
gaat via een join denk ik ?
want wil de data ophalen van de toko code die bij de gebruiker hoort en daarna de gegevens van de gebruiker uitvoeren
Gewijzigd op 01/10/2019 17:30:57 door pascal klienstra
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 17:35:06
Quote Anchor link
Als je data uit een of meerdere tabellen wilt halen, en hier een relatie tussen zit, dan is een JOIN noodzakelijk.
 
Pascal klienstra

pascal klienstra

01/10/2019 17:46:01
Quote Anchor link
dus zoiets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql2 = "SELECT * FROM account INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'" WHERE tickets.token = '" . $row['token'] . "'";
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 17:48:58
Quote Anchor link
Maar.... Waarom op naam, en niet op ID koppellen? Stel dat iemand zijn naam veranderd? Nu moet je dat in je hele database doen. Niet handig.
 
Pascal klienstra

pascal klienstra

01/10/2019 17:52:25
Quote Anchor link
de functie naam veranderen bouw ik er niet in, dus dat maakt niet uit
krijg de volgende foutmelding
Parse error: syntax error, unexpected 'WHERE' (T_STRING) in C:\xampp\htdocs\lees.php on line 9
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 18:05:32
Quote Anchor link
Dan doe je wat fout. Als je een goede editor hebt moet je de fout wel kunnen zien.
Dus kom eens met wat code.
 
Pascal klienstra

pascal klienstra

01/10/2019 18:10:25
Quote Anchor link
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
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{

  $_GET['listing'] = 1;
    
}

$sql = "SELECT * FROM account INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'" WHERE tickets.token = '" . $row['token'] . "'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        echo "
naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
    }
} else {
    echo "
0 results";
}

$conn->close();
?>
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 18:14:35
Quote Anchor link
Je ziet aan de hightlighting dat het inderdaad verkeerd gaat.
Hak je query anders eens in meerdere lijnen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sql
= "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '"
. $row['u_naam'] . "'"
WHERE tickets.token = '" . $row['token'] . "'";
"
;
?>

En dan zie je dat je op lijn 4 een double-quote teveel hebt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$sql
= "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '"
. $row['u_naam'] . "'
WHERE tickets.token = '"
. $row['token'] . "'";
";
?>
Gewijzigd op 01/10/2019 18:15:02 door - Ariën -
 
Pascal klienstra

pascal klienstra

01/10/2019 18:19:17
Quote Anchor link
krijg nou deze fout
Parse error: syntax error, unexpected 'naam' (T_STRING) in C:\xampp\htdocs\lees.php on line 20

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo "naam: '".$row["naam"]."' - ticket_titel: '".$row["ticket_titel"]."','".$row["avatar"]."'<br>";



Notice: Undefined variable: row in C:\xampp\htdocs\lees.php on line 11

Notice: Undefined variable: row in C:\xampp\htdocs\lees.php on line 12

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
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{

  $_GET['listing'] = 1;
    
}

$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '"
.$row['u_naam']."'
WHERE tickets.token = '"
. $row['token'] . "'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        echo "naam: '".$row["naam"]."' - ticket_titel: '".$row["ticket_titel"]."','".$row["avatar"]."'<br>";
    }
}
else {
    echo "0 results";
}

$conn->close();
?>
Gewijzigd op 01/10/2019 18:24:19 door pascal klienstra
 
- Ariën  -
Beheerder

- Ariën -

01/10/2019 18:24:21
Quote Anchor link
Kan je ook in stukken hakken, en dan heb je minder spaghetti.

Met respect dat je dingen vraagt, maar er is niks mis om zelf ook wat te proberen, en het probleem te onderzoeken door het te analyseren en te debuggen.

Wat Undefined variable: row betekent, hoef ik nu hopelijk vast niet meer uit te leggen. Probeer goed te snappen wat je doet, en niet lukraak wat te proberen!
Gewijzigd op 01/10/2019 18:25:40 door - Ariën -
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.