Visualizzazione dei risultati da 1 a 10 su 10

Discussione: settype() e gettype

  1. #1

    settype() e gettype

    Qualcuno può darmi qualche delucidazione in merito?
    Non dovrebbe essere un problema di Input, dato che l'ID lo riceve tranquillamente e per altro è quello corretto.
    Il problema risiede nelle seguenti istruzioni:

    Codice PHP:

    $prod2remove 
    $_POST['productIdToRemove'];
        
    $prod2remove_=trim($prod2remove);
        echo 
    $prod2remove_;                // STAMPA 61
        
    print (gettype($prod2remove_)); //STAMPA string
        
    print (settype($prod2remove_"int")); // STAMPA 1, QUINDI SUCCESSO CONVERSIONE
        
    print (gettype($prod2remove_)); // STAMPA integer grazie al setype
        
    print $prod2remove_// STAMPA 0 ANSICHE' 61!
        
        
    echo "stop"
    Presumo quindi che il problema si presenta nel momento in cui vado a fare il SETTYPE, ma non riesco a spiegarmi perchè dato che quella funzione viene utilizzata per questo tipo di operazioni!!!!
    moscacieca

  2. #2
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump($prod2remove); 
    Inoltre, studiati questo codice:

    Codice PHP:
    <pre>
    <?php 
    $string 
    ' 61 ';
    $int = (int)$string;
    var_dump($string);
    var_dump($int);
    ?>
    </pre>

  3. #3
    Ciao Filippo.

    Dunque:

    Codice PHP:
    var_dump($prod2remove); 
    mi restituisce:

    string(464)"61" dove 61 è l'ID

    Mentre le tue righe di codice:

    Codice PHP:
    $string ' 61 ';
        
    $int = (int)$string;
        
    var_dump($string);
        
    var_dump($int);
        echo (
    $int); 
    mi restituiscono i seguenti parametri:

    string(4) " 61 "
    int(61)
    61

    Cosa ne pensi?
    moscacieca

  4. #4
    string(464)"61" ... molto probabilmente che del codice HTML all'interno di quella stringa che non si "vede" in HTML e che solleva il problema di conversione.

    Verificalo con:

    Codice PHP:
    print(htmlentities($prod2remove)); 

  5. #5
    Questo prima della conversione ad INT e subito dopo il $_POST:

    Codice PHP:
    &lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  A session had already been started ignoring session_start() in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\include\block.inc.php&lt;/b&gton line &lt;b&gt;2&lt;/b&gt;&lt;br /&gt;
    &
    lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  Undefined index:  stage in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\include\auth.inc.php&lt;/b&gton line &lt;b&gt;39&lt;/b&gt;&lt;br /&gt;
    &
    lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  Undefined index:  gruppi in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\addproduct.php&lt;/b&gton line &lt;b&gt;26&lt;/b&gt;&lt;br /&gt;
    61 

    e questo dopo la conversione ad intero:


    Codice PHP:

    61string1integer0string
    (464"



    [b]Notice[/b]:  A session had already been started - ignoring session_start() in [b]c:\programmi\easyphp1-8\www\biologici.it\include\block.inc.php[/b] on line [b]2[/b]



    [b]Notice[/b]:  Undefined index:  stage in [b]c:\programmi\easyphp1-8\www\biologici.it\include\auth.inc.php[/b] on line [b]39[/b]



    [b]Notice[/b]:  Undefined index:  gruppi in [b]c:\programmi\easyphp1-8\www\biologici.it\addproduct.php[/b] on line [b]26[/b]

    61"
    &lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  A session had already been started ignoring session_start() in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\include\block.inc.php&lt;/b&gton line &lt;b&gt;2&lt;/b&gt;&lt;br /&gt;
    &
    lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  Undefined index:  stage in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\include\auth.inc.php&lt;/b&gton line &lt;b&gt;39&lt;/b&gt;&lt;br /&gt;
    &
    lt;br /&gt;
    &
    lt;b&gt;Notice&lt;/b&gt;:  Undefined index:  gruppi in &lt;b&gt;c:\programmi\easyphp1-8\www\biologici.it\addproduct.php&lt;/b&gton line &lt;b&gt;26&lt;/b&gt;&lt;br /&gt

    VVoVe:
    moscacieca

  6. #6
    allò?
    moscacieca

  7. #7
    Il problema è a monte. Controlla il codice che genera la form che invii.

  8. #8
    Ho provato a controllare la funzione che mi genera l'ID di interesse ed ho notato che a tutti gli effetti, la var che passerò a productId se vado a stampare il suo contenuto, oltre a trovarel'ID effettivo, precedentemente ho anche:

    Codice PHP:
    productItems[0] = 

    [
    b]Notice[/b]:  A session had already been started ignoring session_start() in [b]c:\programmi\easyphp1-8\www\biologici.it\include\block.inc.php[/bon line [b]2[/b]



    [
    b]Notice[/b]:  Undefined index:  stage in [b]c:\programmi\easyphp1-8\www\biologici.it\include\auth.inc.php[/bon line [b]39[/b]



    [
    b]Notice[/b]:  Undefined index:  gruppi in [b]c:\programmi\easyphp1-8\www\biologici.it\addproduct.php[/bon line [b]26[/b]


    61 // ID DI MIO INTERESSE 

    A questo punto credo torni tutto. Difatti la variabile specificata precedentemente, che sarà poi quella passata alla variabile della funzione di seguito e di conseguenza al $_POST, conterrà anche queste NOTICE, che andranno a sporcare il suo contenuto!

    La funzione che fa riferimento alla rimozione di un elemento dal DB è la seguente:

    Codice PHP:
    function ajaxRemoveProduct(productId)
    {
        var 
    ajaxIndex ajaxObjects.length;
        
    ajaxObjects[ajaxIndex] = new sack();
        
    ajaxObjects[ajaxIndex].requestFile url_removeProductFromBasket;    // Quì viene richiamato il file remove.php e nell'istruzione successiva viene passato al riferimento per il _$POST
        
    ajaxObjects[ajaxIndex].setVar('productIdToRemove',productId);
        
    ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); };    // Specify function that will be executed after file has been found
        
    ajaxObjects[ajaxIndex].runAJAX();        // Execute AJAX function        


    Come posso fare a rendere puro il contenuto della variabile succitata, tenendo solamente il valore delll'ID ed eliminandovi le notice?
    Credete possa essere questo il problema che fa si che le operazioni citate all'inizio del topic falliscono?
    moscacieca

  9. #9
    UP!
    moscacieca

  10. #10
    Della serie " Ci se la canta e ci se la suona ".

    Risolto.
    moscacieca

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.