i am trying to get text from a text box into my database, but it wont go through. i have tried so many things please help!! the else statement always executes, because I get the message "no submission received on my webpage", which means the first if statement definitely executes.
            Asked
            
        
        
            Active
            
        
            Viewed 63 times
        
    -3
            
            
        - 
                    4There is no input named 'submit'. – FirstOne Aug 13 '18 at 19:52
- 
                    1`$query= 'INSERT INTO hamsasubmissions (secret,popularity) VALUES ("$_POST["newSecret"]",0)';` should be `$query= "INSERT INTO hamsasubmissions (secret,popularity) VALUES ('".$_POST['newSecret']."',0)";` But-[Little Bobby](http://bobby-tables.com/) says [you may be at risk for SQL Injection Attacks](https://stackoverflow.com/q/60174/). Learn about [Prepared Statements](https://en.wikipedia.org/wiki/Prepared_statement) with [parameterized queries](https://stackoverflow.com/a/4712113/5827005). – GrumpyCrouton Aug 13 '18 at 19:53
- 
                    Well, really, it _should_ be parameterized/bound instead of injected like that. – Patrick Q Aug 13 '18 at 19:55
- 
                    I recommend reading the PHP documentation on [prepared statements.](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – Evan Edwards Aug 13 '18 at 19:57
3 Answers
1
            
            
        As FirstOne said you need to name the input "submit".
<input class="input" type="submit" name="submit" value="شارك"/>
 
    
    
        Evan Edwards
        
- 182
- 11
- 
                    thank you so much! someone else was handling the html so i thought it would be fine – Aug 13 '18 at 20:54
0
            
            
        Hello There are two problem's with your code ..
First one add name attr in your submit button because you are checking isset($_POST['submit'])
<input class="input" type="submit" name="submit" value="شارك"/>
Second Update Your $query with this
$query= "INSERT INTO hamsasubmissions (secret,popularity) VALUES ('".$_POST["newSecret"]."',0)";
 
    
    
        Raw Scripter
        
- 113
- 1
- 12
0
            
            
        first of all you didn't give the submit button a name so you must name it 'submit' to match what you wrote in your code and also your SQL query seems to be incorrect, here's a snippet with the desired changes:
<form method="post" action="post.php">
        <textarea name="newSecret" id="help" class="textarea" rows="20" cols="100">
        </textarea>
        <input class="input" name="submit" type="submit" value="شارك"/>
        </form>
        <?php
        if(isset($_POST['submit'])) {
            // trim possible begining/ending whitespaces from the the textarea value. But you still need to escape it againt SQL injection !
            $newSecret = trim($_POST['newSecret']);
            if(isset($newSecret)[0]) {
                include "db_connect.php";
                $query= "INSERT INTO hamsasubmissions (secret,popularity) VALUES ('" . $newSecret . "', 0)";    
   if(!mysqli_query($mysqli,$query)){
                echo "no submission received";}
            else{echo "Secret submitted.";} 
            }
        } 
    ?>
 
    
    
        ThS
        
- 4,597
- 2
- 15
- 27