Une injection directe dans la bdd, tu aimes te compliquer!
Fatal error: Cannot unset string offsets in D:\wamp2\www\test3\index.php on line 19
Une injection directe dans la bdd, tu aimes te compliquer!
Fatal error: Cannot unset string offsets in D:\wamp2\www\test3\index.php on line 19
Il faudrait que tu debug un peu, je ne peux pas faire tout le travail.
Je ne sais meme pas quelle est la ligne 19 ni quelle ligne de la source provoque cette erreur.
Ben c'est toujours unset($ligne[0]);
ajouteavant et dit moi le dernier retour avant l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var_dump($ligne);
C'est le 1er mot de la listestring 'à|1
' (length=4)
aie j'ai mélangé mes variables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $sth = $cnx->prepare("INSERT INTO `dico` VALUES (:nom, :synonymes);"); $handle = fopen('file.txt', 'r'); if ($handle) { while (!feof($handle)) { $ligne = fgets($handle); $parts = explode("|", $ligne); if (!empty($ligne)) { if ($parts[1] == "1") { $mot = $parts[0]; } else { unset($parts[0]); $synonymes = implode(",", $parts ); echo $mot . ' : ' . $synonymes . '<br/>'; $sth->execute(array(':mot'=>$mot, ':synonymes'=>$synonymes)); } } } fclose($handle); } ?>
C'est pas gagné
string 'à|1
' (length=4)
Trop d'erreurs pour ton petit cerveau ?
(mdr mais quel enculé)
Enlève les espaces entre $parts et [.
Si ça ne marche pas, fait moi un
comme précédemment
Code : Sélectionner tout - Visualiser dans une fenêtre à part var_dump($parts);
Même erreur :
Je laisse toujours le var_dump.string 'à|1
' (length=4)
( ! ) Notice: Undefined variable: mot in D:\wamp2\www\test3\index.php on line 22
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
: 1
( ! ) Notice: Undefined variable: mot in D:\wamp2\www\test3\index.php on line 23
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
( ! ) Warning: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in D:\wamp2\www\test3\index.php on line 23
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
2 1.0114 711192 PDOStatement->execute( ) ..\index.php:23
string '(Preposition)|chez|dans|parmi
' (length=30)
( ! ) Notice: Undefined variable: mot in D:\wamp2\www\test3\index.php on line 22
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
: chez,dans,parmi
( ! ) Notice: Undefined variable: mot in D:\wamp2\www\test3\index.php on line 23
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
( ! ) Warning: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in D:\wamp2\www\test3\index.php on line 23
Call Stack
# Time Memory Function Location
1 0.0002 691880 {main}( ) ..\index.php:0
2 1.0116 712304 PDOStatement->execute( ) ..\index.php:23
string 'abaca|1
' (length=8)
Ecoute au pire je t'envoie la base des synonymes, ça doit être chiant de trouver la solution comme ça, en plus tu refuses la facilité, on a pas fini .
Erreur classique : j'ai oublié que fgets renvoyait le caractère de fin de ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php $sth = $cnx->prepare("INSERT INTO `dico` VALUES (:nom, :synonymes);"); $handle = fopen('file.txt', 'r'); if ($handle) { while (!feof($handle)) { $ligne = fgets($handle); $parts = explode("|", $ligne); if (!empty($parts)) { if (intval($parts[1]) == 1) { $mot = $parts[0]; } else { unset($parts[0]); $synonymes = implode(",", $parts ); echo $mot . ' : ' . $synonymes . '<br/>'; $sth->execute(array(':mot'=>$mot, ':synonymes'=>$synonymes)); } } } fclose($handle); } ?>
tu ne cherches pas trop j ai mis "nom" au lieu de "mot" dans la requête
C'est parce que tu avais l'air de t'amuser. Qui suis-je pour ôter un jouet à quelqu'un le jour de Noël ?
La page n'affiche aucune erreur, mais la base n'est pas remplie
à : chez,dans,parmi
abaca : chanvre,chènevière,filasse,jute
abaissable : abattable,inclinable
abaissant : avilissant,humiliant,mortifiant,dégradant,vexant,honteux,écrasant,blessant
abaissé : avili,rabaissé,déconsidéré,diminué,déchu,disqualifié,discrédité,dévalorisé,dévalué
abaisse-langue : spatule,manche
Le code complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $user='root'; $pass=''; $cnx = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $sth = $cnx->prepare("INSERT INTO `dico` VALUES (:mot, :synonymes);"); $handle = fopen('file.txt', 'r'); if ($handle) { while (!feof($handle)) { $ligne = fgets($handle); $parts = explode("|", $ligne); if (!empty($parts)) { if (intval($parts[1]) == 1) { $mot = $parts[0]; } else { unset($parts[0]); $synonymes = implode(",", $parts ); echo $mot . ' : ' . $synonymes . '<br/>'; $sth->execute(array(':mot'=>$mot, ':synonymes'=>$synonymes)); } } } fclose($handle); } ?>
ça y est j'ai trouvé et c'est pas grace à toi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager