Errore PHP - Notice: Undefined index ...

Stato
Chiusa ad ulteriori risposte.

Sandav22051999

Nuovo Utente
3 Set 2020
4
0
1
Salve Ragazzi, Sono Nuovo nel Forum ho bisogno del Vostro Aiuto.
Ho Creato una Pagina in PHP con Conferma Email dalla Parte del login funziona tutto ma quando a gli utenti ci arriva la Pagina da confermare alla Propria Casella di Posta, la Pagina da i Seguenti Errori


PHP:
Notice: Undefined index: Email in D:\Software\Xampp\htdocs\confirm.php on line 2

Notice: Undefined index: Token in D:\Software\Xampp\htdocs\confirm.php on line 3

Non so come risolvere le ho provate tutte.
Spero che qualcuno qui e capace di risolvere questo problema e Aiutarmi
Grazie Mille in anticipo
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
PHP:
$array['email'] = 'valore';
Se chiami un array con chiave non definita ad esempio
PHP:
$array['inesistente']
il parser php ti avvisa che manca l'indice inesistente.
Su come risolvere, io suppongo riscrivere tutto penso ci siano troppo errori specialmente se ti sei appena avvicinato a php
 
Ultima modifica:

Sandav22051999

Nuovo Utente
3 Set 2020
4
0
1
$array['email'] = 'valore';
Se chiami un array con chiave non definita ad esempio $array['inesistente'] il parser php ti avvisa che manca l'indice inesistente.
Su come risolvere, io suppongo riscrivere tutto penso ci siano troppo errori specialmente se ti sei appena avvicinato a php

Ciao Hornus,
Allora ti mando il codice PHP cosi da potermi aiutare


PHP:
<?php
    $Email = $_GET['Email'];
    $Token = $_GET['Token'];

    $con = new mysqli('localhost', 'root', '', 'blackmegaitaly');

    $sql = $con->query("SELECT id FROM Utenti WHERE Email='$Email' AND Token='$Token' AND is_confirmed=0");
    if ($sql->num_rows > 0) {
        $con->query("UPDATE Utenti SET is_confirmed=1, Token='' WHERE Email='$Email'");
        echo 'Email address verified. You can <a href="http://sitespeck.com/register-login/login.php">login</a> now.';
    } else {
        echo 'Please <a href="http://sitespeck.com/register-login/login.php">login</a>';
    }
?>

Questo è il codice,
Allora di PHP ne so abbastanza, fatto sta che sono riuscito a fare il login con la registrazione e l'invio Email

Se mi puoi correggere gli errori mi daresti una Grande Mano
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@Hormus
avviso.png
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
PHP:
<?php
if(isset($_GET['Email'], $_GET['Token'])) {
    $Email = $_GET['Email'];
    $Token = $_GET['Token'];

    $con = new mysqli('localhost', 'root', '', 'blackmegaitaly');

    $sql = $con->query("SELECT id FROM Utenti WHERE Email='$Email' AND Token='$Token' AND is_confirmed=0");
    if ($sql->num_rows > 0) {
        $con->query("UPDATE Utenti SET is_confirmed=1, Token='' WHERE Email='$Email'");
        echo 'Email address verified. You can <a href="http://sitespeck.com/register-login/login.php">login</a> now.';
    } else {
        echo 'Please <a href="http://sitespeck.com/register-login/login.php">login</a>';
    }
}
//Manca la query string nell'attributo href
?>
@Max1 come da regolamento ho modificato utilizzando il tag code ma comunque un semplice rigo non può e non deve mai considerarsi codice ma bensì una comunicazione diretta di cosa si sta sbagliando il tag code esiste per evidenziare la sintassi corretta ma su un rigo chiunque sarebbe in grado di capire il significato.
Ovviamente grazie per la segnalazione.
 

Sandav22051999

Nuovo Utente
3 Set 2020
4
0
1
PHP:
<?php
if(isset($_GET['Email'], $_GET['Token'])) {
    $Email = $_GET['Email'];
    $Token = $_GET['Token'];

    $con = new mysqli('localhost', 'root', '', 'blackmegaitaly');

    $sql = $con->query("SELECT id FROM Utenti WHERE Email='$Email' AND Token='$Token' AND is_confirmed=0");
    if ($sql->num_rows > 0) {
        $con->query("UPDATE Utenti SET is_confirmed=1, Token='' WHERE Email='$Email'");
        echo 'Email address verified. You can <a href="http://sitespeck.com/register-login/login.php">login</a> now.';
    } else {
        echo 'Please <a href="http://sitespeck.com/register-login/login.php">login</a>';
    }
}
//Manca la query string nell'attributo href
?>
@Max1 come da regolamento ho modificato utilizzando il tag code ma comunque un semplice rigo non può e non deve mai considerarsi codice ma bensì una comunicazione diretta di cosa si sta sbagliando.

Come Posso fare per riparare questo errore ? Riscrivere Tutto
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Ti ho scritto la soluzione.
Adesso anche la spiegazione: dicasi query string i caratteri contenuti dal punto interrogativo http://[email protected]&Token=abc1234 ho anche applicato il percent enconding per la query string è urlencode mentre per le directory o comunque ad esclusione della query string è rawurlencode (in sintesi il carattere spazio bianco invece di essere + sarà %20). Le due funzioni citate esistono nel doc php net
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Partendo dal fatto che basterebbe intervenire in questo modo per ovviare ad errori:
PHP:
$Email = $_GET['Email']??'';
$Token = $_GET['Token']??'';
@Sandav22051999 NON SI UTILIZZANO MAI DATI IN GET PER OPERAZIONI DI VERIFICA E SCRITTURA SUL DB....


Utilizzando un pò di logica...
Il VERBO GET cosa fa??? Utilizzato per prelevare una risorsa...
Il VERBO PUT? Utilizzato per creare una risorsa o sovrascriverlo.
Il VERBO POST? Utilizzato per modificare e aggiornare una risorsa

Quindi come si DOVREBBERO passare i dati??? in POST...

Perchè?
Si da per scontato che la tupla insista sulla base dati, e di conseguenza, alterando lo stato della stessa, non può che essere utilizzato attraverso il verbo POST...

Specificato questo...

specialmente se ti sei appena avvicinato a php
Bhè, dai nessuno è perfetto, parliamo delle basi di comunicazione, quindi era DOVEROSO specificare il come passare i dati senza necessità di dover riscrivere il tutto...
 
  • Like
Reactions: MarcoGrazia

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@Hormus
Niente polemiche!
Scrivi il codice con gli appositi tag e non ti preoccupare se è un rigo o di più!
Grazie
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
@macus_adi la stringa vuota non è la soluzione ma i due parametri sono obbligatori.. amplio il concetto altrimenti sembrerebbero parametri validi ma non lo sono altrimenti chi sarà il destinatario ma sono autenticato?
Beh puoi esprimere un concetto a chi è in grado di capire se non si studia è difficile comunicare con gergo tecnico. Il verbo HTTP è un gergo.
Per testare la propria capacità e volontà di apprendimento va bene scrivere codice (ma solo per un periodo limitato, poi occorre studiare e ovviamente si inizia dalle basi).
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
la stringa vuota non è la soluzione ma i due parametri sono obbligatori..
@Hormus manca la parte di validazione!!! è una soluzione per non andare in catch, questa fa parte delle basi di programmazione...

poi occorre studiare e ovviamente si inizia dalle basi
Ok, il forum è tecnico non è topolandia!!! Si spiega e si spronano gli utenti a fare meglio, no a fare peggio....

Il verbo HTTP
Non è un verbo ma un PROTOCOLLO!

Cmq, fa nulla... l'importante è capirsi...
 
Ultima modifica:

Hormus

Utente Attivo
26 Giu 2020
83
10
8
È anche un verbo se riferito per i metodi o più che altro il concetto di REST (poiché mi riferisco al metodo è sintatticamente corretto da scrivere anche se nomino il protocollo), questa frase è stata utilizzata in risposta dal gergo verbo GET da te menzionato.
Buona fortuna se sei di questo parere ma per me non si migliora copiando il codice occorre solo lo studio (altrimenti trova la soluzione , giustamente perché impegnarsi sul serio quando è tutto pronto).
Adesso per favore smettila di essere irrispettoso, il mio intervento non è mai stato un un'attacco verso i tuoi confronti.
Dimentichi che il codice illustrativo non è scritto correttamente, dunque se non esprimi il concetto di validazione e l'utente è appena arrivato al php può pensare che la stringa vuota sia valida ma oltretutto il parser php segnala l'errore nel caso di indice non definito va verificato inizialmente con isset.
Se hai altro da aggiungere vieni in privato non andiamo in off topic qui. Grazie.
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
M errore dopo passaggio Php 7.2 PHP 6
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
F [PHP]Errore registrazione PHP 8
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
M [PHP] WS-Security errore PHP 0
M [PHP] Errore di percorso, file not found PHP 3
ANDREA20 errore php PHP 1
N [PHP] ERRORE: SyntaxError: Unexpected token N in JSON at position 1 PHP 0
Tommy03 Errore invio email con PHP PHP 1
Shyson [PHP] Errore inspiegabile PHP 1
A index.php errore PHP 3
M Errore pagina php 'Cannot detect primary key' PHP 8
Tommy03 [PHP] Errore query selezione avg PHP 0
L [PHP] Errore 410 Gone... PHP 1
A [PHP] errore 404 e invio mai path pagina con link interrotto PHP 2
A [PHP] Errore select dati da db PHP 0
C [RISOLTO][PHP] Errore di sintassi PHP 8
A [PHP] ERRORE QUANDO CAMBIO SLUG NEL CMS e REWRITE PHP 6
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
C [PHP] Errore "Fatal error: Call to undefined function getTotalUsers()" PHP 2
C [PHP] non trovo l'errore? PHP 3
S [PHP] errore funzione sleep PHP 5
L [PHP] Errore UPDATE su tabella DB PHP 22
L [PHP] upload con errore PHP 2
T [PHP] errore unexpected T_LNUMBER che non so interpretare PHP 6
F Form mail php errore invio PHP 5
Matilde1 PHP: errore connessione database PHP 12
M PHP: errore connessione a MySQL PHP 5
E [PHP] Errore Class 'JText' not found CMS (Content Management System) 2
fabry1986 [PHP] Errore nome utente scompare dopo logout PHP 14
A Errore PHP: Call to a member function on null PHP 5
C PHP errore Fatal Error: Allowed Memory Size of ... Bytes Exhausted PHP 7
C [PHP] PDO prepared statement - select query errore PHP 7
ANDREA20 [PHP] Errore $this->db_connection = new PDO PHP 0
S [PHP] Errore visualizzazione pagina web PHP 1
M [PHP] errore in semplie form inserimento dati PHP 7
A [RISOLTO]Errore caricamento file php PHP 21
ANDREA20 [PHP] Errore riga PHP 0
L [PHP] JTable Errore PHP 0
V [PHP] Non riesco a trovare errore PHP 25
M [PHP] Errore nell' assegnazione della variabile $this->id su una funzione PHP 1
Fuego2806 [PHP] Errore 500 Internal Server Error - sito Joomla! Joomla 10
M [PHP] Errore in ciclo foreach PHP 1
asevenx [PHP] Errore tasto submit per invio dati non funziona PHP 5
enzonero Errore di analisi php line 1 PHP 11
localhost.nicola Errore Apache su installazione php\ext - Unable to load dynamic library PHP 0

Discussioni simili